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/tdewebdev/kommander | |
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/tdewebdev/kommander')
20 files changed, 6799 insertions, 0 deletions
diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/Makefile.am b/tde-i18n-sv/docs/tdewebdev/kommander/Makefile.am new file mode 100644 index 00000000000..9e41d9df652 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = sv +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/Makefile.in b/tde-i18n-sv/docs/tdewebdev/kommander/Makefile.in new file mode 100644 index 00000000000..b6aa84ab393 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/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/tdewebdev/kommander +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/tdewebdev/kommander/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdewebdev/kommander/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/tdewebdev/kommander/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdewebdev/kommander/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdewebdev/kommander/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=installation.docbook tutorials.docbook index.docbook basics.docbook glossary.docbook credits.docbook specials.docbook commands.docbook dcop.docbook index.cache.bz2 editor.docbook translating.docbook parser.docbook extending.docbook Makefile.in widgets.docbook editor.png introduction.docbook Makefile.am q-and-a.docbook + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) glossary.docbook extending.docbook commands.docbook editor.png specials.docbook widgets.docbook translating.docbook editor.docbook index.docbook parser.docbook introduction.docbook credits.docbook q-and-a.docbook installation.docbook tutorials.docbook dcop.docbook basics.docbook + @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)/kommander + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander + @for base in glossary.docbook extending.docbook commands.docbook editor.png specials.docbook widgets.docbook translating.docbook editor.docbook index.docbook parser.docbook introduction.docbook credits.docbook q-and-a.docbook installation.docbook tutorials.docbook dcop.docbook basics.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/$$base ;\ + done + +uninstall-nls: + for base in glossary.docbook extending.docbook commands.docbook editor.png specials.docbook widgets.docbook translating.docbook editor.docbook index.docbook parser.docbook introduction.docbook credits.docbook q-and-a.docbook installation.docbook tutorials.docbook dcop.docbook basics.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kommander/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in glossary.docbook extending.docbook commands.docbook editor.png specials.docbook widgets.docbook translating.docbook editor.docbook index.docbook parser.docbook introduction.docbook credits.docbook q-and-a.docbook installation.docbook tutorials.docbook dcop.docbook basics.docbook ; 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/tdewebdev/kommander/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdewebdev/kommander/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdewebdev/kommander/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/tdewebdev/kommander/basics.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/basics.docbook new file mode 100644 index 00000000000..f08def58533 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/basics.docbook @@ -0,0 +1,225 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="kmdr-basics"> +<chapterinfo> +<title +>Grunderna i &kommander;</title> +<authorgroup> +<author +><firstname +>Tamara</firstname +> <surname +>King</surname +> <affiliation +><address +> <email +>tik@acm.org</email> +</address +></affiliation> +</author> +<author +><firstname +>Eric</firstname +> <surname +>Laffoon</surname +> <affiliation +><address +> <email +>sequitur@kde.org</email> +</address +></affiliation> +</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 +>Grunderna i &kommander;</title> + +<!-- This chapter should tell the user how to use your app. You should use as +many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document +your application. --> + +<sect1 id="concepts"> +<title +>Begrepp</title> + + +<para +>&kommander; konstruerades ursprungligen baserat på ett enkelt begrepp som har visat sig vara i viss mån revolutionerande bland visuella designverktyg. Typiskt låter sådana verktyg dig skapa dialogrutor och kanske gränssnitt med huvudfönster. Ett gränssnitt med huvudfönster är huvudprogramfönstret som oftast har menyer, verktygsrader, statusrad och programområde. Dialogrutor är underordnade fönster som oftast inte har menyer och heter så eftersom deras syfte är att <quote +>utföra en dialog</quote +> eller utbyta information mellan dig och huvudprogrammet. Elementen i en dialogruta kallas för <quote +>grafiska komponenter</quote +>, och du kopplar ditt program till komponenterna. &kommander; är annorlunda eftersom det i grunden är programmeringsfritt här. Det använder begreppet att associera text med de grafiska komponenterna i dialogrutan. Ursprungligen kallades detta <quote +>associerad text</quote +>, men nu kallas det <quote +>&kommander; text</quote +>. Grafiska komponenter i &kommander; dialogrutor kan inkludera innehållet i andra grafiska komponenter genom att referera till det, och en komponent kan referera till sitt eget innehåll med ett <quote +>Specialvärde</quote +> som ser ut så här: @widgetText. Specialvärden är kommandon med en speciell betydelse i &kommander;. Om du skapade en dialogruta med två radeditorkomponenter och kallade den första <quote +>Förnamn</quote +> och den andra <quote +>Efternamn</quote +>, skulle du kunna skapa en knapp och ange dess &kommander; text som <quote +>Mitt namn är @Förnamn @Efternamn</quote +>. Du skulle behöva ange @widgetText i komponenterna för förnamn och efternamn. Kommer du ihåg? Man måste tala om för &kommander; att referera till texten i dem. Du skulle kunna köra det från en <application +>terminal</application +> och det skulle skriva ut strängen åt dig. Det skulle referera till förnamnet på följande sätt: @Förnamn -> hämta komponenten som heter Förnamn(@Förnamn) -> @widgetText -> hämta innehållet i radeditorkomponenten. I detta fall returnerar @Förnamn <quote +>Eric</quote +>. </para> + +<para +>Det är &kommander;s enkla kärna. Vad du kan göra med det, är vad som är intressant. För det första är det värt att observera att jämfört med det vanliga angreppssättet i ett språkbaserat verktyg, behöver inte &kommander; programsatser för att definiera operationerna. Det gör &kommander; snabb för utvecklare. För slutanvändare är det mycket enklare än att lära sig språkkonstruktioner. För alla betyder det att det går att fokusera på uppgiften istället för att ständigt ha referensdokumentation tillhands. När någon stöter på ett verktyg som &kommander; för första gången, är den vanliga frågan: <quote +>Var kan jag hitta en användning för det här häftiga verktyget?</quote +> I själva verket används behandling av strängar nästan var man än ser. </para> + +<para +>Vad kan &kommander; alltså göra? Här är den renodlade listan med grundfunktionerna. &kommander; kan: </para> + +<orderedlist> +<listitem +><para +>Skicka strängar till det anropande programmet via standardutmatningen.</para +></listitem> +<listitem +><para +>Anropa körbara program.</para +></listitem> +<listitem +><para +>Använda &DCOP; för att kommunicera med &kde;-program</para +></listitem> +</orderedlist> + +<para +>Om du inte är en programmerare, kanske du vill ha det förklarat så en lekman förstår. I det första fallet, när du startar &kommander; från en terminal, är terminalen det anropande programmet. Det finns ett förhållande mellan det anropande programmet och det skapade här. Att skicka ett meddelande till terminalen görs i det skapade programmet med standardutmatningen, som benämns så eftersom det också finns felutmatning. Detta är intressant eftersom vissa program, som &quantaplus;, använder standardutmatningen för att ta emot information från program som de startar. Så &kommander; dialogrutor kan mata ut sina textsträngar direkt till editorn i &quantaplus; om de anropas från &quantaplus;. Det betyder att &kommander; dialogrutor kan vara användbara utökningar för program. </para> + +<para +>Det andra fallet är att anropa ett körbart program. Alla program som kör på ditt system är körbara. Till och med ett skriptprogram körs av skriptets tolk, så tekniskt sett körs det också. &kommander; kan köra kommandon precis som terminalen även om du kör från en meny. Så om du till exempel skulle vilja att det öppnade &GIMP;, skulle du låta en knapp härleda strängen <quote +>gimp</quote +> och placera den i ett specialvärde så här: @exec(gimp). Med bara detta ser du att &GIMP; startas när det används. Du skulle också kunna köra <quote +>ls -l</quote +>, men du skulle bara se utmatningen om du körde från en terminal. </para> + +<para +>Det tredje fallet är verkligen mycket intressant. &DCOP; är en förkortning av &kde;:s <emphasis +>D</emphasis +>esktop <emphasis +>CO</emphasis +>mmunication <emphasis +>P</emphasis +>rotocol (protokoll för skrivbordskommunikation) och det är mycket kraftfullt. Ta och kör programmet <application +>kdcop</application +> och ta en titt. Du ser snabbt att alla &kde;-program som följer standarden har saker på gång i &DCOP;, och de bra konstruerade har mycket på gång. Du kan begära alla typer av information i &DCOP;, samt ändra värden på grafiska komponenter med mera. Det finns ett avsnitt om hur &DCOP; används i den här handboken. &kommander; kan skicka &DCOP;-anrop till alla &kde;-program, samt styras från &DCOP;. I själva verket kan du skicka &DCOP; från kommandoraden till alla &kde;-program. Så vad är vitsen med detta? Vitsen är att om du vill utföra en större mängd kommandon, inser du snart att &DCOP; från kommandoraden är tillräckligt för korta kommandon, men kan orsaka fördröjningar om det anropas flera hundra gånger från en snurra. Det är därför &kommander; har ett @dcop specialvärde, eftersom det är ungefär 1000 gånger snabbare. Eftersom &kommander; kan skicka och ta emot &DCOP;, kan &DCOP; användas för att styra &kommander;. Det är därför det också finns ett specialvärde för lokal &DCOP;, @ldcop, som låter dig skriva betydligt mindre för att ge ett kommando. </para> + +<para +>Är det alla huvudbegrepp i &kommander;? Nej, men det bör hjälpa dig att få en känsla för hur det fungerar, så att det som beskrivs inte ser ut som ett främmande språk för dig. Det finns några fler begrepp. Signaler och slots är sättet som &kommander; hanterar händelser. En händelse i ett program betyder egentligen bara <quote +>något hände</quote +>, som att en grafisk komponent skapades eller dess text ändrades. Dessa ändringar <quote +>skickar ut signaler</quote +> och du kan ansluta signalerna till en mottagande slot som då utför något när händelsen inträffar. En användning av detta i &kommander; är grannen till &kommander; text, <quote +>Ifyllnadstext</quote +>. Ifyllnadstext fyller i en komponent när den anropas. Precis som &kommander; text, kan ifyllnadstext innehålla textsträngar eller skript. </para> + +<para +>Det bör ha givit dig grundbegreppen för att kunna börja använda &kommander;. Vi försöker hålla antalet specialvärden lågt, och vi använder &DCOP; i stor utsträckning. Idén är att vi vill hålla &kommander;s styrka så konsekvent och strömlinjeformat som möjligt. Du kommer att märka att du kan inlemma vilket skriptspråk som helst i &kommander; var du än behöver, och till och med flera skriptspråk i en dialogruta. Resten av informationen i det här dokumentet antar att du känner till begreppen och terminologin som presenterats här. Exemplen och handledningarna är också mycket användbara för att förstå vad som kan göras med &kommander;. </para> +</sect1> +&editor; <sect1 id="executor"> +<title +>Körprogrammet</title> + +<para +>Körprogrammet, som kallas <application +>kmdr-executor</application +>, kör &kommander; skript. Det laddar <literal role="extension" +>.kmdr</literal +>-filer och skapar dynamiskt en dialogruta med fullständig funktion. <warning +><para +>Från och med version 1.3, varnar körprogrammet om skriptfilen inte är körbar. Det är en extra säkerhetsfunktion som försöker få användaren att tänka på de möjliga negativa konsekvenserna av att köra ett skript från en opålitlig källa. Användaren kan bekräfta att dialogrutan ska köras, eller om källan är pålitlig, kan skriptet göras körbart för att helt bli av med varningen.</para +></warning> +<note +><para +>Version 1.3 stöder inledningen med <emphasis +>#!/sökväg/kmdr-executor</emphasis +> i .kmdr-skriptfiler (ersätt sökväg med sökvägen till körprogrammet). Sådana filer, om de görs körbara, kan köras från kommandoraden precis som vilket annat körbart program som helst, utan behov att skicka skriptet till kmdr-executor som väljare.</para> +<para +>Kom ihåg att när väl tecknen #! har lagts till i filens början, kan inte dialogrutan köras eller redigeras med äldre versioner av &kommander;.</para> +<para +>Den rekommenderade användningen är <screen> +#!/usr/bin/kommander +</screen +> och skapa en symbolisk länk från kmdr-executor till /usr/bin/kommander.</para> +<para +>Teckenföljden #! kan läggas till i en dialogruta direkt från editorn, genom att ändra egenskaperna <guilabel +>useShebang</guilabel +> och <guilabel +>shebang</guilabel +> för huvuddialogrutan.</para> + +</note> +</para> + +<sect2 id="executor-for-programmers"> +<title +>Körprogrammet för programmerare</title> + +<para +>C++ utvecklare kan enkelt använda klassen Instance i sina C++ program, så att körfunktionerna är inbäddade i deras program, vilket gör det överflödigt att köra det externa programmet executor. För vanliga dialogrutor är den extra tid det tar att skapa dialogrutan minimal, men att skapa &kde;-programmet kan fördröja dialogrutan omkring en sekund. </para> +<para +>En annan metod är att använda <emphasis +>kommander_part</emphasis +> KReadOnlyPart. Detta KPart-delprogram kan ladda och köra vilken &kommander;-dialogruta som helst inne i ett annat KDE-program.</para> +</sect2> + +</sect1> + +<sect1 id="create-dialog"> +<title +>Skapa en dialogruta</title> +<para +>För att lära dig hur en dialogruta skapas, hur grafiska komponenter läggs till, hur en layout används, och hur komponentegenskaper ändras, titta i handboken för &Qt; Designer (version 3.x). Du kan komma åt den genom att köra <command +>designer</command +> från kommandoraden eller skrivbordsmenyn. </para> +<para +>Extrafunktionen som &kommander; erbjuder är <guilabel +>Kommander Text</guilabel +> som hör ihop med varje grafisk komponent. Texterna är den körbara delen av dialogrutan (skriptet), antingen skriven på ett skriptspråk (med den gamla &kommander;-syntaxen) eller med det interna &kommander;-språket, den så kallade nya tolken. </para> +<para +>För att lära dig mer om språksyntax, kommandon och hur texteditorn används, läs följande kapitel och ta en titt på exemplen som levereras med &kommander;s källkod.</para> +</sect1> + +<sect1 id="exec-bit"> +<title +>Körbar bit - nytt i 1.3</title> +<para +>Av säkerhetsskäl introducerade vi kravet på körbar bit i version 1.3. Vissa kommer att ge sitt bifall till detta, som sedan länge förväntat. Andra kommer att anse att det är hemskt irriterande, eller till och med för skrämmande för att använda. Problemet är att man kan ladda ner en Kommander-dialogruta var som helst, eller få en med e-post, och klicka på den och köra den av misstag. Eftersom Kommander kan köra skalskript har det på sätt och vis en ovanlig ställning. Medan andra program inte besvärar dig på detta sätt, var du faktiskt tvungen att installera dem, och alltså känner du dig säker och har för avsikt att köra dem. En enda rad i ett skalskript skulle kunna radera din hemkatalog permanent. Vår avsikt är att eliminera möjligheten att klicka på en opålitlig dialogruta av misstag. Vi ber om ursäkt för eventuella olägenheter, men det finns inget sätt att göra detta så att till och med utvecklaren är övertygad om att det inte irriterar dig medan du förblir säker. </para> +<para +>Du förhindras inte att köra dialogrutan, utan blir bara påmind. Du kan få påminnelsen att försvinna genom att använda filhanteraren eller ett skal för att sätta den körbara biten. Högerklicka på dialogrutan i Konqueror, välj egenskaper i menyn, välj fliken Skydd och markera kryssrutan <quote +>Körbar</quote +>. Nu försvinner påminnelsen från dialogrutan för alltid. Titta på vår webbplats efter ett verktyg som söker efter &kommander;-dialogrutor, låter dig granska dem, och välja om någon eller alla ska ha biten satt. Använd följande kommando för att göra alla &kommander;-dialogrutor i en katalog körbara i en terminal: </para> +<screen +>chmod u+x *.kmdr +</screen> +<warning +><para +>Ställ inte in dialogrutor som körbara om du inte är säker på deras ursprung.</para +></warning> +</sect1> + +</chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/commands.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/commands.docbook new file mode 100644 index 00000000000..b9741b12f20 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/commands.docbook @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="commands"> +<chapterinfo> +<title +>Kommandoreferens</title> +</chapterinfo> + +<title +>Referens</title> +&widgets; &specials; &dcop-functions; </chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/credits.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/credits.docbook new file mode 100644 index 00000000000..50aa94177fc --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/credits.docbook @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="credits"> +<chapterinfo> +<title +>Tack till och licens</title> +<authorgroup> +<author +><firstname +>Tamara</firstname +> <surname +>King</surname +> <affiliation +><address +> <email +>tik@acm.org</email> +</address +></affiliation> +</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 +>Tack till och licens</title> + +<variablelist> +<title +>Utvecklingsgruppen för &kommander;</title> +<varlistentry> +<term +>Britton, Marc <email +>consume@optusnet.com.au</email +></term> +<listitem +><para +>Utvecklare och dokumentation</para +></listitem> +</varlistentry> +<varlistentry> +<term +>King, Tamara <email +>tik@acm.org</email +></term> +<listitem +><para +>Dokumentation</para +></listitem> +</varlistentry> +<varlistentry> +<term +>Laffoon, Eric <email +>sequitur@kde.org</email +></term> +<listitem +><para +>Projektledare och dokumentation</para +></listitem> +</varlistentry> +<varlistentry> +<term +>Mantia, András <email +>amantia@kde.org</email +></term> +<listitem +><para +>Utvecklare</para +></listitem> +</varlistentry> +<varlistentry> +<term +>Rudolf, Michal <email +>mrudolf@tdewebdev.org</email +></term> +<listitem +><para +>Utvecklare</para +></listitem> +</varlistentry> +</variablelist> + +<para +>&kommander; <trademark class="copyright" +></trademark +> 2004 - 2008 Utvecklingsgruppen för &kommander; </para> + +<para +>Handbok &kommander; <trademark class="copyright" +></trademark +> 2004 - 2008 Utvecklingsgruppen för &kommander; </para> + +<para +>Översättning Stefan Asserhäll <email +>stefan.asserhall@comhem.se</email +></para +> +&underFDL; &underGPL; </chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/dcop.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/dcop.docbook new file mode 100644 index 00000000000..6ebf4581909 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/dcop.docbook @@ -0,0 +1,234 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<sect1 id="dcop-interface"> +<sect1info> +<title +>&DCOP;-funktioner</title> +</sect1info> + +<title +>&DCOP;-funktioner</title> + +<para +>&kommander; började med att komma åt grafiska komponenter internt med &DCOP;, vilket utvecklades till komponentfunktioner. &DCOP; är fortfarande tillgängligt och kan användas för att dela information mellan dialogrutor. Det kan också användas för att utöka och integrera nästan alla befintliga KDE-program. &DCOP; kan anropas på flera sätt i &kommander;. Det första är terminalmetoden. Öppna en &kommander;-dialogruta och en terminal, och pröva det här. </para> +<note +><para +>Detta är till största delen fokuserat på den gamla tolken. Om du letar efter interna grafiska komponentfunktioner, se <link linkend="new_parserdocs" +>den nya tolken</link +>. Informationen här är särskilt relevant för kommunikation mellan dialogrutor och program, eller när andra skriptspråk används inne i Kommander för skript.</para +></note> +<screen +>dcop | grep kmdr +dcop `dcop | grep kmdr` +dcop `dcop | grep kmdr` KommanderIf +</screen> +<para +>Det visar vilka dialogrutor som kör, och vilka gränssnitt som är tillgängliga, samt vad som är tillgängligt att anropa i det särskilda gränssnittet för interna funktioner i &kommander;. Vid förklaringen av &DCOP; här, kom ihåg att &DCOP; används internt av KDE-program (ersatt av D-Bus i KDE 4) och är mycket användbart. Ta en titt på <command +>kdcop</command +> genom att trycka på Alt+F2 och skriva det i kördialogrutan. Här kan du utforska allt som kör. Nu åter till &DCOP; i &kommander;. </para> +<screen +>dcop kmdr-executor-@pid KommanderIf setText minKomponent <quote +>ny text</quote +> +</screen> +<para +>Det här antar att du är inne i en &kommander; fil och har tillgång till specialvärdet @pid, som innehåller process-id. Det är i själva verket enklare att ersätta <quote +>kmdr-executor-@pid</quote +> med @dcopid. Du kan dock använda syntaxen (men förstås utan specialvärden) från kommandoraden eller vilket externt skript som helst för att ändra &kommander;-fönstret. </para> +<para +>&kommander; utvecklade den mycket snabbare interna &DCOP;-funktionen. Att använda den från ett annat programfönster (&DCOP; via terminalen är mycket långsamt) är mer komplicerat, eftersom du måste ange mycket information, inklusive anropets prototyp. Anropet ovan skulle bli (observera att @dcopid i själva verket är internt till dialogrutan, men det skulle kunna ersättas med giltigt processid): </para> +<screen +>@dcop(@dcopid, KommanderIf, <quote +>enableWidget(QString, bool)</quote +>, komponent, true) +</screen> +<para +>I tidiga versioner av &kommander; använde lokala &DCOP;-anrop inne i skriptspråkstrukturer (som <application +>bash</application +>) anrop med terminalmetoder. <emphasis +>Om du använder intern &DCOP; körs alla &kommander; specialvärden först och därefter körs skriptet.</emphasis +> Läs föregående mening igen, eftersom det kommer att ge dig många sorger och bekymmer med en <application +>bash</application +>-snurra som använder &kommander;-specialvärden. </para> +<para +>Det finns ett nytt förenklat sätt att använda &DCOP; inne i &kommander; genom att använda en objektsyntax. Låt oss anta att du vill ändra texten i den grafiska komponenten @Radeditor1. Det skulle se ut så här: </para> +<screen +>@Radeditor1.setText(Ny text) +</screen> +<para +>Som du kan se är den nya syntaxen mycket enkel, samt visuellt överensstämmande med funktionsgrupper. Alla &DCOP;-referenser här använder den nya objektsyntaxen som listas ovan. <emphasis +>Observera att om du hänvisar till en grafisk komponent via &DCOP; från ett annat fönster eller ett annat program är den första parametern alltid komponentnamnet. Alla funktioner listas här med början från den andra parametern.</emphasis +> </para> + +<sect2 id="dcop-globals"> +<title +>&DCOP; för globala variabler</title> +<variablelist> +<varlistentry> +<term +>global(QString variabelnamn)</term> +<listitem> +<para +>Returnerar den angivna globala variabelns värde. När ett skript körs från ett fönster i &kommander; upphör alla (icke-globala) variabler som anges i skriptet att existera efter skriptet är färdigt, och är därför inte tillgängliga för andra skriptprocesser eller i en ny instans av den anropande processen. Det globala <quote +>omfattningen</quote +> betyder att variabeln existerar för alla fönstrets processer ända till fönstret stängs. Du kan ändra variablerna när som helst med ett nytt anrop till <function +>@setGlobal</function +>. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>setGlobal(QString variabelnamn, QString värde)</term> +<listitem> +<para +>Skapar en variabel som är global i fönsterprocessen och tilldelar värdet till den. Värdet kan hämtas med global(QString variabelnamn) eller tilldelas igen. </para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="dcop-all"> +<title +>&DCOP; för alla grafiska komponenter</title> + +<para +>Följande lista är gammal, och finns bara kvar i referenssyfte. Titta i <emphasis +>funktionsbläddraren</emphasis +> för en fullständig och aktuell referens till alla grafiska komponentfunktioner, som är tillgänglig från alla texteditorfönster i &kommander; genom att klicka på knappen längst ner till vänster. De är nu komponentfunktioner, inte &DCOP;-funktioner, men &DCOP;-funktionerna är publicerade i &DCOP;-gränssnittet <emphasis +>KommanderIf</emphasis +> som beskrivs ovan. Dialogrutor för att lista och skapa anrop till dessa funktioner är tillgängliga på vår webbplats. </para> +<variablelist> +<varlistentry> +<term +>setText(QString text)</term> +<listitem> +<para +>Det här tar bort texten som visas i den grafiska komponenten och ersätter den med den angivna texten. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>enableWidget(bool aktivera)</term> +<listitem> +<para +>Aktiverar eller inaktiverar en grafisk komponent. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>associatedText</term> +<listitem> +<para +>Returnerar texten som är associerad med den angivna grafiska komponenten. Det är inte samma som texten som visas. Det skulle vara <quote +>@widgetText</quote +> eller texten och/eller skriptet som används för att erhålla det visade värdet. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>setAssociatedText(QString text)</term> +<listitem> +<para +>Det här tilldelar den förvalda strängen för &kommander; text. Den tilldelas typiskt värdet <quote +>@widgetText</quote +> för att visa vad som skrivs in i komponenten. Det är inte troligt att du har mycket nytta av det, men om du gör det finns det där. Gäller alla grafiska komponenter som kan innehålla data. </para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="dcop-box"> +<title +>&DCOP; för listrutor och kombinationsrutor</title> +<variablelist> +<varlistentry> +<term +>addListItem(QString objekt, int index)</term> +<listitem> +<para +>Lägger till ett objekt i en listruta på angivet index. Listindex börjar på noll. För att lägga till i slutet på listan, använd -1. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>addListItems(QStringList objekt, int index)</term> +<listitem> +<para +>Det här lägger till en stränglista på en gång. Listan ska avdelas av nyrader (\n - nyrader). Det är bekvämt eftersom du kan använda bash för att ganska enkelt få fram listan. Att till exempel använda @exec(s -l ~/projects | grep kmdr) som objekt, ger en kataloglistning med &kommander; filer i din projektkatalog. Listindex börjar med 0. Använd -1 för att lägga till sist i listan. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>addUniqueItem(QString objekt)</term> +<listitem> +<para +>addUniqueItem lägger till ett objekt i slutet på listan, men bara om det är unikt. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>clearList</term> +<listitem> +<para +>Tar bort alla objekt. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>removeListItem(int index)</term> +<listitem> +<para +>Tar bort objektet vid angivet index. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>item(int index)</term> +<listitem> +<para +>Returnerar texten för objektet på angivet index. </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>setCurrentListItem(int index)</term> +<listitem> +<para +>Tilldela nuvarande (eller markerat) objekt till angivet index. Gäller de grafiska komponenterna listruta och kombinationsruta. </para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="dcop-button"> +<title +>&DCOP; för kryssrutor och alternativknappar</title> +<variablelist> +<varlistentry> +<term +>setChecked(QString komponentnamn, bool markerad)</term> +<listitem> +<para +>Markerar/avmarkerar en kryssruta eller alternativknapp. </para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="dcop-tab"> +<title +>&DCOP; for flikkomponenter</title> +<variablelist> +<varlistentry> +<term +>setCurrentTab(QString komponentnamn, int index)</term> +<listitem> +<para +>Väljer fliken med index för flikkomponenter. Index börjar med 0. </para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + + +</sect1> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/editor.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/editor.docbook new file mode 100644 index 00000000000..70fdd1675c7 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/editor.docbook @@ -0,0 +1,1213 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<sect1 id="editor"> +<sect1info> +<title +>Editorn</title> +<authorgroup> +<author +><firstname +>Tamara</firstname +> <surname +>King</surname +> <affiliation +><address +> <email +>tik@acm.org</email> +</address +></affiliation> +</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> +</sect1info> + +<title +>Editorn</title> + +<para +>Editorn är baserad på &designer;, ett verktyg för att konstruera och implementera användargränssnitt skapat av <ulink url="http://www.trolltech.com" +>Trolltech</ulink +>. Vi har ändrat &designer; på följande sätt: </para> +<itemizedlist> +<listitem +><para +>Dess gränssnitt är mycket enklare</para +></listitem> +<listitem +><para +>Egna grafiska komponenter är inbyggda</para +></listitem> +<listitem +><para +>Möjlighet att ange &kommander; text är tillagd</para +></listitem> +<listitem +><para +>Diverse andra ytliga ändringar</para +></listitem> +</itemizedlist> +<para +>För de av er som redan är bekanta med att använda &designer;, är det trivialt att använda &kmdr-editor;. </para> + +<sect2 id="editor-gui"> +<title +>Huvudfönster</title> + +<mediaobject> +<imageobject> +<imagedata format="PNG" fileref="editor.png"/> +</imageobject> +</mediaobject> + +<orderedlist> +<listitem +><para +>Verktygsrader innehåller ett antal knappar för att ge snabb åtkomst till ett antal funktioner.</para +></listitem> +<listitem +><para +>Filöversikten visar alla filer. Använd sökfältet för att snabbt byta mellan filer.</para +></listitem> +<listitem +><para +>Objektutforskaren tillhandahåller en översikt över förhållandet mellan de grafiska komponenterna i ett formulär. Den är användbar för att markera grafiska komponenter i ett formulär med komplex layout.</para +></listitem> +<listitem +><para +>Egenskapseditorn är platsen där den grafiska komponentens beteende och utseende ändras.</para +></listitem> +<listitem +><para +>Dialogeditorn är stället där dialoger skapas och redigeras.</para +></listitem> +</orderedlist> +</sect2> + +<sect2> +<title +>Menyn Arkiv</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +> </shortcut +> <guimenu +>Arkiv</guimenu +> <guimenuitem +>Ny</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Skapar en ny dialogruta</action +></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 +><action +>Leta i filsystemet för att öppna en befintlig dialogruta.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Arkiv</guimenu +> <guimenuitem +>Öppna senaste</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Snabblista med de senaste filerna du har öppnad. Listan ändras varje gång du öppnar en fil som inte finns i den, och den äldsta filen försvinner först.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Arkiv</guimenu +> <guimenuitem +>Stäng</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Stänger den aktiva dialogrutan</action +></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 +><action +>Sparar den aktiva dialogrutan</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Arkiv</guimenu +> <guimenuitem +>Spara som</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Sparar den aktiva dialogrutan med ett annat namn</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Arkiv</guimenu +> <guimenuitem +>Spara alla</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Sparar alla öppna dialogrutor</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Arkiv</guimenu +> <guimenuitem +>Avsluta</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Avslutar</action +> &kommander;</para +></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title +>Menyn Redigera</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Z</keycap +></keycombo +> </shortcut +> <guimenu +>Redigera</guimenu +> <guimenuitem +>Ångra</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Ångra den senaste åtgärden som utförts.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Y</keycap +></keycombo +> </shortcut +> <guimenu +>Redigera</guimenu +> <guimenuitem +>Gör om</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Gör om den senast ångrade åtgärden.</action +></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 +><action +>Klipp ut nuvarande objekt och placerar dess innehåll på klippbordet.</action +></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 +><action +>Kopiera nuvarande objekt till klippbordet.</action +></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 +><action +>Klistra in klippbordets innehåll på nuvarande markörposition.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Z</keycap +></keycombo +> </shortcut +> <guimenu +>Redigera</guimenu +> <guimenuitem +>Ta bort</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Ta bort nuvarande objekt.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycap +>Del</keycap +> </shortcut +> <guimenu +>Redigera</guimenu +> <guimenuitem +>Markera alla</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Markera alla objekt i nuvarande dialogruta.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;<keycap +>R</keycap +></keycombo +> </shortcut +> <guimenu +>Redigera</guimenu +> <guimenuitem +>Kontrollera snabbtangenter</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Kontrollera att alla snabbtangenter bara används en gång.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Redigera</guimenu +> <guimenuitem +>Anslutningar</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Visar dialogrutan för att visa och redigera anslutningar.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Redigera</guimenu +> <guimenuitem +>Formulärinställningar</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Visar dialogrutan för formulärinställning.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Redigera</guimenu +> <guimenuitem +>Inställningar</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Visar dialogrutan för inställningar.</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> +</sect2> + +<sect2> +<title +>Menyn Verktyg</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycap +>F2</keycap +> </shortcut +> <guimenu +>Verktyg</guimenu +> <guimenuitem +>Markör</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycap +>F3</keycap +> </shortcut +> <guimenu +>Verktyg</guimenu +> <guimenuitem +>Anslut signaler och slots</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycap +>F3</keycap +> </shortcut +> <guimenu +>Verktyg</guimenu +> <guimenuitem +>Tabulatorordning</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Verktyg</guimenu +> <guisubmenu +>&kommander;</guisubmenu +> </menuchoice +></term> +<listitem> +<para +>Här listas alla grafiska komponenter i &kommander;. Komponenterna är garanterat tillgängliga på alla system som kör samma (eller en senare) version av &kommander;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Verktyg</guimenu +> <guisubmenu +>Egen</guisubmenu +> </menuchoice +></term> +<listitem> +<para +>De grafiska komponenterna som tillhandahålls av insticksprogram kommer att anges under det här menyalternativet. Dialogrutorna som använder dessa grafiska komponenter kan bara köras om insticksprogrammet som tillhandahåller dem är installerat och inställt.</para> +</listitem> +</varlistentry> + +</variablelist> + +</para> + +</sect2> + +<sect2> +<title +>Menyn Layout</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>J</keycap +></keycombo +> </shortcut +> <guimenu +>Layout</guimenu +> <guimenuitem +>Justera storlek</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>H</keycap +></keycombo +> </shortcut +> <guimenu +>Layout</guimenu +> <guimenuitem +>Placera ut horisontellt</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>L</keycap +> </keycombo +> </shortcut +> <guimenu +>Layout</guimenu +> <guimenuitem +>Placera ut vertikalt</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>G</keycap +></keycombo +> </shortcut +> <guimenu +>Layout</guimenu +> <guimenuitem +>Placera ut i rutmönster</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Layout</guimenu +> <guimenuitem +>Placera ut horisontellt (med avdelare)</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Layout</guimenu +> <guimenuitem +>Placera ut vertikalt (med avdelare)</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>B</keycap +></keycombo +> </shortcut +> <guimenu +>Layout</guimenu +> <guimenuitem +>Bryt layout</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Layout</guimenu +> <guimenuitem +>Lägg till Spacer</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +</variablelist> +</para> +</sect2> + +<sect2> +<title +>Menyn Kör</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>R</keycap +></keycombo +> </shortcut +> <guimenu +>Kör</guimenu +> <guimenuitem +>Kör dialogruta</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Kör nuvarande dialogruta.</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> +</sect2> + +<sect2> +<title +>Menyn Fönster</title> +<para> +<variablelist> +<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 +><action +>Stänger nuvarande dialogruta.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Fönster</guimenu +> <guimenuitem +>Stäng alla</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Stänger alla dialogrutor.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F6</keycap +></keycombo +> </shortcut +> <guimenu +>Fönster</guimenu +> <guimenuitem +>Nästa</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Shift;<keycap +>F6</keycap +></keycombo +> </shortcut +> <guimenu +>Fönster</guimenu +> <guimenuitem +>Föregående</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Sida vid sida</guisubmenu +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Lägg fönstren i rad</guisubmenu +> </menuchoice +></term> +<listitem +><para +><action +></action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Vyer</guisubmenu +> </menuchoice +></term> +<listitem> +<variablelist> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Vyer</guisubmenu +> <guimenuitem +>Filöversikt</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Vyer</guisubmenu +> <guimenuitem +>Objektutforskaren</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Vyer</guisubmenu +> <guimenuitem +>Egenskapseditor/signalhantering</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Vyer</guisubmenu +> <guimenuitem +>Rada upp</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> </menuchoice +></term> +<listitem> +<variablelist> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Arkiv</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Redigera</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Layout</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Verktyg</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>&kommander;</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Egen</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Hjälp</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice +><guimenu +>Fönster</guimenu +> <guisubmenu +>Verktygsrader</guisubmenu +> <guimenuitem +>Rada upp</guimenuitem +> </menuchoice> +</term> +<listitem +><para +></para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> +</para> +</sect2> + +<sect2> +<title +>Menyn Inställningar</title> +<para> +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa genvägar</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Titta på och ändra editorns snabbtangenter.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa insticksprogram</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Lägg till eller ta bort insticksprogram för &kommander; Editorn måste startas om efter ett nytt insticksprogram har lagts till.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa editor</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Anpassa texteditorn som används för att ändra Kommandertext som hör ihop med grafiska komponenter.</action +></para +></listitem> +</varlistentry> +<varlistentry> +<term +><menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &kommander;</guimenuitem +> </menuchoice +></term> +<listitem +><para +><action +>Anpassa hur editorn ser ut och fungerar.</action +></para +></listitem> +</varlistentry> +</variablelist> +</para> +</sect2> + +<sect2> +<title +>Menyn <guimenu +>Hjälp</guimenu +></title> +&help.menu.documentation; </sect2> + + +</sect1> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/editor.png b/tde-i18n-sv/docs/tdewebdev/kommander/editor.png Binary files differnew file mode 100644 index 00000000000..5e538dea1ab --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/editor.png diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook new file mode 100644 index 00000000000..824b85e6ba1 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/extending.docbook @@ -0,0 +1,444 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="extending"> +<chapterinfo> +<authorgroup> +<author +><firstname +>Andras</firstname +> <surname +>Mantia</surname +> <affiliation +><address +><email +>amantia@kde.org</email +></address +></affiliation> +</author> +<author +><firstname +>Michal</firstname +> <surname +>Rudolf</surname +> <affiliation +><address +><email +>mrudolf@tdewebdev.org</email +></address +></affiliation> +</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 +>Utöka &kommander;</title> + +<sect1 id="create-widgets"> +<title +>Skapa grafiska komponenter för &kommander;</title> +<para +>Du kan ganska enkelt skapa nya grafiska komponenter med &kommander; som är baserade på komponenter som inte tillhör &kommander;. </para> +<para +>Det finns två sätt att lägga till nya komponenter i &kommander;: genom att skapa insticksprogram, eller genom att direkt lägga till dem i &kommander;s källkod. </para> +<sect2 id="create-class"> +<title +>Skapa komponentklassen</title> +<para +>Det första steget är att skapa komponentklassen. Metoden baseras på att härleda den nya &kommander; komponentklassen från &Qt;- eller &kde;-komponenten som du vill integrera med &kommander;, och dessutom från klassen KommanderWidget. Genom att överskrida metoder från denna klass, ger &kommander; komponenten sin funktion. </para> +<para +>Det mesta av koden i en &kommander;-komponent är bara mallkod. Därför kan du använda KDevelops mall för &kommander;-insticksprogram för att skapa det mesta av &kommander;-komponentens kod åt dig. För att göra det kör KDevelop (3.5 rekommenderas), välj <guimenu +>Projekt -> Nytt projekt</guimenu +>, markera kryssrutan <guilabel +>Visa alla projektmallar</guilabel +>, välj mallen <guilabel +>C++/&kommander;/KommanderPlugin</guilabel +>. Ge insticksprogrammet ett namn och följ instruktionerna i guiden. </para> +<para +>Allt du behöver göra är fylla i de viktiga delarna som hör till din grafiska komponent, liksom eventuell tillståndsinformation, komponenttext, etc. </para> +<para +>Låt oss anta att vi vill skapa en ny radeditorkomponent för &kommander; baserat på KDE-komponenten KLineEdit. Genom att använda dialogrutan för att skapa &kommander;-komponenter, får vi något som liknar det här i den skapade deklarationsfilen: </para> +<screen +>#include <kommanderwidget.h> + +class QShowEvent; +class KomLineEdit : public KLineEdit, public KommanderWidget +{ + Q_OBJECT + + Q_PROPERTY(QString populationText READ populationText WRITE setPopulationText DESIGNABLE false) + Q_PROPERTY(QStringList associations READ associatedText WRITE setAssociatedText DESIGNABLE false) + Q_PROPERTY(bool KommanderWidget READ isKommanderWidget) + +public: + KomLineEdit(QWidget *a_parent, const char *a_name); + ~KomLineEdit(); + + virtual QString widgetText() const; + + virtual bool isKommanderWidget() const; + virtual void setAssociatedText(const QStringList&); + virtual QStringList associatedText() const; + virtual QString currentState() const; + + virtual QString populationText() const; + virtual void setPopulationText(const QString&); +public slots: + virtual void setWidgetText(const QString &); + virtual void populate(); +protected: + void showEvent( QShowEvent *e ); +signals: + void widgetOpened(); + void widgetTextChanged(const QString &); +}; +</screen> +<para +>Det mesta av detta är bara mallkod som du inte behöver bry dig om. De enda två saker du måste försäkra dig om är att filen kommanderwidget.h inkluderas längst upp, och att klassen först härleds från komponenten vi önskar integrera med &kommander; och därefter från KommanderWidget. </para> +<para +>Det finns några delar i cpp-filen som är viktiga för varje enskild komponent. </para> +<screen +>KomLineEdit::KomLineEdit(QWidget *a_parent, const char *a_name) + : KLineEdit(a_parent, a_name), KommanderWidget(this) +{ + QStringList states; + states << "default"; + setStates(states); + setDisplayStates(states); +} +</screen> +<para +>Vi anger tillstånden komponenten kan ha i konstruktorn. Vår radeditor har ingen form av tillstånd, så vi ger den bara tillståndet <emphasis +>default</emphasis +>. Om du skapar en komponent som har olika tillstånd, som en kryssruta, kan du ange tre tillstånd <emphasis +>unchecked</emphasis +>, <emphasis +>semichecked</emphasis +> och <emphasis +>checked</emphasis +> här. </para> +<screen +>QString KomLineEdit::currentState() const +{ + return QString("default"); +}</screen> +<para +>Vi angav tillstånden i konstruktorn ovan, och detta returnerar bara komponentens nuvarande tillstånd. För vår komponent är det alltid <emphasis +>default</emphasis +>, men du bör lägga till kod här som kontrollerar vilket tillstånd komponenten för närvarande har, och returnerar lämplig sträng här. </para> +<screen +>QString KomLineEdit::widgetText() const +{ + return KLineEdit::text(); +} + +void KomLineEdit::setWidgetText(const QString &a_text) +{ + KLineEdit::setText(a_text); + emit widgetTextChanged(a_text); +} +</screen> +<para +>Detta är de två viktigaste metoderna, där den största delen av koden som utgör funktionen finns. Metoden <emphasis +>QString KomLineEdit::widgetText() const</emphasis +> returnerar komponenttexten (texten som <emphasis +>@widgetText</emphasis +> expanderas till i textassociationer). Komponenttexten i vår komponent är helt enkelt texten i radeditorn, så vi returnerar den. På liknande sätt, när komponenttexten ändras, ändrar vi bara texten i radeditorn. Vi skickar signalen <emphasis +>widgetTextChanged()</emphasis +> efter komponenttexten har ändrats, så att andra komponenter kan får reda på det faktum att komponenten har uppdaterats. </para> +<para +>För att lägga till funktioner i komponenten, måste du registrera några funktioner och lägga till kod för att hantera dem. Här är koden som används för att registrera dem. Lägg den i början av cpp-filen, ovanför konstruktorn. </para> +<screen +>#include <klocale.h> // för i18n + +#include "kommanderplugin.h" +#include "specials.h" + +enum Functions { + FirstFunction = 1159, + Function1, + Function2, + LastFunction +}; +KomLineEdit::KomLineEdit(QWidget *a_parent, const char *a_name) + : KLineEdit(a_parent, a_name), KommanderWidget(this) +{ + ... // kod som beskrivs ovan + KommanderPlugin::setDefaultGroup(Group::DCOP); + KommanderPlugin::registerFunction(Function1, "function1(QString widget, QString arg1, int arg2)", i18n("Call function1 with two arguments, second is optional."), 2, 3); + KommanderPlugin::registerFunction(function2, "function2(QString widget)", i18n("Get a QString as a result of function2."), 1); +} +</screen> +<para +>Detta registrerar två funktioner: <emphasis +>function1 och function2</emphasis +> Numren som tilldelas funktionerna (här <emphasis +>1160</emphasis +> och <emphasis +>1161</emphasis +>) måste vara unika, och inte användas av några andra insticksprogram eller inne i &kommander;. <emphasis +>function1</emphasis +> har två argument, ett valfritt, <emphasis +>function2</emphasis +> har inget argument och returnerar en sträng. Argumentet <emphasis +>QString widget</emphasis +> i signaturerna anger att funktionerna arbetar med en grafisk komponent, som: <emphasis +>KomLineEdit.function1("komponent", 1)</emphasis +>. </para> +<para +>För att lära &kommander; att komponenten stöder dessa funktioner, lägg till en metod på följande sätt: </para> +<screen +>bool KomLineEdit::isFunctionSupported(int f) +{ + return (f > FirstFunction && f < LastFunction) || f == DCOP::text; +} +</screen> +<para +>Det betyder att KomLineEdit stöder funktionerna ovan, och den vanliga funktionen <emphasis +>text</emphasis +>. Funktionskoden ska hanteras inne i metoden handeDCOP: </para> +<screen +>QString KomLineEdit::handleDCOP(int function, const QStringList& args) +{ + switch (function) + { + case function1: + handleFunction1(arg[0], arg[1].toInt()); // anropa din hantering av function1 + break; + case function2: + return handleFunction2(); // anropa function2 + break; + case DCOP::text: + return text(); // anropa den vanliga metoden KLineEdit::text() + break; + default: + return KommanderWidget::handleDCOP(function, args); + } + return QString::null; +} +</screen> +<para +>Det finns tillfällen då komponenten ska se annorlunda ut i editorn än när den körs, vilket är fallet för skriptobjekt, om-dialogruta, etc. Den vanliga lösningen är att visa en QLabel istället för komponenten. För att göra det måste komponenten härledas från QLabel, och använda följande i konstruktorn: </para> +<screen +>if (KommanderWidget::inEditor) + { + setPixmap(KGlobal::iconLoader()->loadIcon("iconname", KIcon::NoGroup, KIcon::SizeMedium)); + setFrameStyle(QFrame::Box | QFrame::Plain); + setLineWidth(1); + setFixedSize(pixmap()->size()); + } + else + setHidden(true); +</screen> +<para +>Du kan skapa själva komponenten (om en komponent över huvud taget behövs, kanske "komponenten" bara tillhandahåller funktioner för att t.ex. komma åt en databas) i en av dina funktioner, som i funktionen <emphasis +>execute</emphasis +>. Här är ett exempel från komponenten om-dialogruta: </para> +<screen +>QString AboutDialog::handleDCOP(int function, const QStringList& args) +{ + switch (function) { + ... + case DCOP::execute: + { + if (m_aboutData) + { + KAboutApplication dialog(m_aboutData, this); + dialog.exec(); + } + break; + } + ... +} +</screen> +<para +>Nu har du en fullständig &kommander;-komponent. Allt som återstår att göra är att göra den tillgänglig i &kommander;-systemet via insticksprogram. </para> + +</sect2> + +<sect2 id="create-plugin"> +<title +>Skapa insticksprogrammet till &kommander;</title> +<para +>Alla komponenter i &kommander; tillhandahålls via insticksprogram. De vanliga komponenterna laddas som komponentinsticksprogram, men &kommander;s editor är också länkat med biblioteket, eftersom vissa mekanismer i editorn är specifikt knutna till standardkomponenterna. </para> +<para +>Ett insticksprogram i &kommander; är helt enkelt ett delat bibliotek som har symbolen 'kommander_plugin'. Symbolen är en funktion som returnerar en pekare till en instans av klassen KommanderPlugin. </para> +<para +>&kommander; gör det enkelt att skapa ett insticksprogram för dina komponenter, så att du inte behöver bekymra dig om lågnivåsaker. Grundidén är att härleda en ny insticksklass för dina komponenter från basklassen KommanderPlugin och implementera några få specifika detaljer. Mallkod skapas av KDevelops projektmall som beskrivs ovan. </para> +<para +>Följande kod fortsätter exemplet om hur man skapar en radeditorkomponent för Kommander. </para> +<screen +>#include <kommanderplugin.h> + +/* WIDGET INCLUDES */ +#include "komlineedit.h" + +</screen> +<para +>Det första vi gör är att inkludera kommanderplugin.h. Den innehåller definitionen av klassen KommanderPlugin. Vi inkluderar också alla deklarationsfiler för komponenter som insticksprogrammet tillhandahåller - bara komlineedit.h i detta fall. </para> +<screen +>class MyKomPlugin : public KommanderPlugin +{ +public: + MyKomPlugin(); + virtual QWidget *create( const QString &className, QWidget *parent = 0, const char *name = 0 ); +}; +</screen> +<para +>Därefter skapar vi delklassen KommanderPlugin som kallas <emphasis +>MyKomPlugin</emphasis +>. Klassen har helt enkelt en konstruktor och den överskridna metoden create. </para> +<screen +>MyKomPlugin::MyKomPlugin() +{ + addWidget( "KomLineEdit", "My Widget Group", i18n("A Kommander line edit widget") new QIconSet(KGlobal::iconLoader()->loadIcon("iconname", KIcon::NoGroup, KIcon::SizeMedium))); + // lägg till mina andra komponenter här +} +</screen> +<para +>I insticksprogrammets konstruktor, anropar vi <emphasis +>addWidget()</emphasis +>för varje komponent vi vill tillhandahålla i insticksprogrammet. <emphasis +>addWidget()</emphasis +> har sex argument, men bara de fyra första krävs. I ordning är argumenten, komponentklassens namn, grupp, verktygstips, en ikonuppsättning för ikonen som används i editorns verktygsrad, vad är det här-information, och en Boolean som anger om komponenten är omgivande komponent för andra komponenter eller inte. Informationen används av editorn när komponenten grupperas i menyer, tillhandahåller hjälpinformation, etc. </para> +<para +>När det gäller ikonen, så laddar exemplet ovan en ikon av medelstorlek som kallas <emphasis +>iconname</emphasis +> från &kde;:s vanliga ikonplats. </para> +<screen +>QWidget *MyKomPlugin::create( const QString &className, QWidget *parent, const char *name ) +{ + if( className == "KomLineEdit" ) + return new KomLineEdit( parent, name ); + // skapa mina andra komponenter här + return 0; +} +</screen> +<para +><emphasis +>create()</emphasis +> är stället där instanser av våra komponenter verkligen skapas. Så snart &kommander; behöver en instans av en av klasserna som tillhandahålls av vårt insticksprogram, anropas <emphasis +>create()</emphasis +> med namnet på klassen som behövs, överliggande komponent och namnet som ska användas. Om <emphasis +>className</emphasis +> matchar någon komponent vi känner till, returnerar vi en ny instans av den klassen, men annars returnerar vi 0. </para> +<para +>Till sist exporterar vi insticksprogrammet. Det tillhandahåller bara en anropspunkt för insticksprogrammet så att &kommander;-systemet kan komma åt den. Utan det känner inte &kommander; igen biblioteket som ett &kommander;-insticksprogram. </para> +<screen +>KOMMANDER_EXPORT_PLUGIN(Mitt_Kom_insticksprogram) +</screen> +<para +>För att kompilera den nya utökningen till &kommander;, ska du kompilera alla filer som ett delat bibliotek, och länka med kommanderplugin, kommanderwidget och eventuella lämpliga KDE-bibliotek. Med radeditorexemplet, om vi har komlineedit.h, komlineedit.cpp och mykomplugin.cpp, skulle kompilering och installering av insticksprogrammet omfatta något som liknar följande kommandon: </para> +<screen +>libtool --mode=compile g++ -$KDEDIR/include -IQTDIR/include \ + -I. -fPIC -c komlineedit.cpp +libtool --mode=compile g++ -$KDEDIR/include -IQTDIR/include \ + -I. -fPIC -c mykomplugin.cpp + +libtool --mode=link g++ -shared -L$KDEDIR/lib -ltdeui -lkommanderwidget \ + -lkommanderplugin komlineedit.cppkomlineedit.o mykomplugin.o + -o libmykomplugin.so +</screen> +<para +>Om du vill installera det nya insticksprogrammet för hela systemet, som systemadministratör, använd då: </para> +<screen +>su -c "cp libmykomplugin.so $KDEDIR/lib" +</screen> +<note +><para +>Om du använder KDevelops projekthantering, behöver du inte göra ovanstående, utan anpassa istället Makefile.am för att länka med extra bibilotek. Normalt länkar den med &Qt;- och &kde;-biblioteken och skapar alla objektfiler som behövs. Kör bara <command +>make</command +> för att bygga och <command +>su -c make install</command +> för att installera.</para +></note> +</sect2> +<sect2 id="config-plugin"> +<title +>Inställning av de installerade insticksprogrammen</title> +<para +>Nu när insticksprogrammet är installerat, kör programmet <command +>kmdr-plugins</command +> eller välj <guimenu +>Inställnigar -> Anpassa insticksprogram</guimenu +> i editorn. Listan i programmet visar insticksprogrammen som för närvarande är laddade av &kommander;. Lägg till det nya insticksprogrammet i listan genom att klicka på knappen <guilabel +>Lägg till</guilabel +> i verktygsraden och välja ditt insticksprogram. När programmet avslutas sparas ändringarna. </para> +<para +>Om du nu startar om &kommander;s editor, ska de grafiska komponenterna som det nya insticksprogrammet tillhandahåller vara tillgängliga i menyer och verktygsrader.Du kan nu använda dina nya komponenter i &kommander;-dialogrutor. </para> +</sect2> +<sect2 id="add-widget"> +<title +>Lägg till komponenten direkt i &kommander;</title> +<para +>Det här avsnittet är till för utvecklare av &kommander;, och beskriver hur en ny komponent läggs till direkt i &kommander;.</para> +<para +>Ironiskt nog är detta mer komplicerat, särskilt om komponenten behöver extra redigeringsmetoder. Först skapas komponenten som ovan. Därefter måste du registrera komponenten i editorn och för körning. Lägg till den i <emphasis +>editor/widgetdatabase.cpp</emphasis +> för att registrera den i editorn: </para> +<screen +>... +#include "mywidget.h" +... +void WidgetDatabase::setupDataBase( int id ) +{ + ... + r = new WidgetDatabaseRecord; + r->name = "MyWidgetName"; + r->iconName = "icon.png"; + r->group = widgetGroup( "Kommander" ); + r->toolTip = i18n("My new widget"); + append(r); + ... +} +</screen> +<para +>Du måste dessutom lägga till följande i <emphasis +>editor/widgetfactory.cpp</emphasis +>: </para> +<screen +>... +#include "mywidget.h" +... +QWidget *WidgetFactory::createWidget( const QString &className, QWidget *parent, const char *name, bool init, + const QRect *r, Qt::Orientation orient ) +{ + ... + else if (className == "MyWidgetName") + return new MyWidget(parent, name); + ... +} +</screen> +<para +>För att registrera för körning (i själva verket i instickssystemet), lägg till följande i <emphasis +>widgets/plugin.cpp</emphasis +>: </para> +<screen +>KomStdPlugin::KomStdPlugin() +{ + ... + addWidget("MyWidgetName", group, "", new QIconSet(KGlobal::iconLoader()->loadIcon("iconname", KIcon::NoGroup, KIcon::SizeMedium))); + ... +} +</screen> +<para +>Det liknar hur komponenten registreras via instickssystemet i det första fallet. </para> +</sect2> +</sect1> + +</chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/glossary.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/glossary.docbook new file mode 100644 index 00000000000..0ff48a0ceb2 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/glossary.docbook @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<glossary id="glossary"> + +<glossaryinfo> +<authorgroup> +<author +><firstname +>Tamara</firstname +> <surname +>King</surname +> <affiliation +><address +> <email +>tik@acm.org</email> +</address +></affiliation> +</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> +</glossaryinfo> + +<glossdiv> +<title +>Nyckelord</title> +<glossentry id="text-association-glosref"> +<glossterm +>Textassociation</glossterm> +<glossdef> +<para +>Ett textstycke som associeras med eller binds till ett visst tillstånd hos en grafisk komponent. </para> +</glossdef> +</glossentry> +<glossentry id="widget-text-glosref"> +<glossterm +>Komponenttext</glossterm> +<glossdef> +<para +>Texten som associeras med en grafisk komponent. Det representeras med det speciella @widgetText i &kommander;. Komponenttexten varierar beroende på grafisk komponent. </para> +</glossdef> +</glossentry> +</glossdiv> +</glossary> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/index.cache.bz2 b/tde-i18n-sv/docs/tdewebdev/kommander/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..030f9456b1a --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/index.cache.bz2 diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/index.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/index.docbook new file mode 100644 index 00000000000..acfca88bac4 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/index.docbook @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kommander "<application +>Kommander</application +>"> + <!ENTITY kappname "&kommander;"> + <!ENTITY package "tdewebdev"> + <!ENTITY basics SYSTEM "basics.docbook"> + <!ENTITY commands SYSTEM "commands.docbook"> + <!ENTITY parser SYSTEM "parser.docbook"> + <!ENTITY credits SYSTEM "credits.docbook"> + <!ENTITY dcop-functions SYSTEM "dcop.docbook"> + <!ENTITY editor SYSTEM "editor.docbook"> + <!ENTITY extending SYSTEM "extending.docbook"> + <!ENTITY translating SYSTEM "translating.docbook"> + <!ENTITY glossary SYSTEM "glossary.docbook"> + <!ENTITY installation SYSTEM "installation.docbook"> + <!ENTITY introduction SYSTEM "introduction.docbook"> + <!ENTITY q-and-a SYSTEM "q-and-a.docbook"> + <!ENTITY specials SYSTEM "specials.docbook"> + <!ENTITY tutorials SYSTEM "tutorials.docbook"> + <!ENTITY widgets SYSTEM "widgets.docbook"> + <!ENTITY designer "<application +>&Qt; Designer</application +>"> + <!ENTITY kmdr-editor "&kommander; Editor"> + <!ENTITY kmdr-executor "&kommander; Executor"> + <!ENTITY GIMP "<application +>The GIMP</application +>"> + <!ENTITY IDE "<acronym +>IDE</acronym +>"> + <!ENTITY PHP "<acronym +>PHP</acronym +>"> + <!ENTITY PID "<acronym +>PID</acronym +>"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Swedish "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>Handbok &kommander;</title> + +<authorgroup> +<author +><firstname +>Marc</firstname +> <surname +>Britton</surname +> <affiliation +> <address +><email +>consume@optushome.com.au</email +></address> +</affiliation> +</author> +<author +><firstname +>Tamara</firstname +> <surname +>King</surname +> <affiliation +> <address +><email +>tik@acm.org</email +></address> +</affiliation> +</author> +<author +><firstname +>Eric</firstname +> <surname +>Laffoon</surname +> <affiliation +> <address +><email +>eric@tdewebdev.org</email +></address> +</affiliation> +</author> +<author +><firstname +>András</firstname +> <surname +>Manţia</surname +> <affiliation +> <address +><email +>amantia@kde.org</email +></address> +</affiliation> +</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> + +<copyright> +<year +>2008</year> +<holder +>Utvecklingsgruppen för &kommander;</holder> +</copyright> + +<legalnotice +>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(V.MM.LL), it could be used by automation scripts. +Do NOT change these in the translation. --> + +<date +>2008-02-12</date> +<releaseinfo +>3.2.95</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para +>Denna dokumentation har varit delvis färdig under åratal, men inte alltid tillgänglig eller lätt att hitta. Från omkring 2002 har små ryck av arbete på &kommander; producerat dramatiska resultat. &kommander; är ett nytt sätt att utveckla, och det har förekommit ändringar i arbetssätt och funktioner. På grund av det är mycket av denna dokumentation föråldrad, men dock fortfarande användbar beroende på att stöd för gamla funktioner finns kvar. Se vår webbplats på <ulink url="http://kommander.tdewebdev.org" +>http://kommander.tdewebdev.org</ulink +> för aktuell information, nyheter om utveckling för KDE 4, nya verktyg, insticksprogram, tips och handledningar.</para> +<para +>&kommander; är en samling verktyg som låter dig skapa dynamiska grafiska användargränssnitt med fönster, som har används till gränssnitt för kommandoradsprogram och databaser, enkla utökningar av program, med mera. Det bästa av allt? Det krävs inte att du skriver en enda kodrad! Nåja, det var den gamla beskrivningen ... Du kan faktiskt använda funktionsbläddraren och nästan inte skriva någon kod också med den nya tolken. Den inneboende skillnaden mellan &kommander; och andra skriptverktyg för grafiska användargränssnitt är att &kommander; inte bryr sig om hur fönstret ritas. &kommander; skapades från det grafiska användargränssnittet ner till språkelementen, och kan anamma flera språk. &kommander; använder inte skript för att rita upp ett fönster på skärmen som andra skriptverktyg för grafiska användargränssnitt. Allteftersom Kommander mognar, kommer alla interna funktioner exponeras för vilket skriptspråk man än vill aktivera. Vi välkomnar alla som vill förbättra stöd för något skriptspråk. </para> +</abstract> + +<!-- This is a set of Keywords for indexing by search engines. +Please at least include KDE, the KDE package it is in, the name + of your application, and a few relevant keywords. --> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>Kommander</keyword> +<keyword +>Quanta</keyword> +</keywordset> + +</bookinfo> + +&introduction; +&basics; +&commands; +&parser; +&extending; +&translating; +&tutorials; +&q-and-a; +&credits; +&installation; +&glossary; + +</book>
\ No newline at end of file diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/installation.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/installation.docbook new file mode 100644 index 00000000000..0db2502a10d --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/installation.docbook @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<appendix id="installation"> +<title +>Installation</title> + +<sect1 id="getting-kapp"> +<title +>Hur man skaffar &kommander;</title> +&install.intro.documentation; <para +>Det finns en egen hemsida för &kommander; på <ulink url="http://kommander.tdewebdev.org" +>http://kommander.tdewebdev.org</ulink +>. </para> +</sect1> + +<sect1 id="requirements"> +<title +>Krav</title> + +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in tdesupport, +tdelibs, or tdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. +--> +<para +>&kommander; kräver den senaste versionen av &kde; 3-serien, för närvarande 3.5.9. Den kan fungera med tidigare versioner av 3.5, men det har inte provats utförligt. </para> +</sect1> + +<sect1 id="compilation"> +<title +>Kompilering och installation</title> +&install.compile.documentation; </sect1> + +</appendix> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/introduction.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/introduction.docbook new file mode 100644 index 00000000000..48bb49a59ce --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/introduction.docbook @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="introduction"> +<chapterinfo> +<title +>Inledning</title> +<authorgroup> +<author +><firstname +>Eric</firstname +> <surname +>Laffoon</surname +> <affiliation +> <address +><email +>sequitur@kde.org</email +></address> +</affiliation> +</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 +>Inledning</title> + +<para +>&kommander; är ett verktyg för att bygga visuella dialogrutor som kan utökas för att skapa program med fullständiga huvudfönster, under förutsättning att fönstret från början skapas i Qt Designer eller från en mall i &kommander;. Huvudsyftet är att skapa så mycket funktioner som möjligt med så liten användning av skriptspråk som möjligt. Det möjliggörs av följande funktioner: </para> +<note +><para +>Observera att dokumentet innehåller föråldrad dokumentation av kompatibilitetsorsaker. I korthet erbjuder &kommander; mycket snabb utveckling med omfattande förmågor och möjligheter. Här följer en ny lista, och därefter det gamla innehållet.</para +></note> + +<itemizedlist> +<listitem> +<para +><emphasis +>Dugligt internt skriptspråk</emphasis +>: &kommander; erbjuder nu nästlade logiska strukturer, enkla fält och användbara funktioner. </para> +</listitem> +<listitem +><para +><emphasis +>Funktionsbläddrare</emphasis +>: Man behöver aldrig veta den exakta syntaxen för någon funktion eller något kommando. Klicka bara på knappen, peka och klicka dig fram till ett funktionsprogram. Till och med projektledaren tycker det är enklare än stavfel nästan hela tiden.</para> +</listitem> +<listitem +><para +><emphasis +>Omfattande grafiska komponenter</emphasis +>: &kommander; har nu en grafisk träd- och detaljkomponent, kalkylarksliknande grafisk tabellkomponent, teckensnittsdialogruta, färgvalsdialogruta, dialogruta med programinformation, tidtagare, grafisk flikkomponent, verktygslåda, sammanhangsberoende menyer, datumväljare, med mera. </para> +</listitem> +<listitem> +<para +><emphasis +>Insticksprogram</emphasis +>: &kommander; kan enkelt köras för att skapa insticksprogram. När detta skrivs är det insticksprogram för databaser som tillhandahåller en uppsättning icke-grafiska verktyg, ett HTTP-insticksprogram som tillhandahåller HTTPS och åtkomst till lösenordsskyddade områden, och en laddare av KPart-delprogram. </para +></listitem> +<listitem> +<para +><emphasis +>Stöd för skriptspråk</emphasis +>: Möjlighet att köra flera olika skriptspråk i &kommander;-skript, inne i dialogrutan. </para +></listitem> +<listitem> +<para +><emphasis +>Skapa KPart-delprogram</emphasis +>: Möjlighet att skapa egna insticksprogram ... och ännu konstigare - man kan till och med få ett &kommander;-fönster att ladda en dialogruta som ett KPart-delprogram och direkt komma åt den med funktioner i &kommander;. </para +></listitem> +</itemizedlist> +<para +>Se dokumentation med tips och trick om hur man får &kommander; att verka använda programmeringstekniker som att inkludera en fil, skapa och använda egna grafiska komponenter, skapa hopfällbara rutor i fönster och andra trick man inte skulle förvänta sig. Nedan följer den gamla listan.</para> +<itemizedlist> + + +<listitem +><para +>Specialvärden inleds med ett <quote +>@</quote +>, som @widgetText. De erbjuder specialfunktioner som en grafisk komponents värde, funktioner, alias, globala variabler och liknande.</para +></listitem> + + +<listitem +><para +>Integrering med &DCOP; gör det möjligt för &kommander; dialogrutor att styra och styras via kommunikation med andra &kde;-program. Det är en mycket kraftfull funktion!</para +></listitem> + +<listitem +><para +>Signaler och slots är något mindre intuitivt för en ny användare. Hur saker behandlas är under granskning för den första huvudutgåvan. Dessa erbjuder en begränsad händelsemodell när en knapp trycks eller en komponent ändras. Kombinerat med <quote +>Ifyllnadstext</quote +> är det ganska kraftfullt.</para +></listitem> +</itemizedlist> + +<para +>Den centrala nyckelfunktionen i &kommander; dialogrutor är att du kan koppla text (&kommander; Text) till en grafisk komponent. Så om du har @komponent1 och @komponent2, och båda är radeditorer, kan du ställa in &kommander; att visa innehållet genom att skriva @widgetText i deras &kommander; textområde. Skriv därefter in "hello" i @komponent1 och "world" i @komponent2. En knapp kan ha strängen "Mitt första @komponent1 @komponent2 program" i &kommander;. Om du kör dialogrutan från en terminal, skriver den ut "Mitt första hello world program" i &kommander;. </para> + +<para +>Förhoppningsvis ser du nu en liten glimt av potentialen. &kommander; möjliggör en mycket snabbare konstruktionsmodell för enkla program, eftersom det tillåter dig att sluta tänka så mycket på språket, och gå tillbaka till den mer grundläggande och naturliga begreppsmodellen. I datorer är ett språk ett sätt att definiera begrepp, och på så sätt är det ett lager mellan begrepp och implementering som kan hindra framsteg med petitesser. &kommander; försöker att minimera detta lager. </para> + +<para +>&kommander; försöker också bygga på standarder. Det är uppbyggt på ramverket i &Qt; Designer, och skapar *.ui-filer, som döps om till *.kmdr. Det kan enkelt importera vilken grafisk komponent från &kde; som helst, och detta kan göras utan att behöva bygga om &kommander; genom att använda insticksprogram. </para> + +<para +>&kommander;s andra viktiga faktor är hur det möter kraven från språk. Datorspråk kan vara underbara ting, men de tenderar att ha sina egna dogmer och fanatiker försöker ofta bevisa framsteg i konstruktion av grafiska gränssnitt i en integrerad utvecklingsmiljö. Ironiskt nog är acceptansen av sådana integrerade utvecklingsmiljöer begränsad av antalet personer som är villiga att ta ett nytt språk i bruk för att få tillgång till en önskad funktion. Det är verkligen inte rimligt att förvänta sig att personer ska byta mellan dussintalet språk för att komma åt olika uppsättningar med funktioner. Genom att vara språkneutralt och tillåta att en &kommander; dialogruta utökas av vilket skriptspråk som helst, positionerar sig &kommander; på en unik plats för omfattande användning. Flera skriptspråk kan användas i en enda dialogruta och program kan tas över av personer som använder ett annat språk än den ursprungliga utvecklaren, och gradvis konverteras och utökas. Alla tillgängliga språk kan omedelbart dra nytta av nya grafiska komponenter och funktioner. </para> + +<para +>Vi hoppas att &kommander; börjar få det stöd och erkännande från utvecklare som krävs för att uppnå potentialen det erbjuder. Vårt slutliga mål är att göra &kommander; användbart för nybörjare för att utöka och sammanfoga deras program. Samtidigt bör det bli ett bra prototypverktyg. Det öppnar också dörren för möjligheter med öppen källkod på ett annat sätt. Vi vet att andra kan utöka våra GPL-program, men faktum kvarstår att mycket få har färdigheten. Med &kommander; kan det antalet multipliceras enormt! Vissa program kan vara mest logiska som &kommander;-program. Vi använder det redan för områden där vi vill ha möjlighet till utökningar i &quantaplus;. </para> + +<para +>Vi hoppas att du tycker om &kommander;. Hjälp oss gärna med felrapporter och exempeldialogrutor, samt eventuella önskemål du har. Du kan gå med i vår <ulink url="http://mail.tdewebdev.org/mailman/listinfo/kommander" +>användarlista</ulink +> för att få hjälp med att utveckla program för &kommander;. </para> + +<para +>Vänliga hälsningar från utvecklingsgruppen för &kommander;!</para> + +</chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/parser.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/parser.docbook new file mode 100644 index 00000000000..ab4e7da71a1 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/parser.docbook @@ -0,0 +1,1566 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="new_parserdocs"> +<chapterinfo> +<title +>&kommander;s nya tolk</title> +<authorgroup> +<author +><firstname +>Michal</firstname +> <othername +></othername +> <surname +>Rudolf</surname +> <affiliation +> <address +><email +>mrudolf@tdewebdev.org</email +></address> +</affiliation> +</author> +<author +><firstname +>Eric</firstname +> <othername +></othername +> <surname +>Laffoon</surname +> <affiliation +> <address +><email +>eric@tdewebdev.org</email +></address> +</affiliation> +</author> +</authorgroup> +<copyright +> <year +>2005-2008</year +> <holder +>Michal Rudolf</holder +> <holder +>Eric Laffoon</holder +> </copyright +> <legalnotice +>&FDLNotice;</legalnotice +> +<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 +> + </chapterinfo> + +<title +>Dokumentation av ny tolk</title> +<para +>Den nya tolken introducerades i &kommander; med version 1.2, utgiven tillsammans med KDE 3.4. Detta dokumentet gavs ursprungligen ut för att visa alla funktioner i den nya tolken. Den nya tolken är förval från och med &kommander; 1.3, utgiven med KDE 3.5.9, utom för program med huvudfönster skapade i &Qt; Designer. Eftersom den nya tolken har så mycket rikare möjligheter, saknar den gamla tolkens begränsning av nästling och lägger till så många nya funktioner, rekommenderar vi starkt att den används. </para> +<para +>&kommander; själv beskrivs inte här. Se övriga dokument för att ta reda på vad &kommander; är till för, hur man skapar dialogrutor och hur grafiska komponenter hanteras under körning. </para> +<!-- +</chapter> + + + +<chapter id="two_parsers"> +<title +>New parser vs. old parser</title> +--> +<sect1 id="two_parsers"> +<title +>Gammal tolk</title> +<para +>Här jämför vi de två tolkarna. Även om vi förordar den nya för nästan alla syften, stöds den gamla fortfarande och är användbar, i synnerhet vid arbete med andra skriptspråk. </para> + +<sect2 id="old_parser"> +<title +>Gammal tolk</title> +<para +>Den gamla tolken var i själva verket en makrotolk. Bara strängar som börjande med @ kändes igen, tolkades lokalt och expanderades. <screen +>@LineEdit1.setText(@ListBox.selection) +</screen> +</para> + +<para +>Alla underliggande funktioner (lokala variabler, uttryck, filhantering) var nödvändigt att göra i ett annat skriptspråk, som Bash. Även om avsikten med &kommander; är att stödja alla andra skriptspråk, vilket för närvarande är i viss mån möjligt, fanns det behov av ett snabbt, inbyggt skriptspråk som var garanterat flyttbart. Det största problemet med den gamla tolken är att &kommander; specialvärden utvärderas <emphasis +>innan</emphasis +> koden skickas till skriptspråket, vilket gör det omöjligt att använda dem i snurror och villkor.</para> +<para +>Utvecklarna ansåg att Bash var långsamt och inte vänligt för nya användare, och den gamla tolken var ursprungligen Bash med DCOP-anrop. Paradoxalt nog orsakade det faktum att &kommander; är språkneutralt ett behov av att kunna göra mer än bara använda funktioner internt. </para> +</sect2> + +<sect2 id="new_parser"> +<title +>Ny tolk</title> +<para +>Den nya tolken är en fullständig tolk. Den tolkar hela skriptet, inte bara funktionerna. Eftersom vårt intresse är interaktion med det grafiska användargränssnittet, inte att sprida skriptspråk, gjorde vi vissa kompromisser. Resultatet är att &kommander;s skriptspråk bör vara användbart för de flesta grundläggande uppgifter, samt naturligt och enkelt att använda. Det finns också en <emphasis +>funktionsbläddrare</emphasis +>, som hjälper till att foga samman satser. Funktionsbläddraren är avsedd att göra &kommander; tillgängligt för fullständiga noviser i programmering. Det liknar vad man finner i Kspread för att hjälpa till att välja en funktion och fylla i parametrarna. <tip +><para +>Om du vill använda utökade funktioner som finns i andra språk, kan du infoga dem i &kommander;-skriptobjekt inledda med teckenföljden #!. I dessa skript hjälper funktionsbläddraren till att infoga referenser till grafiska komponenter. Kom bara ihåg när funktionen används, att tolken utför en genomläsning för den gamla tolkens funktioner och en genomläsning för skriptet. Om du försöker ändra något i en grafisk komponent och läser den i mitten av ett skript, kanske du inte får vad du förväntar dig.</para +></tip> +<screen +>#!/usr/bin/php +</screen> +</para> +<para +>Följande funktionslista kommer från version 1.2</para> +<itemizedlist> +<listitem +><para +>lokala och globala variabler och associativa fält</para +></listitem> +<listitem +><para +>numeriska uttryck</para +></listitem> +<listitem +><para +>stränghantering</para +></listitem> +<listitem +><para +>diverse strukturella kommandon: if, while, for, foreach</para +></listitem> +<listitem +><para +>de flesta funktionerna från den gamla tolken</para +></listitem> +<listitem +><para +>direkt hantering av grafiska komponenter</para +></listitem> +<listitem +><para +>många ytterligare funktioner</para +></listitem> +<listitem +><para +>rimlig körningshastighet</para +></listitem> +<listitem +><para +>mottagning av parametrar från signaler i skriptslots</para +></listitem> +</itemizedlist> +<para +>Denna listan är från version 1.3</para> +<itemizedlist> +<listitem +><para +>skicka parametrar och ta emot dem med skriptkörningsanrop</para +></listitem> +<listitem +><para +>returnera ett värde från ett skript</para +></listitem> +<listitem +><para +>skapa grafiska komponenter i farten</para +></listitem> +<listitem +><para +>ansluta signaler och slots i farten</para +></listitem> +<listitem +><para +>använda variabelalias för namn på en grafisk komponent</para +></listitem> +<listitem +><para +>enkla funktioner för indexerade fält</para +></listitem> +<listitem +><para +>direkt åtkomst av slots i en grafisk komponent</para +></listitem> +</itemizedlist> +</sect2> + +<sect2 id="invoking"> +<title +>Anropa den nya tolken</title> +<para +>För att aktivera den nya tolken, ställ in egenskapen <command +>useInternalParser</command +> i dialogrutan till <command +>true</command +>. Man kan också aktivera den nya tolken i ett enskilt skript genom att skriva <screen> +#!kommander +</screen +> på första raden i skriptet. Observera också, att om du använder ett annat skriptspråk i ett skript med teckenföljden #!, aktiverar &kommander; automatiskt den gamla tolken för att kommunicera med dialogrutan. <screen +>#!/bin/bash +echo @Self.item(0) +# returnerar första parametern som skickas till skriptet +# echo $returvärde återgår till det anropande skriptet +</screen> +</para> +</sect2> +</sect1> +<!-- +</chapter> +<chapter id="features"> +--> +<sect1 id="features"> +<title +>Funktioner i den nya tolken</title> + +<sect2 id="types"> +<title +>Typer</title> +<para +>Varje värde har en av tre typer: sträng, heltal eller dubbelt flyttal. Typkonvertering är automatisk, och väljer den lämpligaste typen (om du till exempel adderar ett flyttal med ett heltal, blir resultatet ett flyttal). Om ett av värdena är en sträng, blir också resultatet det. </para> +<para +>Ställen du kan råka ut för problem här är när ett numeriskt värde hämtas från en grafisk komponent och du försöker använda en matematisk funktion med det. Eftersom &kommander; använder <command +>+</command +> för att sammanfoga två textsträngar, kan det behandla <command +>LineEdit1.text + 2</command +> som <command +>22</command +> istället för <command +>2</command +>. Se konverteringsfunktionerna bland <link linkend="string_functions" +>strängfunktioner</link +> för att undvika problem. </para> +</sect2> + +<sect2 id="expressions"> +<title +>Uttryck</title> +<para +>Följande matematiska operatorer stöds: <command +>+, -, *, mod, </command +>. Vanliga parenteser stöds förstås också. </para> + +<para +>Alla sorters jämförelser stöds: <command +><</command +>, <command +>></command +>, <command +><=</command +>, <command +>>=</command +>, <command +>==</command +>, <command +>!=</command +>. I stället för <command +>!=</command +> kan du också använda <command +><></command +>. Dessutom stöds de logiska operatorerna <command +>and</command +>, <command +>or</command +>, <command +>not</command +>, samt deras motsvarighet i C (<command +>&&</command +>, <command +>||</command +>, <command +>!</command +>). </para> + +<para +>För strängar kan operatorn <command +>+</command +> användas för sammanfogning av strängar. </para> + +<para +>Några exempel på giltiga uttryck: <screen +>2+3 +-5 * (2 - 13 mod 3) +"Listan har " + 12 + "objekt." +</screen> +</para> +</sect2> + +<sect2 id="variables"> +<title +>Variabler</title> +<para +>Variabler behöver inte deklareras. Så fort en variabel har används, anses den vara deklarerad. <link linkend="types" +>Typen</link +> hos en variabel känns igen automatiskt, och kan ändras senare. </para> + +<para +>Dessutom stöds associativa fält. De avbildar strängar till värden av godtycklig typ. För att deklarera ett sådant fält kan du helt enkelt lägga till några element i det, till exempel: <command +>A["Quanta"] = "Webbeditor"</command +>. Fält hanteras också av kommandot <link linkend="foreach" +>foreach</link +> och <link linkend="array_functions" +>fältfunktioner</link +>. </para> + +<para +>Lokala och globala variabler stöds. Globala variabler markeras med ett inledande understreck. Alltså är <command +>min_var</command +> en lokal variabel, medan <command +>_min_var</command +> är global. Samma sak gäller för fält. </para> + +<screen +>a = 5 +b = 2 * 5 - (a + 1) +c = "[Objekt " + b + "]" +d["Min_nyckel"] = "Mitt_värde" +d["Min_nyckel_2"] = 5 +</screen> + +<para +>Att använda variabler för grafiska komponenter fungerar i stort sett som man kan förvänta sig. Det är användbart när grafiska komponenter läggs till i en tabell med en snurra. </para> + +<screen +>for i=0 to 10 do + min_kombinationsruta = "ComboTable"+i + createWidget(min_kombinationsruta, "ComboBox", "Form1") +end +</screen> +</sect2> + +<sect2 id="comments"> +<title +>Kommentarer</title> +<para +>Du kan använda kommentarer i &kommander; med två traditionella kommentarformer från programspråk för radkommentarer. För användare som är noviser när det gäller programmering och som undrar vad <quote +>traditionella former</quote +> är, se nedan. Du kan kopiera och klistra in texten nedan i en initiering av en knapp eller dialogruta, och se hur kommentarer beter sig vid användning. </para> +<screen +>// detta är en kommentar på en rad +message_info("Hej allihop") // traditionellt första program +// ovanstående kommentar ignoreras också - meddelanderutan gör det inte +# detta är också en kommentar +message_info("Detta meddelande visas") +</screen> +<para +>Att använda följande flerraderskommentar fungerar <emphasis +>inte</emphasis +>, och gör att resten av komponentens körning misslyckas. </para> +<screen +>/* +Hej, det är meningen att detta ska vara en kommentar +Ingenting i skriptet efter detta kommer att köras +ANVÄND INTE DENNA KOMMENTARTYP I KOMMANDER! +*/ +</screen> +</sect2> + +<sect2 id="globals"> +<title +>Inbyggda globala variabler</title> +<para +>&kommander; har några inbyggda globala variabler som kan vara praktiska. </para> +<itemizedlist> +<listitem> +<para +><command +>_ARGS</command +> - argumentsträngarna som skickas till dialogrutan när den visas. </para +></listitem> +<listitem> +<para +><command +>_ARGCOUNT</command +> - antal argument som skickades. De kan hämtas som <command +>ARG1</command +> till <command +>ARGn</command +> där n är det totala antalet argument som skickades. </para +></listitem> +<listitem> +<para +><command +>_KDDIR</command +> - katalogen där dialogrutan kördes. &kommander; använder normalt din hemkatalog, eller en ändrad katalog om tillfrågad om dess arbetskatalog. Det är användbart för att spara och läsa filer med &kommander;-filen. </para +></listitem> +<listitem> +<para +><command +>_NAME</command +> - det finns ingen anledning att använda denna, gör alltså inte det </para +></listitem> +<listitem> +<para +><command +>_PID</command +> - processidentifierare som den aktuella dialogrutan körs med - också tillgänglig som bara <emphasis +>pid</emphasis +>. Undvik användning av detta namn för dina egna variabler! </para +></listitem> +<listitem> +<para +><command +>_VERSION</command +> - praktiskt om du vill visa vilken version av &kommander; som kör </para +></listitem> +</itemizedlist> +</sect2> +<sect2 id="passargs"> +<title +>Skicka argument i &kommander;</title> +<para +>Du kan skicka argument via skriptparametrar, signaler och slots, kommandoradsparametrar och DCOP. Låt oss ta en titt på skript. Anropa skript på följande vis:<screen +>resultat = Skriptobjekt1.execute("Hej allihop") +debug(resultat)</screen +> Inne i skriptet kan det se ut så här:<screen +>var = str_upper(Self.Item(0)) +return(var)</screen +> Nu får du ett returvärde i meddelandeloggen via <emphasis +>standardfelutmatningen</emphasis +> som är <emphasis +>HEJ ALLIHOP</emphasis +>. </para> +<para +>Att ta emot en signal som är ansluten till en skriptslot fungerar på samma sätt. <emphasis +>Self.Item(0)</emphasis +> är parameter ett och så vidare. Du kan hämta antal argument som skickas via <emphasis +>Skriptobjekt.count</emphasis +>. </para> +<para +>Kommandoradsparametrar tillåter namngivna eller namnlösa argument. Namnlösa ser ut som <screen +>kmdr-executor mitt_program.kmdr 100 röd</screen +> Här blir _ARG1 = 100 och _ARG2 = röd. En konstighet är att när strängar med mellanslag skickas som argument måste de citeras. Används dialogkommandot blir saker och ting mer komplicerade, eftersom hela argumentsträngen måste skickas som en sträng, alltså inom citationstecken. <screen +>dialog("min_dialog.kmdr", 100+" \"Hej allihop\"")</screen +> Det returnerar <emphasis +>_ARG1 = 100</emphasis +> och <emphasis +>_ARG2 = Hej allihop</emphasis +>. Utan skyddade citationstecken hade du fått <emphasis +>_ARG2 = Hej</emphasis +> och <emphasis +>_ARG3 = allihop</emphasis +>. Att använda namngivna parametrar är rätt trevligt, och potentiellt mindre förvirrande. <screen +>dialog("min_dialog.kmdr", "xantal=100 xcitat=Hej allihop")</screen +> Nu kan du komma åt dem med de globala variablerna <emphasis +>_xantal</emphasis +> och <emphasis +>_xcitat</emphasis +>. </para> +<para +>DCOP kan vara komplicerat, vilket är orsaken till att vi rekommenderar att använda de verktyg vi utvecklar för att göra det möjligt att skapa DCOP för &kommander;-fjärrdialogrutor med något som liknar en funktionsbläddrare. Här är ett exempel på ett DCOP-anrop som skickas från en dialogruta öppnad av ett &kommander;-fönster. Eftersom den vet vem som skapat den, kan den skicka tillbaka information medan den är öppen, och fritt komma åt alla fönstrets funktioner med undantag av slots. Det kan naturligtvis göras internt med ett skript som kan anropas externt, så i praktiken finns det inga begränsningar av vad som är möjligt. <screen +>dcop("kmdr-executor-"+parentPid, "KommanderIf", "setText(QString,QString)", "StatusBar8", "Hej")</screen +> Låt oss titta på detta en del i taget. Först av allt lägger vi till <emphasis +>parentPid</emphasis +> to "kmdr-executor-" eftersom vi inte antar att ett &kommander;-fönster gjorde anropet. Du skulle kunna använda det med Quanta, Kspread eller vad som helst. Därefter adresserar vi <emphasis +>KommanderIf</emphasis +>, som är ett <emphasis +>bra</emphasis +> gränssnitt för slutanvändare som har städats. Vi hoppas att fler program till sist börjar använda ett bra gränssnitt för integrering när KDE går från DCOP till DBUS i KDE4. Nästa parameter, <emphasis +>"setText(QString,QString)"</emphasis +>, är viktig eftersom den anger <emphasis +>prototyp</emphasis +> för tillåtna parametrar. Annars skulle inte &kommander; kunna validera anropet. Utan definitionen av DCOP-anropet som används får du ett fel. Återstående parametrar är förstås de som skickas. Vi rekommenderar att du tittar på program med <command +>kdcop</command +> för att se hur det fungerar, och övar på att skicka DCOP-anrop från skalet för att få rätt syntax. </para> +</sect2> +</sect1> +<!-- +</chapter> +--> +<sect1 id="parser_commands"> + +<title +>Kommandon</title> +<para +>Diverse strukturkommandon stöds. De kan nästlas fritt. </para> + +<para +>Det finns också tre särskilda kommandon: <command +>exit</command +>, <command +>break</command +> och <command +>continue</command +>. Det första avsluta skriptets körning och återgår. Det andra avslutar pågående block (<link linkend="while" +>while</link +>, <link linkend="for" +>for</link +> eller <link linkend="foreach" +>foreach</link +>), och det tredje avslutar bara pågående varv, och fortsätter från snurrans början. </para> + + +<sect2 id="if"> +<title +>if</title> +<para +>Kommandot <command +>if</command +> har följande syntax: </para> + +<para +><command +>if</command +> <emphasis +>villkor</emphasis +> <command +>then</command +> <emphasis +>kod</emphasis +> <command +>elseif</command +> <emphasis +>villkor</emphasis +> <command +>then</command +> <emphasis +>kod</emphasis +> <command +>else</command +> <emphasis +>kod</emphasis +> <command +>endif</command +> </para> + +<para +>Både delarna <command +>elseif</command +> och <command +>else</command +> är valfria. <emphasis +>Villkor</emphasis +> är vilket uttryck som helst. <emphasis +>Kod</emphasis +> utförs om villkoret är sant. Det betyder: <itemizedlist> +<listitem +><para +>skilt från noll för heltal och flyttal</para +></listitem> +<listitem +><para +>inte tom för strängar</para +></listitem> +</itemizedlist> +</para> + +<screen +>if a * 2 > 7 then + b = 1 +elseif a < 0 then + b = 2 +elseif + b = 0 +endif +</screen> +</sect2> + +<sect2 id="while"> +<title +>while</title> +<para +><command +>while</command +> <emphasis +>villkor</emphasis +> <command +>do</command +> <emphasis +>kod</emphasis +> <command +>end</command +> </para> + +<para +><emphasis +>Villkor</emphasis +> beräknas om varje gång snurran utförs. <screen +>while i < 15 do + i = i + a +end +</screen> +</para> + + +</sect2> + +<sect2 id="for"> +<title +>for</title> +<para +>Kommandot <command +>for</command +> har följande syntax: </para> + +<para +><command +>for</command +> <emphasis +>variabel</emphasis +> <command +>=</command +> <emphasis +>startvärde</emphasis +> <command +>to</command +> <emphasis +>slutvärde</emphasis +> <command +>step</command +> <emphasis +>uttryck</emphasis +> <command +>do</command +> <emphasis +>kod</emphasis +> <command +>end</command +> </para> + +<para +>Snurran utförs med början på <emphasis +>startvärde</emphasis +> och avslutas när variabelns värde är större än <emphasis +>slutvärde</emphasis +>. Om <command +>step</command +> anges, ökas variabelns värde med det angivna värdet istället för <command +>1</command +>. <screen +>for i = 1 to 20 step 5 do + a = a + 2 * i +end +</screen> +</para> +</sect2> + +<sect2 id="foreach"> +<title +>foreach</title> +<para +>Kommandot <command +>foreach</command +> har följande syntax: </para> + +<para +><command +>foreach</command +> <emphasis +>variabel</emphasis +> <command +>in</command +> <emphasis +>fält</emphasis +> <command +>do</command +> <emphasis +>kod</emphasis +> <command +>end</command +> </para> + +<para +>Snurran utförs för varje värde i det givna fältet. För varje varv tilldelas variabeln nästa värde i fältet. <screen +>summa = 0 +foreach i in mitt_fält do + summa = summa + mitt_fält[i] +end +</screen> +</para> +</sect2> +</sect1> +<!-- +</chapter> +--> +<sect1 id="functions"> + +<title +>Funktioner</title> +<para +>De flesta av den gamla tolkens funktioner stöds av den nya tolken. Dessutom har några nya funktioner lagts till. </para> + + +<sect2 id="string_functions"> +<title +>Strängfunktioner</title> +<para +>Strängfunktionerna är samma som i den gamla tolken, den enda skillnaden är att deras namn inleds med <command +>str_</command +> istället för <command +>@String.</command +> <itemizedlist> +<listitem> +<para +><command +>str_length(<parameter +>sträng</parameter +>)</command +> - returnerar längden av <emphasis +>sträng</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_contains(<parameter +>sträng</parameter +>, <parameter +>text</parameter +>)</command +> - returnerar 1 om <emphasis +>sträng</emphasis +> innehåller <emphasis +>text</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_find(<parameter +>sträng</parameter +>, <parameter +>text</parameter +>, <parameter +>start</parameter +>)</command +> - returnerar positionen för den första förekomsten av <emphasis +>text</emphasis +> i <emphasis +>sträng</emphasis +>, det valfria värdet <emphasis +>start</emphasis +> anger sökningens början </para +></listitem> +<listitem> +<para +><command +>str_find(<parameter +>sträng</parameter +>, <parameter +>text</parameter +>, <parameter +>start</parameter +>)</command +> - returnerar positionen för den sista förekomsten av <emphasis +>text</emphasis +> i <emphasis +>sträng</emphasis +>, det valfria värdet <emphasis +>start</emphasis +> anger sökningens början </para +></listitem> +<listitem> +<para +><command +>str_left(<parameter +>sträng</parameter +>, <parameter +>antal</parameter +>)</command +> - returnerar första <emphasis +>antal</emphasis +> tecken av <emphasis +>sträng</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_right(<parameter +>sträng</parameter +>, <parameter +>antal</parameter +>)</command +> - returnerar sista <emphasis +>antal</emphasis +> tecken av <emphasis +>sträng</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_right(<parameter +>sträng</parameter +>, <parameter +>start</parameter +>, <parameter +>antal</parameter +>)</command +> - returnerar delsträngen av <emphasis +>sträng</emphasis +> med början på <emphasis +>start</emphasis +> som innehåller <emphasis +>antal</emphasis +> tecken (eller allt till strängens slut om den sista parametern inte anges) </para +></listitem> +<listitem> +<para +><command +>str_remove(<parameter +>sträng</parameter +>, <parameter +>text</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> med alla delsträngar som är lika med <emphasis +>text</emphasis +> borttagna </para +></listitem> +<listitem> +<para +><command +>str_replace(<parameter +>sträng</parameter +>, <parameter +>text</parameter +>, <parameter +>text2</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> med alla delsträngar som är lika med <emphasis +>text</emphasis +> ersatta med <emphasis +>text2</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_lower(<parameter +>sträng</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> konverterad till små bokstäver </para +></listitem> +<listitem> +<para +><command +>str_upper(<parameter +>sträng</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> konverterad till stora bokstäver </para +></listitem> +<listitem> +<para +><command +>str_section(<parameter +>sträng</parameter +>, <parameter +>avdelare</parameter +>, <parameter +>start</parameter +>, <parameter +>slut</parameter +>)</command +> - returnerar delsträngen som innehåller lämpliga delar av <emphasis +>sträng</emphasis +> bestämda av <emphasis +>avdelare</emphasis +>. Om inget <emphasis +>slut</emphasis +> anges, returneras en ensam del från <emphasis +>start</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_args(<parameter +>sträng</parameter +>, <parameter +>...</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> med <command +>%1</command +>, <command +>%2</command +>, <command +>%3</command +> ersatta med efterföljande parametrar. </para +></listitem> +<listitem> +<para +><command +>str_isnumber(<parameter +>sträng</parameter +>)</command +> - returnerar 1 om <emphasis +>sträng</emphasis +> är ett giltigt tal </para +></listitem> +<listitem> +<para +><command +>str_isempty(<parameter +>sträng</parameter +>)</command +> - returnerar 1 om <emphasis +>sträng</emphasis +> är tom </para +></listitem> +<listitem> +<para +><command +>str_toint(<parameter +>sträng</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> konverterad till ett heltal. Om konverteringen inte är möjlig, returneras det valfria värdet <emphasis +>förval</emphasis +> </para +></listitem> +<listitem> +<para +><command +>str_todouble(<parameter +>sträng</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar <emphasis +>sträng</emphasis +> konverterad till ett flyttal. Om konverteringen inte är möjlig, returneras det valfria värdet <emphasis +>förval</emphasis +> </para +></listitem> +</itemizedlist +></para> +</sect2> + +<sect2 id="kommander_functions"> +<title +>&kommander;-funktioner</title> +<para +>De flesta &kommander;-funktioner stöds. Vissa (som <command +>expr</command +>) blev föråldrade av den nya tolken och är inte tillgängliga. </para> + +<itemizedlist> +<listitem> +<para +><command +>debug(<parameter +>sträng</parameter +>, <parameter +>...</parameter +>)</command +> - skriver ut alla parametrar på standardfelutmatningen </para +></listitem> +<listitem> +<para +><command +>echo(<parameter +>sträng</parameter +>, <parameter +>...</parameter +>)</command +> - skriver ut alla parametrar på standardutmatningen </para +></listitem> +<listitem> +<para +><command +>dcop(<parameter +>sträng</parameter +>, <parameter +>...</parameter +>)</command +> - anropar en DCOP-funktion</para> +</listitem> +<listitem> +<para +><command +>exec(<parameter +>sträng</parameter +>, <parameter +>skal</parameter +>)</command +> - kör ett externt program (med användning av valfritt <emphasis +>skal</emphasis +>), blockerar körningen av aktuell dialogruta till programmet som skickas som parameter avslutas, returnerar programmets utmatning </para +></listitem> +<listitem> +<para +><command +>i18n(<parameter +>sträng</parameter +>)</command +> - markerar <emphasis +>sträng</emphasis +> för framtida översättning </para +></listitem> +<listitem> +<para +><command +>env(<parameter +>sträng</parameter +>)</command +> - returnerar värdet av en miljövariabel </para +></listitem> +<listitem> +<para +><command +>readSetting(<parameter +>nyckel</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar ett värde lagrat i inställningsfilen med angiven <emphasis +>nyckel</emphasis +>. Om ett sådant värde inte finns, returneras <emphasis +>förval</emphasis +> </para +></listitem> +<listitem +><para +><command +>writeSetting(<parameter +>nyckel</parameter +>, <parameter +>värde</parameter +>)</command +> - skriver paret <emphasis +>nyckel</emphasis +> och <emphasis +>värde</emphasis +> i inställningsfilen </para +></listitem> +</itemizedlist> +<para +>Nytt i &kommander; 1.3</para> +<itemizedlist> +<listitem> +<para +><command +>execBackground(<parameter +>sträng</parameter +>, <parameter +>skal</parameter +>)</command +> - kör ett externt program (med användning av valfritt <emphasis +>skal</emphasis +>) i bakgrunden, utan att blockera aktuell dialogruta, i motsats till funktionen <command +>exec</command +> ovan, returnerar den inte programmets utmatning. </para +></listitem> +<listitem> +<para +><command +>return(<parameter +>värde</parameter +>)</command +> - returnerar ett värde till anropande objekt (skript, knapp ...) </para +></listitem> +<listitem> +<para +><command +>createWidget(<parameter +>komponentnamn</parameter +>, <parameter +>komponenttyp</parameter +>, <parameter +>skapare</parameter +>)</command +> - skapar en ny grafisk komponent. Därefter kan du till exempel lägga till den i en tabell eller verktygslåda, och använda <command +>min_komponent.show(true)</command +> för att göra den synlig. Om du lägger till en ny grafisk komponent i formuläret, måste du ta hänsyn till layout. &kommander; skapar inte en layout i farten, eller justerar positioner bildpunkt för bildpunkt (i de flesta fall). Det är förvirrande till och med vid utveckling med C++. Vi rekommenderar att du använder en gruppruta och skapar en layout i dialogrutan för att få bäst kontroll. </para +></listitem> +<listitem> +<para +><command +>connect(<parameter +>avsändare</parameter +>, <parameter +>signal</parameter +>, <parameter +>mottagare</parameter +>, <parameter +>slot</parameter +>)</command +> - anslut en signal i en grafisk komponent till en slot. Se anslutningsdialogrutan och välj liknande komponenter för att se möjligheterna. Om en signal till exempel ser ut som <command +>execute(const QString&)</command +> är det exakt vad som måste finnas här inom citationstecken. </para +></listitem> +<listitem> +<para +><command +>disconnect(<parameter +>avsändare</parameter +>, <parameter +>signal</parameter +>, <parameter +>mottagare</parameter +>, <parameter +>slot</parameter +>)</command +> - ta bort anslutningen som anges ovan. Återigen är exakt riktig syntax helt nödvändig. </para +></listitem> +<listitem> +<para +><command +>widgetExists(<parameter +>komponentnamn</parameter +>)</command +> - kom ihåg att du nu kan använda ett variabelnamn för att ange en grafisk komponent . Använd det när grafiska komponenter som skapats ska kommas åt, för att försäkra dig om att de finns. Att anropa en grafisk komponent som inte finns orsakar naturligtvis ett fel. </para +></listitem> +</itemizedlist> +</sect2 +> + +<sect2 id="array_functions"> +<title +>Fältfunktioner</title> +<para +>De flesta fältfunktioner stöds. Vissa (som <command +>value</command +>) blev föråldrade av den nya tolken och är inte tillgängliga. Den enda skillnaden är att deras namn inleds med <command +>array_</command +> istället för <command +>@Array.</command +> </para> + +<warning +><para +>På grund av begränsningar i tolken, måste fältnamn för närvarande anges som strängar, till exempel <command +>array_count("Mitt_fält")</command +>.</para +></warning> + +<itemizedlist> +<listitem> +<para +><command +>array_clear(<parameter +>fält</parameter +>)</command +> - tar bort alla element från <emphasis +>fält</emphasis +> </para +></listitem> +<listitem> +<para +><command +>array_count(<parameter +>fält</parameter +>)</command +> - returnerar antal element i <emphasis +>fält</emphasis +> </para +></listitem> +<listitem> +<para +><command +>array_keys(<parameter +>fält</parameter +>)</command +> - returnerar en sträng som innehåller nycklarna i <emphasis +>fält</emphasis +> åtskilda med radslut. Observera att om du importerade en skalär (nycklar utan värden) i ett fält med &kommander; skulle du inte kunna komma åt den med <command +>array_values("mitt_fält")</command +> som du kanske förväntade dig (eftersom den bara verkar ha värden) utan skulle istället behöva använda <command +>array_keys("mitt_fält")</command +>. Du kanske finner att ett bättre val i detta fall är att använda de nya <emphasis +>indexerade fälten</emphasis +> som beskrivs nedan. </para +></listitem> +<listitem> +<para +><command +>array_values(<parameter +>fält</parameter +>)</command +> - returnerar en sträng som innehåller värden i <emphasis +>fält</emphasis +> åtskilda med radslut </para +></listitem> +<listitem> +<para +><command +>array_tostring(<parameter +>fält</parameter +>)</command +> - returnerar en sträng som innehåller hela <emphasis +>fält</emphasis +> som rader med par av nyckel och värden åtskilda med tabulatortecken </para +></listitem> +<listitem> +<para +><command +>array_fromstring(<parameter +>fält</parameter +>, <parameter +>sträng</parameter +>)</command +> - läser fält från <emphasis +>sträng</emphasis +> (oftast skapad av funktionen <command +>array_tostring</command +>) </para +></listitem> +<listitem> +<para +><command +>array_remove(<parameter +>fält</parameter +>, <parameter +>nyckel</parameter +>)</command +> - tar bort objektet med <emphasis +>nyckel</emphasis +> från <emphasis +>fält</emphasis +> </para +></listitem> +</itemizedlist> +<para +>Här är ett exempel på fälthantering:</para> +<screen +>array_fromstring("mitt_fält", "1\tA\nandra\tB\n3\tC") +foreach key in mitt_fält do + debug("mitt_fält[" + key + "]= " + mitt_fält[key]) +end +</screen> +<para +>Det skriver ut följande på standardfelutmatningen. Det syns att det inte finns någon garanti om elementens ordning i fältet, samt att nycklarna är strängar, inte tal.</para> +<screen +>mitt_fält[1]= A +mitt_fält[3]= C +mitt_fält[andra]= B +</screen> +<para +>Ett annat exempel på fält utan nycklar:</para> +<screen +>array_fromstring("mitt_fält", "A\nB\nC") +foreach nyckel in mitt_fält do + debug(nyckel) +end +debug("Fältelement:\n" + array_keys("mitt_fält")) +</screen> +<para +>Det ger resultatet:</para> +<screen +>A +B +C +Fältelement: +A +B +C +</screen> + +<para +>Nytt i &kommander; 1.3</para> +<itemizedlist> +<listitem> +<para +><command +>array_indexedFromString(<parameter +>fält</parameter +>, <parameter +>sträng</parameter +>, <parameter +>avdelare</parameter +>)</command +> - Det här kompenserar för att &kommander; inte har indexerade fält. Den skapar ett fält med ett nollbaserat sekvensiellt index. Kom ihåg att använda citationstecken för fältnamnet och eventuella strängar som inte representeras av en variabel. Argumentet avdelare är valfritt och har det förvalda värdet "\t" (tabulator), och används för att åtskilja fält vid läsning och skrivning av tabeller, fält eller grafiska detaljkomponenter. <emphasis +>Kom ihåg att fältindex inte själv tvingar att några regler följs, det är precis som om du skapade det med en for-snurra, bara bekvämare.</emphasis +> </para +></listitem> +<listitem> +<para +><command +>array_indexedInsertElements(<parameter +>fält</parameter +>, <parameter +>nyckel</parameter +>, <parameter +>sträng</parameter +>, <parameter +>avdelare</parameter +>)</command +> - Funktionen ingår i uppsättningen med funktioner för indexerade fält, och gör det möjligt att infoga element i fältet och samtidigt behålla ett index som är sekventiellt, i en följd, och unikt. Ange indexnyckel att börja, textsträng och hur den skiljs åt. Elementen läggs till och alla efterföljande indexnummer skiftas med antalet tillagda element. </para +></listitem> +<listitem> +<para +><command +>array_indexedRemoveElements(<parameter +>fält</parameter +>, <parameter +>nyckel</parameter +>, <parameter +>antal</parameter +>)</command +> - Det här gör det möjligt att ta bort element från ett indexerat fält och undvika indexhål. Ange nyckel att börja med och valfritt hur många element som ska tas bort. Förvalt antal är ett. Slutresultatet blir ett omindexerat fält utan de borttagna elementen. </para +></listitem> +<listitem> +<para +><command +>array_indexedToString(<parameter +>fält</parameter +>, <parameter +>avdelare</parameter +>)</command +> - Det här gör det möjligt att konvertera ett indexerat fält tillbaka till en sträng, vilket är särskilt användbart för grafiska detaljkomponenter. Om du till exempel visar resultatet av en databasfråga i Trädkomponent1 med sex kolumner, kan du använda <command +>Trädkomponent1.selection</command +> för att hämta den markerade raden. Den är avdelad med tabulatortecken, och du skulle kunna titta på det femte elementet genom att använda <command +>str_section(Trädkomponent1.selection, "\t", 4)</command +> (kom ihåg att den är nollbaserad). Det är bra för att läsa ett värde, men om du vill ändra det märker du att du måste göra en hel del ytterligare arbete. Efter strängen har delats, måste du sätta ihop den igen med <command +>val1+"\t"+val2...</command +>. Genom att använda indexerade fält kan du redigera det femte elementet på följande sätt:<screen> +idx = Trädkomponent1.currentItem +array_indexedFromString("z", Trädkomponent1.selection) +z[4] = "nytt värde" +Trädkomponent1.removeItem(idx) +Trädkomponent1.insertItem(array_indexedToString("z"), idx) +</screen +> Observera att bara två korta rader har lagts till för att åstadkomma det. Det är mycket välkommet vid databasanvändning. </para +></listitem> +</itemizedlist> +</sect2 +> + + +<sect2 id="file_functions"> +<title +>Filfunktioner</title> +<para +>Alla filfunktioner stöds. Den enda skillnaden är att deras namn inleds med <command +>file_</command +> istället för <command +>@File.</command +> </para> + +<itemizedlist> +<listitem> +<para +><command +>file_read(<parameter +>namn</parameter +>)</command +> - returnerar innehållet i filen <emphasis +>namn</emphasis +> </para +></listitem> +<listitem> +<para +><command +>file_write(<parameter +>namn</parameter +>, <parameter +>...</parameter +>)</command +> - skriver alla argument till filen <emphasis +>namn</emphasis +> </para +></listitem> +<listitem> +<para +><command +>file_append(<parameter +>namn</parameter +>, <parameter +>...</parameter +>)</command +> - lägger till alla argument sist i filen <emphasis +>namn</emphasis +> </para +></listitem> +</itemizedlist> +</sect2 +> + + +<sect2 id="input_functions"> +<title +>Inmatningsfunktioner</title> +<para +>Dessa funktioner visar en dialogruta som låter användaren mata in ett värde. De kan kommas åt genom att använda <command +>@Input.</command +> i den gamla tolken. För de flesta funktioner är alla parametrar valfria, undantagen är <command +>input_text</command +> som kräver 2 parametrar och <command +>input_value</command +> som kräver 5 parametrar. </para> + +<itemizedlist> +<listitem> +<para +><command +>input_color(<parameter +>rubrik</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar färg på formatet #RRGGBB </para +></listitem> +<listitem> +<para +><command +>input_text(<parameter +>rubrik</parameter +>, <parameter +>beteckning</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar text inmatad av användaren </para +></listitem> +<listitem> +<para +><command +>input_value(<parameter +>rubrik</parameter +>, <parameter +>beteckning</parameter +>, <parameter +>förval</parameter +>, <parameter +>min</parameter +>, <parameter +>max</parameter +>, <parameter +>steg</parameter +>)</command +> - returnerar värden som matas in av användaren </para +></listitem> +<listitem> +<para +><command +>input_direktory(<parameter +>startkatalog</parameter +>, <parameter +>filter</parameter +>)</command +> - returnerar en katalog som valts av användaren </para +></listitem> +<listitem> +<para +><command +>input_openfile(<parameter +>rubrik</parameter +>, <parameter +>beteckning</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar en befintlig fil som matas in av användaren </para +></listitem> +<listitem> +<para +><command +>input_savefile(<parameter +>rubrik</parameter +>, <parameter +>beteckning</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar en fil som matas in av användaren (om filen redan finns, krävs en bekräftelse) </para +></listitem> +<listitem> +<para +><command +>input_openfiles(<parameter +>rubrik</parameter +>, <parameter +>beteckning</parameter +>, <parameter +>förval</parameter +>)</command +> - returnerar en sträng med befintliga filer som matas in av användaren åtskilda med radslut </para +></listitem> +</itemizedlist> +</sect2 +> + + +<sect2 id="message_functions"> +<title +>Meddelandefunktioner</title> +<para +>Dessa funktioner visar meddelanden för användaren, eller ber användaren bekräfta en åtgärd. Använd istället <command +>@Message.</command +> i den gamla tolken. </para> + +<itemizedlist> +<listitem> +<para +><command +>message_info(<parameter +>text</parameter +>, <parameter +>rubrik</parameter +>)</command +> - visar informationstext </para +></listitem> +<listitem> +<para +><command +>message_error(<parameter +>text</parameter +>, <parameter +>rubrik</parameter +>)</command +> - visar feltext </para +></listitem> +<listitem> +<para +><command +>message_warning(<parameter +>text</parameter +>, <parameter +>rubrik</parameter +>, <parameter +>knapp1</parameter +>, <parameter +>knapp2</parameter +>, <parameter +>knapp3</parameter +>)</command +> - visar en fråga med en varning och upp till tre knappar. Numret på den valda knappen returneras. Om inga knappnamn anges, visas <command +>Ja</command +> och <command +>Nej</command +> </para +></listitem> +<listitem> +<para +><command +>message_question(<parameter +>text</parameter +>, <parameter +>rubrik</parameter +>, <parameter +>knapp1</parameter +>, <parameter +>knapp2</parameter +>, <parameter +>knapp3</parameter +>)</command +> - visar en fråga och upp till tre knappar. Numret på den valda knappen returneras. Om inga knappnamn anges, visas <command +>Ja</command +> och <command +>Nej</command +> </para +></listitem> +</itemizedlist> +</sect2 +> +</sect1> +</chapter> + + + diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/q-and-a.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/q-and-a.docbook new file mode 100644 index 00000000000..ebb91251fe8 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/q-and-a.docbook @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="faq"> +<chapterinfo> +<title +>Vanliga frågor</title> +</chapterinfo> + +<title +>Vanliga frågor</title> +<para +>Listan med vanliga frågor finns på <ulink url="http://kommander.tdewebdev.org/faq.php" +>vår hemsida</ulink +>. </para> +</chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/specials.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/specials.docbook new file mode 100644 index 00000000000..a3cd23a2076 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/specials.docbook @@ -0,0 +1,698 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<sect1 id="specials"> +<sect1info> +<title +>Specialvärden och inbyggda globala variabler</title> +</sect1info> + +<title +>Specialvärden och inbyggda globala variabler</title> + +<para +>Specialvärden är funktioner som behandlas av &kommander;. Du bör vara medveten om att när den gamla tolken används, utförs alla &kommander; specialvärden först och därefter körs skriptet. I det flesta fall är det inte något problem, men i några enstaka fall (särskilt i snurror och villkor) kan det vara det. </para> +<note +><para +>Listan nedan kan vara något föråldrad. Du rekommenderas att använda <guilabel +>funktionsbläddraren</guilabel +> för att få hjälp om tillgängliga funktioner. <guilabel +>Funktionsbläddraren</guilabel +> kan nås inne i editorn <guilabel +>Kommander Text</guilabel +>, genom att klicka på knappen <guilabel +>Funktion...</guilabel +>. </para> +</note> + +<variablelist> +<varlistentry> +<term +><function +>@dcop(<parameter +>pgmId</parameter +>, <parameter +>objekt</parameter +>, <parameter +>funktion</parameter +>, <parameter +>argument</parameter +>)</function +></term> +<listitem> +<para +>Gör ett &DCOP;-anrop, @dcop(<quote +>kmail</quote +>, <quote +>KMailIface</quote +>, <quote +>checkMail()</quote +>, <quote +></quote +>) </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@dcopid</function +></term> +<listitem> +<para +>&DCOP;-id för processen (kmdr-executor-@pid) </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@dialog(<parameter +>dialogruta</parameter +>[,<parameter +>parametrar</parameter +>])</function +></term> +<listitem> +<para +>Startar angiven Kommander dialogruta. Dialogrutan letas efter i katalogen med dialogrutor och i arbetskatalogen, i den ordningen. Det här lägger till anropet till Executor i början och ändrar standardkatalog till den som Kommander programmet finns i. Parametrar kan skickas som vanligt i Unix, eller så kan namngivna parametrar som <quote +>variabel=värde</quote +> skickas. Därefter hittar du skickade parametrar i den globala uppsättningen. @global(variabel) skulle returnera <quote +>värde</quote +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@env(<parameter +>miljövariabel</parameter +>)</function +></term> +<listitem> +<para +>Ersätts med den angivna miljövariabeln. @env(PWD) ersätts med $PWD. Kom ihåg att <quote +>$</quote +> ingår i skalet, och ska inte användas. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@exec(<parameter +>kommando</parameter +>)</function +></term> +<listitem> +<para +>Returnerar utmatningen från körningen av det angivna kommandot. @exec(ls -l). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@execBegin ... @execEnd</function +></term> +<listitem> +<para +>Samma som <function +>@exec</function +>, men stöder inledning med "#!" och skript med flera rader. Det fungerar med diverse skriptspråk antingen genom att deklarera dem eller genom att använda "#!". </para> +<itemizedlist> +<listitem +><para +><function +>@execBegin(php)</function +></para +></listitem> +<listitem +><para +><function +>@execBegin</function +>(#!/usr/bin/php)</para +></listitem> +</itemizedlist> +<para +>Det första exemplet använder namnet på det körbara programmet <acronym +>PHP</acronym +>. &kommander; söker i PATH efter <application +>php</application +> och om det inte hittas kontrollerar om det är registrerat i &kommander; på en plats som inte finns i sökvägen. Om inte får användaren reda på att det inte kan hittas. Det andra exemplet använder den klassiska inledningen <quote +>!#</quote +>, som både kan ha fördelar men också problem. Om du till exempel har en betaversion av <acronym +>PHP5</acronym +> i <filename +>/usr/local/bin</filename +> hittas den inte eftersom en annan hittas i <filename +>/usr/bin</filename +>, är det användbart. Om du dock distribuerar dialogrutan till någon som bara har <acronym +>PHP</acronym +> i <filename +>/usr/local/bin</filename +> hittas den inte med inledningen som används. Alltså varnas för att använda en inledning, och det rekommenderas att använda det körbara namnet om du delar filer.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@global(<parameter +>variabel</parameter +>)</function +></term> +<listitem> +<para +>Ersätts med värdet på den angivna globala variabeln. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@null</function +></term> +<listitem> +<para +>Returnerar null. Nu när Kommander kontrollerar om widgetText är tom vid körning, förhindrar detta felaktiga fel med fallet då en grafisk komponent har ett tillstånd som inte är angivet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@parentPid</function +></term> +<listitem> +<para +>Process-id för överliggande process. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@pid</function +></term> +<listitem> +<para +>Process-id för processen. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@readSetting(<parameter +>nyckel</parameter +>, <parameter +>förvalt värde</parameter +>)</function +></term> +<listitem> +<para +>Läser ett värde från <filename +>kommanderrc</filename +>. Se också @writeSetting. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@selectedWidgetText</function +></term> +<listitem> +<para +>Det markerade innehållet i en grafisk komponent som kan visa mer än ett värde, som listkomponenter. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@setGlobal(<parameter +>variabel</parameter +>, <parameter +>värde</parameter +>)</function +></term> +<listitem> +<para +>Tilldelar den globala variabeln det angivna värdet. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@widgetText</function +></term> +<listitem> +<para +>Innehållet i en grafisk komponent. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@writeSetting(<parameter +>nyckel</parameter +>, <parameter +>värde</parameter +>)</function +></term> +<listitem> +<para +>Skriv värde till <filename +>kommanderrc</filename +>. Alla &kommander;-dialogrutor delar samma kommanderrc-fil, och var och en har sin egen sektion i den. </para> +</listitem> +</varlistentry> +</variablelist> + +<sect2 id="arrays"> +<title +>Fältfunktionsgruppen</title> + +<variablelist> +<varlistentry> +<term +><function +>@Array.values(<parameter +>fält</parameter +>)</function +></term> +<listitem> +<para +>Returnerar en lista åtskild med nyrader med alla värden i fältet. Kan användas för att gå igenom ett fält.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.keys(<parameter +>fält</parameter +>)</function +></term> +<listitem> +<para +>Returnerar en lista med alla nycklar i fältet åtskilda med nyrader.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.setValue(<parameter +>fält</parameter +>, <parameter +>nyckel</parameter +>, <parameter +>värde</parameter +>)</function +></term> +<listitem> +<para +>Anger en nyckel och värde för ett element i ett fält. Om fältet inte finns, skapas det.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.clear(<parameter +>fält</parameter +>)</function +></term> +<listitem> +<para +>Ta bort alla element från fältet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.count(<parameter +>fält</parameter +>)</function +></term> +<listitem> +<para +>Returnera antal element i fältet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.value(<parameter +>fält</parameter +>,<parameter +>nyckel</parameter +>)</function +></term> +<listitem> +<para +>Returnera värdet som hör ihop med den givna nyckeln.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.remove(<parameter +>fält</parameter +>,<parameter +>nyckel</parameter +>)</function +></term> +<listitem> +<para +>Ta bort elementet med den givna nyckeln från fältet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.fromString(<parameter +>fält</parameter +>,<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Lägger till alla element i strängen till fältet. Strängen ska har formatet <emphasis +>nyckel\tvärde\n</emphasis +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@Array.toString(<parameter +>fält</parameter +>,<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Returnerar alla element i fältet på formatet <emphasis +>nyckel\tvärde\n</emphasis +>.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="files"> +<title +>Filfunktionsgruppen</title> +<variablelist> + +<varlistentry> +<term +><function +>@File.read(<parameter +>fil</parameter +>)</function +></term> +<listitem> +<para +>Returnera innehållet i den givna filen.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@File.write(<parameter +>fil</parameter +>,<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Skriv given sträng till en fil.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@File.append(<parameter +>fil</parameter +>,<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Skriv given sträng i slutet på en fil.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="strings"> +<title +>Strängfunktionsgruppen</title> +<variablelist> + +<varlistentry> +<term +><function +>@String.length(<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Returnera antalet tecken i strängen.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.contains(<parameter +>sträng</parameter +>,<parameter +>delsträng</parameter +>)</function +></term> +<listitem> +<para +>Kontrollera om strängen innehåller en given delsträng.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.find(<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Returnera en delsträngs position i strängen, eller -1 om den inte hittas.</para> +<note +><para +>Det här kommer att ha ett valfritt heltal med startposition, för användning för att söka igen i version alfa 6.</para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.left(<parameter +>sträng</parameter +>, <parameter +>heltal</parameter +>)</function +></term> +<listitem> +<para +>Returnerar de första n tecknen i strängen.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.right(<parameter +>sträng</parameter +>, <parameter +>heltal</parameter +>)</function +></term> +<listitem> +<para +>Returnerar de sista n tecknen i strängen.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.mid(<parameter +>sträng</parameter +>, <parameter +>heltal start</parameter +>, <parameter +>heltal slut</parameter +>)</function +></term> +<listitem> +<para +>Returnerar en delsträng av strängen, med början på angiven position.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.remove(<parameter +>sträng</parameter +>, <parameter +>delsträng</parameter +>)</function +></term> +<listitem> +<para +>Ta bort alla förekomster av en given delsträng.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.replace(<parameter +>sträng</parameter +>, <parameter +>delsträng sök</parameter +>, <parameter +>delsträng ersätt</parameter +>)</function +></term> +<listitem> +<para +>Ersätt alla förekomster av en given delsträng med en given ersättning.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.upper(<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Konvertera strängen till stora bokstäver.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.lower(<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Konvertera strängen till små bokstäver.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.compare(<parameter +>sträng</parameter +>, <parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Jämför två strängar. Returnera 0 om de är lika, -1 om den första är tidigare, 1 om den första är senare.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.isEmpty(<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Kontrollera om strängen är tom.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><function +>@String.isNumber(<parameter +>sträng</parameter +>)</function +></term> +<listitem> +<para +>Kontrollera om strängen är ett giltigt tal.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2 id="builtins"> +<title +>Inbyggda globala variabler</title> +<para +>Inbyggda globala variabler kan kommas åt precis som vanliga globala variabler med <function +>@global</function +>.</para> +<variablelist> +<varlistentry> +<term +><function +>@global(_KDDIR)</function +></term> +<listitem> +<para +>Katalogen den nuvarande dialogrutan är i.</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><function +>@global(_NAME)</function +></term> +<listitem +><para +>Dialogrutans namn</para +></listitem> +</varlistentry> +</variablelist> +</sect2> + +</sect1> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/translating.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/translating.docbook new file mode 100644 index 00000000000..381c105aa3d --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/translating.docbook @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="translating"> +<chapterinfo> +<authorgroup> +<author +><firstname +>András</firstname +> <surname +>Mantia</surname +> <affiliation +><address +><email +>amantia@kde.org</email +></address +></affiliation> +</author> +<author +><firstname +>Michal</firstname +> <surname +>Rudolf</surname +> <affiliation +><address +><email +>mrudolf@tdewebdev.org</email +></address +></affiliation> +</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 +>Översätta &kommander;-dialogrutor</title> + +<sect1 id="translation-howto"> +<title +>Översätta &kommander;-dialogrutor</title> +<para +>&kommander; dialogrutor kan översättas till olika språk. Mekanismen liknar översättningen av andra &kde;-program. Dialogrutan skrivs på engelska, och texterna som behöver översättas markeras särskilt. Ett verktyg extraherar dessa strängar, och ett annat verktyg kan användas för att översätta dem. Översättningen kan därefter kompileras och installeras, så känner dialogrutan automatiskt igen den och använder den. </para> +<para +>Här är en kort beskrivning av stegen som behövs för att göra en dialogruta översättningsbar och för att översätta den: <orderedlist> +<listitem +><para +>Hur förbereder man dialogrutan för att bli översatt?</para> +<para +>Använd alltid <emphasis +>@i18n("This is my text")</emphasis +> när du skriver text på engelska. Det markerar "This is my text" som text att översätta.</para> +</listitem> + +<listitem +><para +>Hur extraherar man meddelanden och skapar .po-filen?</para> +<para +>Använd skriptet <command +>kmdr2po</command +> för att extrahera strängarna. Skriptet finns i katalogen <emphasis +>working</emphasis +> i den utgivna källkodens komprimerade arkiv, och ska dessutom vara installerat i <command +>$KDEDIR/share/apps/kommander/translating</command +>. </para> +<para +>Kör bara: <screen> +kmdr2po <din-kommander-dialog.kmdr> +</screen +> En lämplig fil kallad <din-kommander-dialog.po +> kommer att skapas. </para> +</listitem> + +<listitem> +<para +>Hur översätter man den?</para> +<para +>Använd <command +>Kbabel</command +> för att översätta den. Använd <command +>msgfmt</command +> för att kompilera översättningen. Se <ulink url="http://i18n.kde.org" +>http://i18n.kde.org</ulink +> för hjälp om detta område.</para> +</listitem> + +<listitem +><para +>Hur installerar man översättningen?</para> +<para +>Placera antingen den kompilerade *.mo-filen i</para> +<para +><command +>$KDEDIR/share/locale/<ditt språk +>/LC_MESSAGES/</command +> (allmänt tillgängligt för alla användare)</para> +<para +>eller i katalogen </para> +<para +><command +>$HOME/.kde/share/locale/<ditt språk +>/LC_MESSAGES/</command +> (bara tillgängligt för aktuell användare)</para +> +<para +>.</para> +</listitem> +</orderedlist> +</para> + +<para +>För att öppna en annan katalog (översatt *.mo-fil) för en dialogruta, använd väljaren -c i kmdr-executor. Exemplet nedan tar översättningen från Quantas översättningsfil: <screen +>kmdr-executor min_dialog.kmdr -c quanta +</screen> + +</para> +</sect1> + +</chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/tutorials.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/tutorials.docbook new file mode 100644 index 00000000000..d6ba3340b67 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/tutorials.docbook @@ -0,0 +1,451 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="tutorials"> +<chapterinfo> +<title +>Tips och handledningar</title> +<authorgroup> +<author +><firstname +>Eric</firstname +> <surname +>Laffoon</surname +> <affiliation +><address +> <email +>eric@tdewebdev.org</email> +</address +></affiliation> +</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 +>Tips om användning av &kommander;</title> +<para +>I det här avsnittet går vi vidare från att bara lista grafiska komponenter till att verkligen använda &kommander;. Om du vill skaffa dig god erfarenhet kommer det här avsnittet att vara till stor hjälp.</para> + +<sect1 id="tutorial-editor"> +<title +>Använda editorn</title> +<para +>Vid en första titt ser editorn ganska självklar ut, och på många sätt är den det. Klicka på ikonen för att skapa ett nytt formulär, klicka därefter på en grafisk komponent och klicka, eller klicka och dra, på formuläret. Komponentgreppen finns där, som är bekanta för alla som någonsin lagt till en bild i ett dokument i en ordbehandlare. Vad som inte är lika uppenbart är småsaker. En sak som bör nämnas från början är namngivning av komponenter. Namn måste vara unika, och &kommander; använder en namngivningsmetod med det formella komponentnamnet och ett nummer unikt för komponenttypen. Du kan ändra namn på en komponent, och &kommander; tillåter inte ett duplicerat namn. Om du dock skapar en komplex dialogruta och bestämmer dig för att börja ändra namn, kommer du att få problem. Signaler och slots hanterar namngivning åt dig, och alla komponenter du ändrar kommer att speglas i anslutningarna av signaler och slots. Tyvärr har den funktionen aldrig lagts till i komponentfunktionerna. Alltså blir alla anrop till komponenten fel. Du skulle kunna stänga dialogrutan och öppna den i en texteditor som Kwrite och använda sök och ersätt. En bättre lösning är att börja med en viss idé om vilka beskrivande namn du vill ge till nyckelkomponenter. Det kan vara slöseri med tid att namnge etiketter, men det visar sig snabbt vara ett misstag att inte namnge skript och omgivande komponeter. Du kan också ange ikoner för skript, vilket gör det ännu snabbare att identifera dem visuellt. </para> + + +<sect2 id="tutorial-editor-tools"> +<title +>Editorverktyg</title> +<para +>Det första du märker är ett egenskapsfönster, i allmänhet placerat till vänster. Utforska det! Här hittar du många användbara inställningar av formulär och grafiska komponenter. Vissa av dem är layoutinställningar, ikoner, om någonting är aktivt, text med mera. Om du till exempel lägger till en trädkomponent i ett formulär kan du ändra förvald sökvägsavskiljare, vilket är användbart om den innehåller data. Det är lätt hänt att ett snedstreck skapar ett delobjekt av misstag. Här hittar du också väljarlägen, om hela raden i komponenter med flera kolumner ska markeras, med mera. </para> +<para +>Om du leker med en layout och förlorar en grafisk komponent bakom en annan, eller utanför formuläret, är objektutforskaren praktisk. Den är också bra för att se strukturen. Nästa mycket användbara vy är loggvyn, som visar standardutmatning och standardfelutmatning. Felvyn är ovärderlig. Det är här dina debug()-kommandon skrivs ut, och stället där du får detaljerad information. Exempelvis, när du använder databasinsticksprogrammet ger det ytterligare information vid datafel. Det visar också alla skalanrop med mera. Standardutmatningsvyn låter dig se vad som skulle visas av skalet eller ett program som använder detta, som Quanta. Dialogvyn är inte särskilt användbar, om du inte har många dialogrutor öppna. Åtgärdsvyn är bara aktiv vid användning med ett huvudfönster, och är i detta fall det enda sättet att lägga till åtgärder, menyer och objekt i verktygsrader. </para> +</sect2> + +<sect2 id="tututorial-add-tools"> +<title +>Lägga till egna verktyg</title> +<para +>&kommander; gör det enkelt att lägga till egna verktyg i editorn, som du kan utveckla med &kommander;. Vi kommer att leverera några med &kommander;, samt göra några tillgängliga för nerladdning. Du kan enkelt lägga till egna. Ta först en titt och se var de finns. Om de är installerade, finns de i verktygsmenyn under avdelaren. Menyn i &kommander; ger tillgång till grafiska komponenter. Menyn Egna ger tillgång till installerade insticksprogram. Menyn Editor är stället där dina egna verktyg hamnar. För att lägga till ett verktyg för hand, bestäm dig först för om det ska vara tillgängligt för hela systemet eller bara ditt skrivbord. För hela systemet används katalogen som KDE är installerad i. För skrivbordet används den dolda KDE-katalogen i din hemkatalog, oftast ~/.kde. Därifrån är sökvägen /share/apps/kmdr-editor/editor/ i båda fallen. Om dialogrutan du lägger till behöver komma åt verktyg eller filer, kan du lägga dem i en underkatalog. Vilka &kommander;-dialogrutor du än lägger till där, kommer att kännas igen och läggas till i menyn vid start. Genom att klicka på menyalternativet laddas dialogrutan. Du bör också notera att det finns en mallkatalog där, och du kan lägga till nya mallar för nya dialogrutor. </para> +</sect2> + +<sect2 id="included-tools"> +<title +>Egna verktyg som ingår</title> +<para +>Flera verktyg ingår i den här utgåvan, och är redan installerade i editorns verktygsmeny. Fler verktyg för projekthantering, gränssnitt för databasutveckling, kodsnuttar, med mera, håller på att utvecklas. Det viktigaste och mest användbara verktyget att titta på är dialogrutan med exempel. Eftersom editorn inte längre utvecklas för KDE3, kan den inte infoga en dialogruta i den aktuella editorn, utan dialogruta som väljes öppnas i en ny instans av editorn. Det finns gamla dialogrutor från &kommander;s barndom, handledningar från senare utveckling och det aktuella avsnittet, som visar nya funktioner i den här utgåvan. Att titta på dessa bör vara till hjälp. Håll ett öga på vår webbsida för mer. </para> +</sect2> + +<sect2 id="tutorial-layout"> +<title +>Använda en layout</title> +<para +>Många tycker om att dela med sig av sina &kommander;-dialogrutor. Nästan utan undantag, känner de inte till hur man hanterar layouter. Skapa en dialogruta och försök därefter ändra storleken, så ser du vad som händer. Vore det inte trevligare om den skulle bete sig som den borde istället för att lämna de grafiska komponenterna oförändrade? Det blir värre när du delar med dig av den, och skillnader i teckensnitt, bildskärm och upplösning i bildpunkter samverkar för att få ditt mästerverk att se ut som om det var ihopsatt av en treåring med tuggummi och häftstift. Använd alltid, alltid, alltid en layout i dina dialogrutor! </para> +<para +>Ok, du är övertygad, och vill inte få besviken e-post från mig som ber dig att använda en layout i din dialogruta. Hur gör man det då? Det finns layoutknappar i verktygsraden och alternativ i den sammanhangsberoende menyn. Eftersom &kommander; är baserad på en äldre version av Qt Designer, kan du titta på Qt Designers dokumentation och handledningar. Några grunder och ett antal tips är allt som nämns här. </para> +<itemizedlist> +<listitem +><para +>Använd rutnätet. Det placerar allting på platser som är <quote +>goda gissningar</quote +>.</para +></listitem> +<listitem +><para +>Kom ihåg att omgivande komponenter är separata. En flikkomponent, gruppruta eller layoutgrupp har sin egen layout. Glöm alltså inte bort fönstret.</para +></listitem> +<listitem +><para +>Komponenter som inte är synliga under körning kan orsaka att en layout verkar mer utmanande. Vad ska man göra med dem? Jag rekommenderar att de grupperas i en egen layout intill eller under huvudlayouten. De synliga komponenterna knuffar helt enkelt undan dem, och ger dig ett förutsägbart resultat.</para +></listitem> +<listitem +><para +>Titta på egenskaperna, där du kan ställa in en komponent att expanderas eller andra saker, samt minimal och maximal storlek. Några experiment lär dig en hel del. Du kan också ställa in mindre mellanrum här.</para +></listitem> +</itemizedlist> +<para +>Nu följer ett antal trick och tips.</para> +<itemizedlist> +<listitem +><para +>Tillsammans med grundläggande layouter kan du använda avdelare. När dialogrutan kör kan du dra avdelaren uppåt och neråt, eller åt höger och åt vänster för att se saker bättre. Det kan verka som om det finns en begränsning här eller att det inte fungerar, men det fungerar och har inga begränsningar. Försäkra dig bara om att placera olika komponenter i två layouter, och högerklicka för att få layouten och inte bara en underliggande komponent. Du har full frihet att skapa en labyrint med avdelare, under förutsättning att du följer reglerna.</para +></listitem> +<listitem +><para +>Dolda rutor kan användas. Skapa en gruppruta och släpp komponenter på den. Placera den i layouten så att andra komponenter eller layouter expanderas för att uppta dess plats när den är dold. Ändra nu synligheten med en knapp eller en meny. </para +></listitem> +<listitem +><para +>Trick med verktygslådan: Verktygslådan har ett fel i editorn som gör att man inte kan lägga till komponentrutor i editorn utan att bli tokig. Resultatet är att man måste lägga till dem vid körning. Dock letar den efter en komponent, och om du vill ha någonting komplicerat bör du använda en gruppruta med en layout, och skapa en layout i dialogrutan med grupprutan längst ut, även om den hamnar utanför fönstrets kanter. Ladda den nu vid initiering i verktygslådan. Fönsterlayouten hoppar då på plats.</para +></listitem> +<listitem +><para +>Layoutproblem kan uppstå där komponenter som är inställda till något som liknar minimalt/expanderande kan råka bli dolda innan fönstrets layout är klar. Layoutsystemet lyder dina konstigheter, och kan krympas så att rullningslister och annat döljs. Försäkra dig om att allt är synligt innan du gör färdigt layouten, och fundera på att inte använda minimalt i detta fall.</para +></listitem> +</itemizedlist> +<para +>För mer om detta slå upp Qt Designer dokumentation för Qt 3.x.</para> +</sect2> + +<sect2 id="signals-slots"> +<title +>Signaler och slots</title> +<para +>En av de många användbara funktionerna som ärvdes av Qt Designer är signaler och slots. Naturligtvis har gränssnittet konstruerats om i ett försök att göra det lämpligt för &kommander;. Signaler och slots hanterar styrning av interna händelser i Qt- och KDE-program. Vi försöker anpassa det så att du inte behöver kunna skillnaden mellan datatyper i C++, men om du använder de nya funktionerna för att skapa anslutningar i farten är det praktiskt att kunna kopiera informationen från anslutningsverktyget. Låt oss ta en titt på vad det betyder. Någonting inträffar i en av dina komponenter. Den kanske tar emot ett klick, ett dubbelklick, får sitt värde ändrat, något markeras, eller en meny begärs. Det är bara några av de möjliga händelser som skulle göra att en signal skickas. Du kanske vill ändra listan i en listruta om en ny markering görs i en kombinationsruta. Det är en användbar funktion i ett avancerat program, och det enda sättet att göra det utan att därefter behöva klicka på en knapp, är att ha en signal ansluten till en slot. En sådan slot kan vara i ett skript eller en knapp. När en signal tas emot ser denna slot till att göra vad den blev ombedd. Det finns ett verktyg för att redigera anslutningarna. Var uppmärksam när du gör detta, eftersom det finns ett stort antal ärvda signaler och slots. Att tala om för ett skript, som är osynligt när dialorgutan körs, att justera sin storlek när du istället ville köra det, får dig säkert att undra vad som hände. </para> +<para +>Du kan öppna anslutningsverktyget genom att högerklicka var som helst i dialogrutan och välja det i menyn. Klicka på menyn så ser du en lista med gjorda anslutningar längst ner. Ovanför visas två listor med signaler och slots, och ovanför dem respektive sändare och mottagare som är vald. Ett enkelt sätt att skapa anslutningar är visuellt. Titta i verktygsraden eller i verktygsmenyn. Där finns tre objekt i en grupp. En pekare, anslutningar av signaler och slots, och flikordningen eller komponenterna. För de nyfikna: att välja den ställer in anslutningsläget. Klicka på komponenten för att skicka signalen och dra den till komponenten som ska ta emot den i en slot. När du gör det ser du en linje och en indikering om var du släpper på komponenten under musen. Editorns statusrad talar om för dig vad som kommer att anslutas. </para> +<note +><para +>I &kommander; version 1.3 finns funktionen connect() som låter dig ansluta signaler och slots i farten. Det är användbart om du just har använt createWidget. Naturligtvis kan du inte använda dialogrutan för något som &kommander; ännu inte vet existerar. Tyvärr finns det för många kombinationer för att lista, så du måste skriva in signaler och slots. <emphasis +>De måste skrivas exakt rätt, annars fungerar de inte.</emphasis +> Här är anslutningsverktyget återigen praktiskt. Öppna det och välj två komponenter som motsvarar de du vill ansluta, och läs av anslutningsinformationen. Om den lyder <command +>execute(const QString&)</command +>, är det exakt vad du måste skriva in.</para +></note> +</sect2> + +<sect2 id="slot-functions"> +<title +>Slotfunktioner</title> +<para +>Från &kommander; version 1.3 har slot-funktioner lagts till. Det kan du se i funktionsbläddraren, som ovanligt nog inte ger så bra beskrivningar i detta fall. Vad &kommander; gör är att läsa in varje slot som är registrerad i en given komponent, och direkt göra dem tillgängliga. Det är mycket användbart. Tabellkomponenten har till exempel inte en standardmetod för att automatiskt justera kolumnbredden. Du kan tycka att det är irriterande, men titta bara under slots så hittar du den. Texteditorn saknar också inbyggda funktioner för någon verklig redigering, men titta under slots så finns allt du kan önska. Du kan behöva titta i några dokument, eller bara experimentera. Det är helt enkelt för svårt att dokumentera varje slot tillgänglig i inbyggda komponenter och insticksprogram. De flesta är dock självförklarliga. </para> +</sect2> +</sect1> + +<sect1 id="tutorial-basics"> +<title +>Grundhandledningar</title> +<para +>Det mesta av informationen i det här avsnittet är baserat på dialogrutor med exempel från länge sedan, vilka tyvärr inte var allmänt tillgängliga, eftersom de levererades med källkoden men inte installerades. Du hittar dem i verktygsmenyn under exempel i <quote +>handledningsdelen</quote +>. Kom ihåg att de flesta av dessa exempel använder den gamla tolken. Det är varken bra eller dåligt. De flesta av funktionerna i &kommander; delas mellan båda tolkarna. Nu använder &kommander; normalt den nya tolken, men du kan ställa in vilken som helst. Se <link linkend="new_parserdocs" +>dokumentationen om den nya tolken</link +> för mer information om de två tolkarna. </para> +<para +>När du betraktar exempeldialogrutorna, kom då ihåg att titta på följande ställen för att se hur saker är gjorda. </para> +<itemizedlist> +<listitem +><para +>Dialoginitiering: Klicka med mittenknappen på dialogrutans yta, eller högerklicka och välj &kommander; text. Här ser du vad som körs när dialogrutan startar.</para +></listitem> +<listitem +><para +>Knappar: Klicka med mittenknappen på knappen, eller högerklicka. Typiskt finns det skript här.</para +></listitem> +<listitem +><para +>Komponenter: Vissa komponenter som tidtagning och konsol innehåller instruktioner.</para +></listitem> +<listitem +><para +><link linkend="signals-slots" +>Signaler och slots</link +>: Det är sättet som Qt- och KDE-program kommunicerar internt. </para +></listitem> +</itemizedlist> +<para +>Följande lista med dialogrutor kan vara korta för att fokusera på var mer information krävs för att förklara mer komplexa uppgifter som är möjliga med &kommander;. De är kopierade från Michals anteckningar. </para> + +<sect2 id="tutorial-globals"> +<title +>Globals</title> +<para +>Visar hur &DCOP;-anropen global och setGlobal används för att tillhandahålla globala variabler för skript.</para> +<blockquote +><para +>Funktioner, koncept: global - setGlobal - changeWidgetText </para +></blockquote> +</sect2> + +<sect2 id="tutorial-dcop"> +<title +>&DCOP;</title> +<para +>Visar hur både lokala och externa &DCOP;-anrop används för att kommunicera med externa program (här Kmail).</para> +<blockquote +><para +>Funktioner, koncept: extern DCOP - addListItem - enableWidget - @selectedWidgetText - @widgetText </para +></blockquote> +</sect2> + +<sect2 id="tutorlal-slots"> +<title +>Slots</title> +<para +>Visar hur anslutningar och slots används för att hantera händelser. Både ifyllnads- och vanliga slots används.</para> +<note +><para +>Ifyllnadstext utvecklades ursprungligen innan DCOP, specialvärden och skript i &kommander;. Eftersom allt den gör kan göras på andra sätt, och att det är lätt att glömma bort att leta efter problem här, samt den inneboende svårigheten att introducera ett ytterligare beteende att förklara, avråds funktionen från att användas. Den finns kvar av illustrationssyfte, och även om det kommer att vara enkelt att anpassa &kommander; dialogrutor till KDE 4, garanteras inte att den här funktionen kommer att fortsätta fungera i framtiden. <emphasis +>Använd den inte!</emphasis +> </para +></note> +<blockquote +><para +>Vanliga slots används. slots och anslutningar - populate() </para +></blockquote> +</sect2> + +<sect2 id="tutorial-settings"> +<title +>Settings</title> +<para +>Visar hur funktionerna @readSetting och @writeSetting används för att skriva och återställa komponentinnehåll. Visar också hur ifyllnadslots används för att initiera komponentinnehåll.</para> +<blockquote +><para +>Funktioner, koncept: @readSetting - @writeSetting - populate() - slots och anslutningar - destroy </para +></blockquote> +</sect2> + +<sect2 id="tutorial-append"> +<title +>Append</title> +<para +>Visar hur du kan lägga till text i Texteditor och hur du kan använda den för att visa formaterad text. Se också nyare exempel på hur slots används för att editera formaterad text samt nya dialogrutor för teckensnitt och färg.</para> +<blockquote +><para +>Funktioner, koncept: changeWidetText - RichTextEdit </para +></blockquote> +</sect2> + +<sect2 id="tutorial-cmdline"> +<title +>Command Line</title> +<para +>Visar hur du kan skicka parametrar till &kommander; dialogrutor via kommandoraden. Visar också hur innehåll i listor och knapptexter kan ändras. Se avsnittet om <link linkend="passargs" +>hur man skickar argument</link +> med den nya tolken för mer om detta.</para> +<blockquote +><para +>Funktioner, koncept: kommandoradsväljare - global - changeWidgetText - addListItem - clearList </para +></blockquote> +</sect2> + +<sect2 id="tutorial-initialize"> +<title +>Initialize</title> +<para +>Visar hur du använder skripten 'initialization' och 'destroy' i huvuddialogrutan för att initiera och lagra vissa inställningar. </para> +<blockquote +><para +>Funktioner, koncept: initialization - destroy - readSetting - writeSetting </para +></blockquote> +</sect2> + +<sect2 id="tutorial-array"> +<title +>Array</title> +<para +>Visar hur associativa fält används för att lagra och återställa information som hör ihop med omgivande objekt.</para> +<blockquote +><para +>Funktioner, koncept: @Array funktioner </para +></blockquote> +</sect2> + +<sect2 id="tutorial-strings"> +<title +>Strings</title> +<para +>Visar hur funktioner för stränghantering används </para> +<blockquote +><para +>Funktioner, koncept: @String funktioner - rik texteditor </para +></blockquote> +</sect2> + +<sect2 id="tutorial-tree"> +<title +>Tree</title> +<para +>Visar hur en grafisk trädkomponent används </para> +<blockquote +><para +>trädkomponent - filväljare - initialization - env </para +></blockquote> +</sect2> + +<sect2 id="tutorial-widgets"> +<title +>Widgets</title> +<para +>Visar hur man hämtar komponentinformation </para> +<blockquote +><para +>metoden type - metoden children </para +></blockquote> +</sect2> + +<sect2 id="tutorial-statusbar"> +<title +>StatusBar</title> +<para +>Visar hur den grafiska komponenten statusrad används </para> +<blockquote +><para +>komponenten statusrad - populate </para +></blockquote> +</sect2> + +<sect2 id="tutorial-loop"> +<title +>Loop</title> +<para +>Visar hur interna snurror används </para> +<blockquote +><para +>for - forEach </para +></blockquote> +</sect2> + +<sect2 id="tutorial-calc"> +<title +>Calc</title> +<para +>Visar hur funktionen @expr används för att göra några beräkningar </para> +<blockquote +><para +>expr - String.replace </para +></blockquote> +<note +><para +>Funktionen @expr() behövs inte längre i den nya tolken eftersom uttryck direkt kan tolkas var som helst där du logiskt vill använda dem.</para +></note> +</sect2> + +<sect2 id="tutorial-picview"> +<title +>Picview</title> +<para +>Visar hur komponenten punktavbildningsetikett använder funktionen populate() </para> +<blockquote +><para +>punktavbildningsetikett - populate - filväljare - slots och anslutningar </para +></blockquote> +</sect2> + +<sect2 id="tutorial-table"> +<title +>Table</title> +<para +>Visar hur en grafisk tabellkomponent används </para> +<blockquote +><para +>insertRow - insertColumn - currentRow - currentColumn - setColumnCaption - setRowCaption - removeRow - removeColumn </para +></blockquote> +</sect2> + +</sect1> + +<sect1 id="examples"> +<title +>Aktuella exempel</title> +<para +>Följande exempel speglar de senaste utvecklingarna av &kommander;. I dess nuvarande skick har &kommander; få begränsningar vid utveckling av små till medelstora program. Det är definitivt inte lämpad att utveckla en ny version av Kword, men för en enkel editor, ett databasgränssnitt, ett grafiskt gränssnitt för ett kommandoradsprogram eller något annat program som följer andemeningen i Unix och Linux med små program, är det ett bra val. Avsikten med de exempel som presenteras här är att visa potentialen, samt hur man går runt begränsningar. Några användbara trick ingår i dem, om du vill skapa ett mer kapabelt program med &kommander;. Kom ihåg att &kommander; inte är avsett att göra allt, utan att göra det mesta. Med detta i åtanke, bör du kunna bygga något i &kommander; snabbare än med andra alternativ, och lägga till ett grafiskt gränssnitt till skriptspråk som inte stöds på annat sätt i KDE. </para> +<note +><para +>Exemplen är installerade under <command +>$KDEDIR/share/apps/kmdr-editor/editor</command +>. Ifall du inte har dem där, hämta dem på <ulink url="http://kommander.tdewebdev.org" +> vår hemsida</ulink +>, genom att ladda ner den senaste utgåvan. </para> +</note> + +<sect2 id="editor-poc"> +<title +>editor-poc.kmdr</title> +<para +>Den lilla dialogrutan som växte till ett huvudfönster. Eftersom &kommander; inte har en inbyggd grafisk komponent för huvudfönster har det antagits att bara dialogrutor kan hanteras. I själva verket stöds bara dialogrutor officiellt, men du kan köra huvudfönster i &kommander;. Det här är ett exempel på en editor. Om du vill skapa ett program med ett huvudfönster i &kommander;, starta bara Qt Designer och skapa ett. Byt därefter namn på *.ui-filen till en *.kmdr-fil. Öppna den nu i &kommander; och gör vad du skulle gjort i vanliga fall. </para> +<note +><para +>När det här skrivs är det känt att det inte fungerar att skriva eller läsa inställningar under &kommander;. Initialize och Destroy finns inte, eftersom det inte finns någon &kommander;-text, men det finns dock signaler för dem i fönstret, så funktionen är intakt. Under huvudfönstret är det inte möjligt att använda några åtgärder via DCOP, eftersom de är QActions från Designer, och KActions härleds inte från QActions i KDE 3.x. Det betyder att ett DCOP-anrop för att lista åtgärder eller ange tillstånd inte fungerar. Det är inte heller möjligt att komma åt statusraden. Inte heller undermenyer i menyraden eller kombinationsåtgärder i verktygsraden fungerar. Även om detta inte är en grafisk komponent i &kommander;, eller något som officiellt stöds, verkar det lämpligt för användning i många små program.</para +></note> +<para +>Det finns en dialogruta för snabbhjälp som editorn visar, som grundligt beskriver vad som händer inuti. </para> +</sect2> + +<sect2 id="example-key-value"> +<title +>kevaluecombo.kmdr</title> +<para +>&kommander; kan användas med databaser, och har ett valfritt <ulink url="http://kommander.tdewebdev.org/releases.php#plugins" +>databasinsticksprogram</ulink +>. En svaghet är att man inte kan lagra par av nycklar och värden i kombinationsrutan. Ett klurigt trick hanterar detta. Det kräver bara att innehållet i kombinationsrutan inte ändras utan att det görs via fälten som hör ihop med den. Eftersom detta oftast används med SQL i små datamängder, går det rätt snabbt att till och med ladda om hela kombinationsrutan. Det inneboende problemet är att &kommander; normalt inte har internt indexerade fält. Det förvärras av det faktum att för att hantera skalkommandon som returnerar rader åtskilda med nyradstecken, laddar &kommander;s fältfunktioner vad som i själva verket är ett fält av nycklar. Sådana fält kan bara kommas åt via en foreach-snurra. Det är orsaken att nya indexerade fältfunktioner har lagts till. Det är viktigt att komma ihåg att dessa fält inte hanteras av sig självt, men deras funktioner för att infoga och ta bort värden hjälper dig med det. </para> +<para +>För att återgå till kombinationsrutan, så returnerar den markerad text, men den returnerar också aktuellt index. Den hanterar strikt ett nollbaserat fält i en följd. Det är nyckeln. Vi går igenom en datamängd med en nollbaserad indexräknare och skapar två fält, eftersom &kommander; inte heller kan skapa fält bestående av fält. Den kan dock använda ett fältvärde för att representera en nyckel, precis som vilket värde som helst skulle kunna göra. Om du tar en titt på dialogrutan som ingår, finns koden som faktiskt hanterar detta i <quote +>ScriptObject36</quote +>. Vi visar ett utdrag av koden här. </para> +<screen +>c = ListBox1.count-1 +for i = 0 to c do + array_indexedFromString("x", ListBox1.item(i)) + _a[x[0]] = x[1] + _b[i] = x[0] + ComboBox10.insertItem(_a[_b[i]], i) +end +</screen> +<para +>Det är mer som sker, som kontroll av duplicerade nycklar, men detta är kärnan. Du kan högerklicka på listrutan och prova menyalternativen. Slutresultatet är att den använder nyckelindex via en proxy, och returnerar både nyckel och värde. Använd koden om du vill vara 100 % säker på att förhållandet mellan nyckel och värde är exakt. </para> +</sect2> + +<sect2 id="kpart-demo"> +<title +>Demonstration av KPart</title> +<para +>Från Kommander 1.3, skapar Kommander automatiskt KPart-delprogram med libkommander_part.la. Förutom det finns ett KPart-insticksprogram som låter Kommander ladda insticksprogram. Eftersom vi är nyfikna utvecklare, försökte vi ladda ett Kommander-delprogram i Kommander. Varför ska man göra det? Ja, varför inte? Resultatet var intressant, och demonstreras här. En intressant sak är att det omgivande delprogrammet direkt kan komma åt allt i det inladdade delprogrammet. Även om det är praktiskt, har det en nackdel. Alla underliggande komponenter med samma namn som i det omgivande delprogrammet orsakar en låsning. Dessutom skapas DCOP-gränssnittet om igen för delprogrammet, vilket suddar ut gränssnittet i det omgivande delprogrammet, och inaktiverar stora delar av den gamla tolkens funktion, samt Kommander-specifik DCOP för det omgivande delprogrammet. Det är för svårt att rätta under KDE 3-versionens återstående livstid. Även med dessa begränsningar och varningar, kan det vara användbart, om det används med försiktighet. Exempelfilerna som använder sig av det finns bland de aktuella exemplen i kpartmwframe.kmdr och kpartpart.kmdr. Kom ihåg att du behöver KPart-insticksprogrammet för att kunna köra exemplet fullständigt. </para> +<para +>Du kan också ladda Kmail, Korganizer och många andra KDE-program direkt i Kommander, naturligtvis utan problem. KHTML och KDE:s filhanteringskomponenter verkar inte ha vissa funktioner, men det finns ett särskilt KHTML-insticksprogram om du verkligen vill inkludera en webbläsare. </para> +</sect2> +<sect2 id="example-passed-params"> +<title +>passvariables.kmdr</title> +<para +>Från &kommander; 1.3 kan du skicka och returnera variabler med skript. Den här dialogrutan demonstrerar det. Titta noga på knapparnas innehåll. Du märker att ingen av knapparna skriver direkt i någon av radeditorrutorna som tar emot text från skriptet. Medan en skrivs direkt från skriptet, skrivs en annan med innehållet som skickas från knappen. Den tredje skrivs inte alls, men skickas tillbaka med funktionen return(), där den tas emot av knappen och skrivs. Det visas också på höger sida med PHP, så du ser hur det skulle kunna fungera med Python, Ruby, Perl eller till och med ett mindre vanligt språk som Rexx. Språk som hanterar DCOP kan också göra mycket mer i &kommander;. Demonstrationens syfte är att visa friheten som erbjuds. &kommander; har inte funktioner, men ändå finns de. Skapa ett skript, deklarera några globala variabler om du vill, skicka några parametrar till ett annat skript och returnera ett värde. För ett med avsikt förenklat skriptverktyg för grafiska användargränssnitt är det ett kapabelt beteende. Beteendet finns bara i den nya tolken, och dokumenteras <link linkend="passargs" +>här</link +>. </para> +</sect2> + +<sect2 id="tableselect"> +<title +>tableselect.kmdr</title> +<para +>Exemplet demonstrerar hur den nya markeringsfunktionen används i tabellkomponenten. Det är nu möjligt att få fyra koordinater för att göra det möjligt att markera ett block. Det visar också hur man hade varit tvungen att göra innan den nya funktionen, och hur parametrarna som skickas till ett skript används. Dessutom demonstrerar det en enkel blockkopierings- och inklistringsfunktion för en tabell, samt en sammanfattning av ett block. </para> +</sect2> + +</sect1> +</chapter> diff --git a/tde-i18n-sv/docs/tdewebdev/kommander/widgets.docbook b/tde-i18n-sv/docs/tdewebdev/kommander/widgets.docbook new file mode 100644 index 00000000000..bfeb988d1d3 --- /dev/null +++ b/tde-i18n-sv/docs/tdewebdev/kommander/widgets.docbook @@ -0,0 +1,645 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<sect1 id="widgets"> +<sect1info> +<title +>Grafiska komponenter</title> +</sect1info> + +<title +>Grafiska komponenter</title> + +<para +>Byggblocken i en &kommander; dialogruta är de grafiska komponenterna. De är som alla andra grafiska komponenter i &Qt;- och &kde;-biblioteken, utom att de har en del extra funktioner som möjliggör att de har en <quote +>textassociation</quote +>. Text associeras med ett tillstånd hos den grafiska komponenten eller dess ifyllnadslot. Antal tillstånd beror på den grafiska komponenten. Om en komponent bara har ett tillstånd, kallas det förvalt. </para> + +<note> +<para +>Huvuddialogrutan har två specialtillstånd för &kommander; text. De är Initialization och Destroy. De körs när dialogrutan initieras och när den förstörs. Dessa skyddar mot vad som är känt som <quote +>kapplöppningsproblem</quote +> vid öppning, och betyder att du inte behöver några speciella procedurer vid stängning för att hantera underhåll.</para> +<para +>I fallet när ett program baserat på ett huvudfönster (skapat med &Qt; Designer) används, finns det inte tillstånden Initialization och Destroy, instället kan signalerna <emphasis +>initialize</emphasis +> och <emphasis +>destroy</emphasis +> användas för att få information om när programmet skapas eller stängs.</para> +</note> + +<para +>Nedan är &kommander;s grafiska standardkomponenter. Var och en av dem har ett stort antal funktioner. Du kan ta reda på dem genom att titta på komponentfunktionerna i <guilabel +>funktionsbläddraren</guilabel +>. Många har dessutom signaler och slots. Dokumentation om dessa metoder finns i dokumentationen av programmeringsgränssnittet för &Qt; och &kde;. Varje &kommander;-komponent har en anmärkning om dess baskomponent. </para> + +<variablelist> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="label.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Etikett </term> +<listitem> +<para +>En enkel grafisk komponent som innehåller en text. Komponenten låter dig också använda en punktavbildning. </para> +<para +>Se dokumentationen av QLabel för att ta reda på mer om textetiketter i &Qt;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="pixlabel.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Punktavbildningsetikett </term> +<listitem> +<para +>En enkel grafisk komponent som innehåller en bild eller text. Punktavbildningen som ska visas anges i egenskapen pixmap. Texten anges i textegenskapen. Bara en av dessa egenskaper kan anges samtidigt (Tror jag. Jag kan inte få editorn att ange båda samtidigt). Om scaledContents sätts till true, skalas bilden så att den motsvarar den grafiska komponentens storlek. Textformatet kan anges med egenskapen textFormat. </para> +<para +>Se dokumentationen av QLabel för att ta reda på mer om textetiketter i &Qt;. </para> +</listitem> +</varlistentry> + + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="lineedit.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Radeditor </term> +<listitem> +<para +>En radeditorkomponent är enraders texteditor. Den låter användaren skriva in och ändra en enda textrad. Ursprunglig text för editorn kan anges med textegenskapen. Komponenten kan ställas in till enbart läsbar med egenskapen readOnly. Det finns tre lägen för komponenten, Normal, NoEcho och Password. Läget anges med egenskapen echoMode. </para> +<para +>Radeditorn har ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för radeditorn är texten som finns i editorn. </para> +<para +>Se dokumentationen av KLineEdit för att ta reda på mer om textetiketter i &kde;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="multilineedit.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Texteditor </term> +<listitem> +<para +>En enkel flerraders texteditor. </para> +<para +>Se dokumentationen av KTextEdit för att ta reda på mer om flerraders texteditorer i &kde;. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="textbrowser.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Textbläddrare </term> +<listitem> +<para +>En enkel bläddrare för rik text med hyperlänknavigering. </para> +<para +>Se dokumentationen av KTextBrowser för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="listbox.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Listruta </term> +<listitem> +<para +>En listruta tillhandahåller en lista med objekt som kan markeras. Normalt är ett eller inget element markerade. Beteendet kan ändras med egenskapen selectionMode. Objekt läggs till i listrutan genom att använda redigeringsfönstret. </para> +<para +>En listruta har bara ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för en listruta är objekten som finns i listrutan. @selectedWidgetText returnerar bara de objekt som för närvarande är markerade. </para> +<para +>Se dokumentationen av KListBox för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="combobox.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Kombinationsruta </term> +<listitem> +<para +>Kombinationsruta är urvalskomponent som kombinerar en knapp och en meny. Den visar användarens nuvarande val i en lista med alternativ på minsta möjliga utrymme. Objekt läggs till i listan genom att använda redigeringsfönstret. Om egenskapen editable sätts till true, kan användaren skriva in godtyckliga strängar. </para> +<para +>En kombinationsruta har ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för en kombinationsruta är texten i det valda objektet. </para> +<para +>Se dokumentationen av KComboBox för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="listview.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Trädkomponent </term> +<listitem> +<para +>En komponent som tillhandahåller en lista i form av en trädstruktur. Man kan lägga till underobjekt och flerkolumnsdata. Nuvarande begränsning är att man inte kan ändra kolumner. För att lägga till ett underobjekt använd <quote +>/</quote +> som avskiljare. För att lägga till kolumndata använd tabulatortecknet <quote +>\t</quote +> mellan kolumner. </para> +<para +>Se dokumentationen av KListView för att ta reda på mer om den. </para> + +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="table.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Tabell </term> +<listitem> +<para +>En tabellkomponent som stöder olika grafiska komponenter i sina celler. </para> +<para +>Se dokumentationen av QTable för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="pushbutton.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Körknapp </term> +<listitem> +<para +>En knapp som kör sin associerade text när den klickas. Knappens rubrik ställs in med textegenskapen. Utmatning från textassociationen (hur säger man) ekas till standardutmatningen om egenskapen writeStdout sätts till true. Knappen kan vara dialogrutans standardåtgärd om egenskapen default sätts till true. </para> +<para +>Körknapp har ett tillstånd, det förvalda. </para> +<para +>Det finns inte någon komponenttext som hör till en körknapp. </para> +<para +>Se dokumentationen av KPushButton för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="closebutton.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Stängknapp </term> +<listitem> +<para +>En knapp som kör sin associerade text när den klickas och därefter stänger dialogrutan. Knappens rubrik ställs in med textegenskapen. Utmatning från textassociationen (hur säger man) ekas till standardutmatningen om egenskapen writeStdout sätts till true. Knappen kan vara dialogrutans standardåtgärd om egenskapen default sätts till true. </para> +<para +>En stängknapp har ett tillstånd, det förvalda. </para> +<para +>Det finns inte någon komponenttext som hör till en stängknapp. </para> +<para +>Se dokumentationen av KPushButton för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="konsole.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Konsol </term> +<listitem> +<para +>En grafisk komponent som visar utmatningen från skript i en textbläddrare. Förvalt tillstånd körs, och utmatningen från dessa kommandon (interna och externa) visas i komponenten. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="lineedit.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Filväljare </term> +<listitem> +<para +>Den grafiska komponenten filväljare kombinerar en radeditor med en knapp, som när den klickas visar användaren en dialogruta för att välja filer eller kataloger. Filen eller katalogen som väljes lagras i radeditorn. Filväljarens typ anges med egenskapen selectionType. Tillgängliga typer är Open, Save och Directory. Flera filer eller kataloger kan väljas om egenskapen selectionOpenMutliple sätts till true. En rubrik för filväljaren kan anges med egenskapen selectionCaption. Den visas i dialogrutans namnlist. Om en rubrik inte anges, visas väljarens typ i rubriken. Filerna som visas i dialogrutan kan begränsas med egenskapen selectionFilter. </para> +<para +>Filväljaren har ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för en filväljare är texten som finns i radeditorn (filen som valts av användaren). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="checkbox.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Kryssruta </term> +<listitem> +<para +>En knapp som kan markeras eller avmarkeras. Den kan också vara halvmarkerad om egenskapen tristate sätts till true. Rubriken som hör ihop med kryssrutan ställs in med textegenskapen. Sätts egenskapen checked, är kryssrutan markerad från början. </para> +<para +>En kryssruta har tre tillstånd, markerad, halvmarkerad och omarkerad. </para> +<para +>Komponenttexten för en kryssruta är värdet på egenskapen text. </para> +<para +>Se dokumentationen av KCheckBox för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="radiobutton.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Tryckknapp </term> +<listitem> +<para +>En knapp som kan markeras eller avmarkeras, som oftast används i en knappgrupp för att göra ett alternativval. En rubrik som hör ihop med knappen kan anges i textegenskapen. En knapp kan initieras som markerad genom att sätta egenskapen checked till true. Om alla alternativknappar i en knappgrupp har egenskapen checked satt till true, är det den sista knappen som blir markerad. </para> +<para +>Alternativknappen har två tillstånd, markerad och omarkerad. </para> +<para +>Det finns inte någon komponenttext som hör till en alternativknapp. </para> +<para +>Se dokumentationen av KRadioButton för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="buttongroup.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Knappgrupp </term> +<listitem> +<para +>En omslutande komponent för att organisera knappar i grupper. En valfri rubrik kan anges med egenskapen title. Ramen kan justeras med egenskapen lineWidth. Knappgruppen kan ställa in för alternativval genom att sätta egenskapen exclusive till true. Det betyder att om en växlande knapp klickas, avmarkeras alla andra växlande knappar med undantag för alternativknappar som alltid är ömsesidigt uteslutande även om gruppen inte är inställd för alternativval. Alternativknappar kan ställas in att inte använda alternativval med egenskapen radioButtonExclusive (Jag är inte helt säker på att egenskapen verkligen fungerar). </para> +<para +>Knappgrupp har ett tillstånd, det förvalda.</para> +<para +>Komponenttexten för en knappgrupp är texten som hör ihop med var och en av knapparna i den ordning de syns i knappgruppen. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="groupbox.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Gruppruta </term> +<listitem> +<para +>En omslutande grafisk komponent som innehåller andra komponenter. Ramen kan justeras med egenskapen lineWidth. En rubrik kan läggas till genom att ange rubrikegenskapen. </para> +<para +>Grupprutan har ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för grupprutan är de kombinerade textassociationerna för var och en av komponenterna som den innehåller. De är i den ordningen de syns i grupprutan. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="tabwidget.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Flikkomponent </term> +<listitem> +<para +>En grafisk komponent som tillhandahåller flera flikar, där var och en kan innehålla andra grafiska komponenter. </para> +<para +>Se dokumentationen av KTabWidget för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="spinbox.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Nummerinmatningsruta </term> +<listitem> +<para +>En komponent som låter användaren ändra ett heltalsvärde genom att antingen trycka på uppåt- och neråtpilar eller skriva in ett värde i rutan. Minimum- och maximumvärden kan ställas in med egenskaperna minValue och maxValue. Egenskapen specialValueText används för att ange ett textvärde som visas istället för minimumvärdet. </para> +<para +>Den här grafiska komponenten har bara ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för nummerinmatningsrutan är heltalet som för närvarande visas. </para> +<para +>Se dokumentationen av QSpinBox för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="slider.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Skjutreglage </term> +<listitem> +<para +>En grafisk komponent som tillhandahåller ett horisontellt eller vertikalt skjutreglage. </para> +<para +>Se dokumentationen av QSlider för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="richtextedit.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Rik texteditor </term> +<listitem> +<para +>Den här grafiska komponenten tillhandahåller en texteditor som tillåter enkel textformatering. </para> +<para +>Rik texteditor har ett tillstånd, det förvalda. </para> +<para +>Komponenttexten för Rik texteditor är texten som finns i editorn med rik-textformat. Markerad text kan returneras med @selectedWidgetText. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="statusbar.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Statusrad </term> +<listitem> +<para +>En grafisk komponent för att visa statusinformation, oftast använd längst ner i dialogrutor. </para> +<para +>Se dokumentationen av KStatusBar för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="progress.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Förloppsrad </term> +<listitem> +<para +>En grafisk komponent för att visa förloppsinformation. </para> +<para +>Se dokumentationen av KProgress för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="shellscript.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Skriptobjekt </term> +<listitem> +<para +>Detta är en pseudokomponent. Den visas inte när dialogrutan körs. Den kan betraktas som en funktion. Ett skriptobjekt innehåller kod som kan köras när som helst från dialogrutan genom att anropa funktionen <emphasis +>execute</emphasis +>. Argument kan skickas till skriptobjektet med metoden ovan och kommas åt inne i skriptobjektet som <emphasis +>@Self.item(0), @Self.item(1), etc.</emphasis +> med den gamla stilens tolk, eller <emphasis +>Self.item(0, Self.item(1), etc.</emphasis +> med den nya tolken. </para> +<para +>Signaler kan dessutom anslutas till funktionen <emphasis +>execute</emphasis +>, eftersom den också fungerar som en slot. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="timer.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Tidtagare </term> +<listitem> +<para +>Detta är en pseudokomponent. Den visas inte när dialogrutan körs. Den kan användas för att utföra en åtgärd en gång efter en angiven tid, eller regelbundet. Ställ in tidsgränsen <guilabel +>interval</guilabel +> i millisekunder, välj om den ska köras en gång (<guilabel +>singleShot</guilabel +>) eller inte. Anslut signalen <emphasis +>timeout</emphasis +> till en slot, som kommer att köras när den angivna tiden har gått ut. </para> +<para +>Tidtagningen startas inte av sig själv. Kör funktionen <emphasis +>execute</emphasis +> för att starta den. </para> +<para +>Se dokumentationen av QTimer för att ta reda på mer om den. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="datepicker.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Datumväljare </term> +<listitem> +<para +>En grafisk komponent använd för att välja ett datum. Förvalt datum kan ställas in med egenskapen <guilabel +>date</guilabel +> eller med funktionen <emphasis +>setText</emphasis +> med ISO-format: <emphasis +>ÅÅÅÅ-MM-DD</emphasis +>. </para> +<para +>Komponenttexten för är datumet som för närvarande visas. </para> +<para +>Se dokumentationen av KDatePicker för att ta reda på mer om den. </para> +<note +><para +>Nytt i Kommander 1.3.</para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="kommander.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Om-dialogruta </term> +<listitem> +<para +>Detta är en pseudokomponent. Den visas inte när dialogrutan körs. Den lagrar information om programmet, upphovsmannen och licensen. Den visar om-dialogrutan när funktionen <emphasis +>execute</emphasis +> anropas. <warning +><para +>Funktionen <emphasis +>initialize</emphasis +> måste anropas innan någonting annat, inklusive funktionen <emphasis +>execute</emphasis +>.</para +></warning> +</para> +<note +><para +>Nytt i Kommander 1.3.</para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="kfontcombo.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Teckensnittsdialogruta </term> +<listitem> +<para +>En pseudokomponent som kan användas för att visa en dialogruta för att välja teckensnitt. Förvalt teckensnitt kan ställas in med funktionen <emphasis +>setFont</emphasis +>, och det valda teckensnittets egenskaper hämtas med funktionerna <emphasis +>family, pointSize, bold, italic</emphasis +>. Dialogrutan visas när funktionen <emphasis +>execute</emphasis +> anropas. </para> +<note +><para +>Nytt i Kommander 1.3.</para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="contents.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Sammanhangsberoende meny </term> +<listitem> +<para +>En pseudokomponent som kan användas för att visa en meny. Använd funktionerna <emphasis +>insert...</emphasis +> för att lägga till menyalternativ. Så fort användaren klickar på ett menyalternativ, körs funktionen <emphasis +>execute</emphasis +> i den angivna <emphasis +>executeWidget</emphasis +>. Det är möjligt att ansluta menyalternativ till den sammanhangsberoende menyns egen <emphasis +>execute</emphasis +>-funktion, vilket leder till att texten som är tilldelad tillståndet <emphasis +>default</emphasis +> körs. När menyalternativ läggs till kan du tilldela dem ett index, och hantera alla objekt i en meny i menykomponenten, eftersom en begäran skickar tillbaka detta index. För att se hur det fungerar, titta på det aktuella exemplet <link linkend="example-key-value" +>keyvaluecombo.kmdr</link +>. </para> +<para +>Använd <emphasis +>popup</emphasis +> för att visa menyn. Oftast ansluts den till signalen <emphasis +>contextMenuRequested</emphasis +> i en annan komponent.</para> +<para +>En meny kan innehålla andra sammanhangsberoende undermenyer.</para> +<note +><para +>Nytt i Kommander 1.3.</para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<inlinemediaobject +><imageobject> +<imagedata fileref="toolbox.png" format="PNG"/> +</imageobject +></inlinemediaobject +> Verktygslåda </term> +<listitem> +<para +>En omslutande komponent, liksom flikkomponenten. Den har flera sidor, där varje sida kan innehålla andra komponenter. </para> +<warning +><para +>Komponenten har ett fel i editorn, som inte påverkar dess användning vid körning, men påverkar dess användning i editorn. Om du försöker lägga till sidor i editorn blir den oläsbar. Gör inte det. Om du vill använda verktygslådan, fyll i komponenten i farten med kommandot <command +>addWidget</command +>. Om det finns tid, kommer ett exempel läggas till i utgåva 1.3, titta annars på webbplatsen.</para +></warning> +<para +>Se dokumentationen av QToolBox för att ta reda på mer om den.</para> +<note +><para +>Nytt i Kommander 1.3.</para +></note> +</listitem> +</varlistentry> + + +</variablelist> +</sect1> |