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-fr/docs/tdevelop | |
parent | 85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff) | |
download | tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip |
Second part of prior commit
Diffstat (limited to 'tde-i18n-fr/docs/tdevelop')
35 files changed, 26162 insertions, 0 deletions
diff --git a/tde-i18n-fr/docs/tdevelop/Makefile.am b/tde-i18n-fr/docs/tdevelop/Makefile.am new file mode 100644 index 00000000000..b6361414814 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = fr +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-fr/docs/tdevelop/Makefile.in b/tde-i18n-fr/docs/tdevelop/Makefile.in new file mode 100644 index 00000000000..2dd50befa16 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/Makefile.in @@ -0,0 +1,613 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = fr +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. tdevelop kdearch +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=Makefile.in tip.database Makefile.am + +#>+ 2 +docs-am: tip.database + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop + @for base in tip.database ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + +uninstall-nls: + for base in tip.database ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in tip.database ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-fr/docs/tdevelop/kdearch/Makefile.am b/tde-i18n-fr/docs/tdevelop/kdearch/Makefile.am new file mode 100644 index 00000000000..b6361414814 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/kdearch/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = fr +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-fr/docs/tdevelop/kdearch/Makefile.in b/tde-i18n-fr/docs/tdevelop/kdearch/Makefile.in new file mode 100644 index 00000000000..1893c9091ab --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/kdearch/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop/kdearch +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = fr +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kdearch/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook index.cache.bz2 Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.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)/kdearch + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.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/tdevelop/kdearch/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kdearch/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-fr/docs/tdevelop/kdearch/index.cache.bz2 b/tde-i18n-fr/docs/tdevelop/kdearch/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..5ba4417dd50 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/kdearch/index.cache.bz2 diff --git a/tde-i18n-fr/docs/tdevelop/kdearch/index.docbook b/tde-i18n-fr/docs/tdevelop/kdearch/index.docbook new file mode 100644 index 00000000000..509185541e9 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/kdearch/index.docbook @@ -0,0 +1,3704 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY % addindex "INCLUDE"> + <!ENTITY % French "INCLUDE" +> <!-- change language only here --> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>Vue d'ensemble de l'architecture de KDE</title> + +<date +></date> +<releaseinfo +></releaseinfo> + +<authorgroup> +<author +><firstname +>Bernd</firstname +> <surname +>Gehrmann</surname +> <affiliation +><address +><email +>bernd@tdevelop.org</email +></address +></affiliation> +</author> +</authorgroup> + +<copyright> +<year +>2001</year> +<year +>2002</year> +<holder +>Bernd Gehrmann</holder> +</copyright> + +<legalnotice +>&FDLNotice;</legalnotice> + +<abstract> +<para +>Cette documentation donne une vue d'ensemble de la plate-forme de développement de KDE</para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>architecture</keyword> +<keyword +>développement</keyword> +<keyword +>programmation</keyword> +</keywordset> + +</bookinfo> + +<chapter id="structure"> +<title +>Structure des bibliothèques</title> + +<simplesect id="structure-byname"> +<title +>Bibliothèques par nom</title> + +<variablelist> + +<varlistentry> +<term +><ulink url="kdeapi:tdecore/index.html" +>tdecore</ulink +></term> +<listitem +><para +>La bibliothèque tdecore est l'environnement d'applications de base de tout programme basé sur KDE. Elle fournit l'accès au système de configuration, la gestion de la ligne de commande, le chargement et la manipulation des icônes, certains types spéciaux de communication entre processus, la gestion des fichiers et divers autres utilitaires. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><ulink url="kdeapi:tdeui/index.html" +>tdeui</ulink +></term> +<listitem +><para +>La bibliothèque <literal +>tdeui</literal +> fournit de nombreux widgets et boîtes de dialogue standard dont Qt ne dispose pas ou qui ont davantage de fonctionnalités que leurs contreparties Qt. Elle contient également plusieurs widgets qui sont sous-classés à partir de ceux de Qt et sont mieux intégrés au bureau KDE en respectant les préférences de l'utilisateur. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><ulink url="kdeapi:kio/index.html" +>kio</ulink +></term> +<listitem +><para +>La bibliothèque <literal +>kio</literal +> contient des ressources pour les entrées / sorties asynchrones, transparentes vis-à -vis du réseau et un accès à la gestion des types mime. Elle fournit aussi les boîtes de dialogue des fichiers KDE et ses classes d'aide. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><ulink url="kdeapi:kjs/index.html" +>kjs</ulink +></term> +<listitem +><para +>La bibliothèque <literal +>kjs</literal +> fournit une implémentation de JavaScript. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><ulink url="kdeapi:khtml/index.html" +>khtml</ulink +></term> +<listitem +><para +>La bibliothèque <literal +>khtml</literal +> contient la partie KHTML, un widget de navigation HTML, l'API et l'analyseur DOM, y compris les interfaces à Java et JavaScript. </para +></listitem> +</varlistentry> + +</variablelist> + +</simplesect> + + +<simplesect id="structure-grouped"> +<title +>Classes groupées</title> + +<para +>Squelette fondamental d'une application — classes requises par pratiquement toutes les applications. </para> + +<itemizedlist> + +<listitem +><formalpara> +<title +><ulink url="kdeapi:tdecore/KApplication" +>KApplication</ulink +></title> +<para +>Initialise et contrôle une application KDE. </para> +</formalpara +></listitem> + +<listitem +><formalpara> +<title +><ulink url="kdeapi:tdecore/KUniqueApplication" +>KUniqueApplication</ulink +></title> +<para +>Veille à ce qu'une seule instance d'une application puisse s'exécuter. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KAboutData" +>KAboutData</ulink +></title> +<para +>Contient des informations sur la zone « À propos ». </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KCmdLineArgs" +>KCmdLineArgs</ulink +></title> +<para +>Traitement des arguments en ligne de commande. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Paramètres de configuration — accès à la base de données de configuration hiérarchique de KDE, aux réglages globaux et aux ressources des applications. </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KConfig" +>KConfig</ulink +></title> +<para +>Fournit l'accès à la base de données de configuration de KDE. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KSimpleConfig" +>KSimpleConfig</ulink +></title> +<para +>Accès aux fichiers de configuration simples, non hiérarchiques. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KDesktopFile" +>KDesktopFile</ulink +></title> +<para +>Accès aux fichiers <literal +>.desktop</literal +>. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KGlobalSettings" +>KGlobalSettings</ulink +></title> +<para +>Accès pratique aux réglages non spécifiques à une application. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Gestion des fichiers et des URL — décodage des URL, fichiers temporaires, &etc; </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KURL" +>KURL</ulink +></title> +<para +>Représente et analyse les URL. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KTempFile" +>KTempFile</ulink +></title> +<para +>Crée des fichiers uniques pour les données temporaires. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KSaveFile" +>KSaveFile</ulink +></title> +<para +>Permet d'enregistrer des fichiers atomiquement. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Communication entre processus — classes d'assistant DCOP et invocation des sous-processus. </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KProcess" +>KProcess</ulink +></title> +<para +>Invoque et contrôle les processus enfants. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KShellProcess" +>KShellProcess</ulink +></title> +<para +>Invoque les processus enfants <emphasis +>via</emphasis +> un shell. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdesu/PtyProcess" +>PtyProcess</ulink +></title> +<para +>Communication avec des processus enfants au moyen d'un pseudoterminal. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KIPC" +>KIPC</ulink +></title> +<para +>Mécanisme IPC simple utilisant ClientMessages sous X11. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:dcop/DCOPClient" +>DCOPClient</ulink +></title> +<para +>Messagerie DCOP. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KDCOPPropertyProxy" +>KDCOPPropertyProxy</ulink +></title> +<para +>Une classe de proxy annonçant les propriétés Qt au moyen de DCOP. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KDCOPActionProxy" +>KDCOPActionProxy</ulink +></title> +<para +>Une classe de proxy annonçant une interface DCOP pour des actions. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Classes d'utilitaires — gestion de la mémoire, expressions rationnelles, manipulation des chaînes, nombres aléatoires </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KRegExp" +>KRegExp</ulink +></title> +<para +>Correspondance des expressions rationnelles POSIX. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KStringHandler" +>KStringHandler</ulink +></title> +<para +>Une interface luxueuse pour la manipulation des chaînes. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KZoneAllocator" +>KZoneAllocator</ulink +></title> +<para +>Allocateur de mémoire efficace pour de grands groupes de petits objets. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KRandomSequence" +>KRandomSequence</ulink +></title> +<para +>Générateur de nombres pseudoaléatoires. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Accélérateurs clavier — classes aidant à établir des associations de touches cohérentes sur tout le bureau. </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KAccel" +>KAccel</ulink +></title> +<para +>Collection de raccourcis clavier. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KStdAccel" +>KStdAccel</ulink +></title> +<para +>Accès aisé aux touches courantes de raccourcis clavier. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KGlobalAccel" +></ulink +></title> +<para +>Collection de raccourcis clavier pour l'ensemble du système. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Traitement des images — chargement et manipulation des icônes. </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KIconLoader" +>KIconLoader</ulink +></title> +<para +>Charge des icônes d'une manière se conformant à un thème. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KIconTheme" +>KIconTheme</ulink +></title> +<para +>Classes d'aide pour KIconLoader. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KPixmap" +>KPixmap</ulink +></title> +<para +>Une classe de pixmaps avec des possibilités de tramage étendues. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KPixmapEffect" +>KPixmapEffect</ulink +></title> +<para +>Effets de pixmaps comme les dégradés et les motifs. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KPixmapIO" +>KPixmapIO</ulink +></title> +<para +>Conversion rapide <classname +>QImage</classname +> en <classname +>QPixmap</classname +>. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Glisser et déposer — objets guides pour les couleurs et les URL. </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KURLDrag" +>KURLDrag</ulink +></title> +<para +>Un objet guide pour les URL. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KColorDrag" +>KColorDrag</ulink +></title> +<para +>Un objet guide pour les couleurs. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KMultipleDrag" +>KMultipleDrag</ulink +></title> +<para +>Permet de construire des objets guides à partir de plusieurs autres. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Complétement automatique </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KCompletion" +>KCompletion</ulink +></title> +<para +>Complétement automatique générique des chaînes. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KURLCompletion" +>KURLCompletion</ulink +></title> +<para +>Complétement automatique des URL. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KShellCompletion" +>KShellCompletion</ulink +></title> +<para +>Complétement automatique des exécutables. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Widgets — classes de widgets pour le mode liste, les règles, le choix des couleurs, &etc; </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KListView" +>KListView</ulink +></title> +<para +>Une variante de <classname +>QListView</classname +> qui fait honneur aux réglages de KDE sur l'ensemble du système. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KListView" +>KListBox</ulink +></title> +<para +>Une variante de <classname +>QListBox</classname +> qui fait honneur aux réglages de KDE sur l'ensemble du système. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KListView" +>KIconView</ulink +></title> +<para +>Une variante de <classname +>QIconView</classname +> qui fait honneur aux réglages de KDE sur l'ensemble du système. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KListView" +>KLineEdit</ulink +></title> +<para +>Une variante de <classname +>QLineEdit</classname +> avec la prise en charge du complétement. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KComboBox" +>KComboBox</ulink +></title> +<para +>Une variante de <classname +>QComboBox</classname +> avec la prise en charge du complétement. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KFontCombo" +>KFontCombo</ulink +></title> +<para +>Une zone de liste modifiable pour sélectionner les polices. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KColorCombo" +>KColorCombo</ulink +></title> +<para +>Une zone de liste modifiable pour sélectionner les couleurs. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KColorButton" +>KColorButton</ulink +></title> +<para +>Un bouton pour sélectionner les couleurs. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KURLCombo" +>KURLCombo</ulink +></title> +<para +>Une zone de liste modifiable pour sélectionner les noms de fichiers et les URL. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kfile/KURLRequester" +>KURLRequester</ulink +></title> +<para +>Une édition de lignes pour sélectionner les noms de fichiers et les URL. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KRuler" +>KRuler</ulink +></title> +<para +>Un widget règle. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink +url="kdeapi:tdeui/KAnimWidget" +>KAnimWidget</ulink +></title> +<para +>Des animations. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KNumInput" +>KNumInput</ulink +></title> +<para +>Un widget pour saisir les nombres. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KPasswordEdit" +>KPasswordEdit</ulink +></title> +<para +>Un widget pour saisir les mots de passe. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Boîtes de dialogue — boîtes de dialogue complètes pour la sélection des fichiers, des couleurs et des polices. </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kfile/KFileDialog" +>KFileDialog</ulink +></title> +<para +>Une boîte de dialogue de sélection des fichiers. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KColorDialog" +>KColorDialog</ulink +></title> +<para +>Une boîte de dialogue de sélection des couleurs. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KFontDialog" +>KFontDialog</ulink +></title> +<para +>Une boîte de dialogue pour la sélection des polices. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kfile/KIconDialog" +>KIconDialog</ulink +></title> +<para +>Une boîte de dialogue pour la sélection des icônes. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KKeyDialog" +>KKeyDialog</ulink +></title> +<para +>Une boîte de dialogue pour l'édition des associations de touches clavier. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KEditToolBar" +>KEditToolBar</ulink +></title> +<para +>Une boîte de dialogue pour l'édition des barres d'outils. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KTipDialog" +>KTipDialog</ulink +></title> +<para +>Une boîte de dialogue « Astuce du jour ». </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KAboutDialog" +>KAboutDialog</ulink +></title> +<para +>Une boîte de dialogue « À propos ». </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KLineEditDlg" +>KLineEditDlg</ulink +></title> +<para +>Une boîte de dialogue simple pour saisir du texte. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kfile/KURLRequesterDlg" +>KURLRequesterDlg</ulink +></title> +<para +>Une boîte de dialogue simple pour saisir les URL. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KMessageBox" +>KMessageBox</ulink +></title> +<para +>Une boîte de dialogue pour signaler les erreurs et les avertissements. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KPasswordDialog" +>KPasswordDialog</ulink +></title> +<para +>Une boîte de dialogue pour saisir les mots de passe. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Actions et interface graphique XML </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KAction" +>KAction</ulink +></title> +<para +>Abstraction pour une action qui peut être intégrée dans les barres de menus et les barres d'outils. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KActionCollection" +>KActionCollection</ulink +></title> +<para +>Un ensemble d'actions. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdeui/KXMLGUIClient" +>KXMLGUIClient</ulink +></title> +<para +>Un fragment d'interface graphique se composant d'une collection d'actions et d'une arborescence DOM représentant leur emplacement dans l'interface graphique. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kparts/KPartManager" +>KPartManager</ulink +></title> +<para +>Gère l'activation des clients XMLGUI. </para> +</formalpara +></listitem> + +</itemizedlist> + +<para +>Modules externes (<emphasis +>plugins</emphasis +>) et composants </para> + +<itemizedlist> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KLibrary" +>KLibrary</ulink +></title> +<para +>Représente une bibliothèque chargée dynamiquement. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KLibrary" +>KLibLoader</ulink +></title> +<para +>Chargement d'une bibliothèque partagée. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:tdecore/KLibFactory" +>KLibFactory</ulink +></title> +<para +>Fabrique d'objets dans des modules externes. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KServiceType" +>KServiceType</ulink +></title> +<para +>Représente un type de service. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KService" +>KService</ulink +></title> +<para +>Représente un service. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KMimeType" +>KMimeType</ulink +></title> +<para +>Représente un type MIME. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KServiceTypeProfile" +>KServiceTypeProfile</ulink +></title> +<para +>Préférences utilisateur pour la mise en correspondance des types MIME. </para> +</formalpara +></listitem> + +<listitem +><formalpara +><title +><ulink url="kdeapi:kio/KServiceTypeProfile" +>KTrader</ulink +></title> +<para +>Requêtes de services. </para> +</formalpara +></listitem> + +</itemizedlist> + +</simplesect> + +</chapter> + + + +<chapter id="graphics"> +<title +>Graphiques</title> + +<sect1 id="graphics-qpainter"> +<title +>Graphiques bas niveau avec QPainter</title> + +<simplesect id="qpainter-rendering"> +<title +>Rendu avec QPainter</title> + +<para +>Le modèle d'imagerie bas niveau de Qt est basé sur les possibilités fournies par X11 et d'autres systèmes de fenêtrage pour lesquels des ports Qt existent. Mais il les étend également en implémentant des fonctionnalités additionnelles telles que les transformations affines arbitraires pour le texte et les pixmaps. </para> + +<para +>La classe graphique centrale pour le dessin en 2D avec Qt est <ulink url="kdeapi:qt/QPainter" +>QPainter</ulink +>. Elle peut dessiner sur un <ulink url="kdeapi:qt/QPaintDevice" +>QPaintDevice</ulink +>. Il y a trois périphériques de dessin possibles implémentés : l'un est <ulink url="kdeapi:qt/QWidget" +>QWidget</ulink +> qui représente un widget sur l'écran. Le deuxième est <ulink url="kdeapi:qt/QPrinter" +>QPrinter</ulink +> qui représente une imprimante et produit une sortie Postscript. Le troisième est la classe <ulink url="kdeapi:qt/QPicture" +>QPicture</ulink +> qui enregistre les commandes de dessin, peut les enregistrer sur disque et les lire plus tard. Un format possible de stockage pour le dessin est le standard SVG du W3C. </para> + +<para +>Il est donc possible de réutiliser le code de rendu pour afficher un widget pour l'impression, avec les mêmes fonctionnalités prises en charge. Bien sûr, en pratique, le code est utilisé dans un contexte légèrement différent. Le dessin sur un widget est presque exclusivement exécuté dans la méthode paintEvent() d'une classe de widget. </para> + +<programlisting +>void FooWidget::paintEvent() +{ + QPainter p(this); + // Configurer le pinceau + // Utiliser le pinceau +} +</programlisting> + +<para +>En dessinant sur une imprimante, vous devez veiller à employer QPrinter::newPage() pour terminer une page et en commencer une nouvelle — chose qui naturellement n'a rien de pertinent lorsqu'il s'agit de dessiner des widgets. De plus, au moment de l'impression vous pouvez être amené à employer la <ulink url="kdeapi:qt/QPaintDeviceMetrics" +>métrique du périphérique</ulink +> afin d'en calculer les coordonnées. </para> + +</simplesect> + + +<simplesect id="qpainter-transformations"> +<title +>Transformations</title> + +<para +>Lorsqu'on se sert de QPainter, ce dernier trace par défaut le système de coordonnées naturel du périphérique utilisé. Cela signifie que si vous dessinez le long de l'axe horizontal une ligne d'une longueur de 10 unités, elle sera tracée sur l'écran comme une ligne horizontale d'une longueur de 10 pixels. Cependant, QPainter peut appliquer des transformations affines arbitraires avant de véritablement rendre les formes et les courbes. Une transformation affine met en correspondance les coordonnées x et y linéairement en x' et y' en conséquence </para> + +<mediaobject> +<imageobject +><imagedata fileref="affine-general.png"/></imageobject> +</mediaobject> + +<para +>La matrice 3x3 dans cette équation peut être définie avec QPainter::setWorldMatrix() et elle est de type <ulink url="kdeapi:qt/QWMatrix" +>QWMatrix</ulink +>. Normalement, il s'agit de la matrice identité, &cad; que m11 et m22 sont égales à un, et les autres paramètres sont nuls. Il y a essentiellement trois groupes différents de transformations : </para> + +<itemizedlist> + +<listitem +><formalpara> +<title +>Translations</title> +<para +>Celles-ci déplacent tous les points d'un objet d'une quantité fixe dans une certaine direction. Une matrice de translation peut être obtenue en appelant la méthode m.translate(dx, dy) pour une QWMatrix. Ceci correspond à la matrice </para> +</formalpara> + +<mediaobject> +<imageobject +><imagedata fileref="affine-translate.png"/></imageobject> +</mediaobject> + +</listitem> + +<listitem +><formalpara> +<title +>Changement d'échelle</title> +<para +>Celle-ci étire ou rétrécit les coordonnées d'un objet, en le rendant plus gros ou plus petit sans le distordre. Une transformation de changement d'échelle peut être appliquée à une QWMatrix en appelant m.scale(sx, sy). Ceci correspond à la matrice </para> +</formalpara> + +<mediaobject> +<imageobject +><imagedata fileref="affine-scale.png"/></imageobject> +</mediaobject> + +<para +>En attribuant à l'un de ces paramètres une valeur négative, on peut réaliser une mise en miroir du système de coordonnées. </para> + +</listitem> + +<listitem +><formalpara> +<title +>Glissement</title> +<para +>Une distorsion du système de coordonnées avec deux paramètres. Une transformation de glissement peut être appliquée en appelant m.shear(sh, sv), correspondant à la matrice </para> +</formalpara> + +<mediaobject> + <imageobject +><imagedata fileref="affine-shear.png"/></imageobject> +</mediaobject> + +</listitem> + +<listitem +><formalpara> +<title +>Rotation</title> +<para +>Celle-ci fait tourner un objet. Une transformation de rotation peut être appliquée en appelant m.rotate(alpha). Notez que l'angle doit être indiqué en degrés, non sous un angle mathématique ! La matrice correspondante est </para> +</formalpara> + +<mediaobject> +<imageobject +><imagedata fileref="affine-rotate.png"/></imageobject> +</mediaobject> + +<para +>Notez qu'une rotation est équivalente à une combinaison de changement d'échelle et de glissement. </para> + +</listitem> + +</itemizedlist> + +<para +>Voici quelques images qui montre l'effet de la transformation élémentaire de notre mascotte : </para> + +<informaltable frame="none"> +<tgroup cols="3"> +<tbody> +<row> +<entry +><mediaobject> + <imageobject +><imagedata fileref="konqi-normal.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="konqi-rotated.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="konqi-sheared.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="konqi-mirrored.png"/></imageobject> +</mediaobject +></entry> +</row> +<row> +<entry +>a) Normale</entry> +<entry +>b) Après rotation de 30 degrés</entry> +<entry +>c) Après glissement de 0.4</entry> +<entry +>d) Mise en miroir</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para +>Les transformations peuvent être combinées en multipliant les matrices élémentaires. Notez que les opérations sur les matrices ne sont pas commutatives en général et, par conséquent, l'effet combiné d'une concaténation dépend de l'ordre dans lequel les matrices sont multipliées. </para> + +</simplesect> + + +<simplesect id="qpainter-strokeattributes"> +<title +>Définition des attributs de frappe</title> + +<para +>Le rendu des lignes, courbes et contours des polygones peut être modifié en définissant un crayon spécial avec QPainter::setPen(). L'argument de cette fonction est un objet <ulink url="kdeapi:qt/QPen" +>QPen</ulink +>. Les propriétés qui y sont enregistrées sont un style, une couleur, un style de jointure et un style de capuchon. </para> + +<para +>Le style de crayon est un membre de l'énumération <ulink url="kdeapi:qt/Qt#PenStyle-enum" +>Qt::PenStyle</ulink +>, et peut prendre une des valeurs suivantes : </para> + +<mediaobject> + <imageobject +><imagedata fileref="penstyles.png"/></imageobject> +</mediaobject> + +<para +>Le style de jointure est un membre de l'énumération <ulink url="kdeapi:qt/Qt#PenJoinStyle-enum" +>Qt::PenJoinStyle</ulink +>. Il spécifie comment est tracée la jonction entre des lignes mutliples qui sont reliées l'une à l'autre. Il peut prendre une des valeurs suivantes : </para> + +<informaltable frame="none"> +<tgroup cols="3"> +<tbody> +<row> +<entry +><mediaobject> + <imageobject +><imagedata fileref="joinmiter.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="joinbevel.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="joinround.png"/></imageobject> +</mediaobject +></entry> +</row> +<row> +<entry +>a) MiterJoin (jointure en onglet)</entry> +<entry +>c) BevelJoin (jointure biseautée)</entry> +<entry +>b) RoundJoin (jointure arrondie)</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para +>Le style de capuchon est un membre de l'énumération <ulink url="kdeapi:qt/Qt#PenCapStyle-enum" +>Qt::PenCapStyle</ulink +> et spécifie comment sont tracés les points finaux des lignes. Il prend l'une des valeurs provenant du tableau suivant : </para> + +<informaltable frame="none"> +<tgroup cols="3"> +<tbody> +<row> +<entry +><mediaobject> + <imageobject +><imagedata fileref="capflat.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="capsquare.png"/></imageobject> +</mediaobject +></entry> +<entry +><mediaobject> + <imageobject +><imagedata fileref="capround.png"/></imageobject> +</mediaobject +></entry> +</row> +<row> +<entry +>a) FlatCap (capuchon plat)</entry> +<entry +>b) SquareCap (capuchon carré)</entry> +<entry +>c) RoundCap (capuchon rond)</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +</simplesect> + + +<simplesect id="qpainter-fillattributes"> +<title +>Définition des attributs de remplissage</title> + +<para +>Le style de remplissage des polygones, cercles ou rectangles peut être modifié en définissant une brosse spéciale avec QPainter::setBrush(). Cette fonction prend un objet <ulink url="kdeapi:qt/QBrush" +>QBrush</ulink +> comme argument. Les brosses peuvent être construites de quatre manières différentes : </para> + +<itemizedlist> +<listitem> +<para +>QBrush::QBrush() — crée une brosse qui ne remplit pas les formes.</para> +</listitem> +<listitem> +<para +>QBrush::QBrush(BrushStyle) — crée une brosse noire avec un des motifs par défaut illustrés ci-dessous.</para> +</listitem> +<listitem> +<para +>QBrush::QBrush(const QColor &, BrushStyle) — crée une brosse colorée avec un des motifs illustrés ci-dessous.</para> +</listitem> +<listitem> +<para +>QBrush::QBrush(const QColor &, const QPixmap) — crée une brosse colorée avec le motif personnalisé que vous indiquez comme second paramètre.</para> +</listitem> +</itemizedlist> + +<para +>Un style de brosse par défaut est un membre de l'énumération <ulink url="kdeapi:qt/Qt#BrushStyle-enum" +>Qt::BrushStyle</ulink +>. Voici une illustration de tous les motifs prédéfinis : </para> + +<mediaobject> + <imageobject +><imagedata fileref="brushstyles.png"/></imageobject> +</mediaobject> + +<para +>Une autre manière de personnaliser le comportement de la brosse est d'utiliser la fonction QPainter::setBrushOrigin(). </para> + +</simplesect> + + +<simplesect id="qpainter-color"> +<title +>Couleur</title> + +<para +>Les couleurs jouent un rôle à la fois lors de la frappe des courbes et lors du remplissage des formes. Dans Qt, les couleurs sont représentées par la classe <ulink url="kdeapi:qt/QColor" +>QColor</ulink +>. Qt ne prend en charge aucune fonctionnalité graphique avancée comme les profils de couleur ICC (<emphasis +>International Color Consortium</emphasis +>) et la correction des couleurs. Les couleurs sont habituellement construites en spécifiant leurs composantes rouge, verte et bleue, puisque le modèle RVB est la manière dont sont composés les pixels sur un moniteur. </para> + +<para +>Il est également possible d'utiliser une teinte, une saturation et une valeur. Cette représentation HSV est ce dont vous vous servez dans la boîte des couleurs Gtk, &pex; dans Le GIMP. Ici, la teinte correspond à l'angle sur la roue de couleurs, alors que la saturation correspond à la distance depuis le centre du cercle. La valeur peut être choisie avec un curseur séparé. </para> + +</simplesect> + + +<simplesect id="qpainter-paintsettings"> +<title +>Autres paramètres</title> + +<para +>Normalement, lorsque vous peignez sur un périphérique de peinture, les pixels que vous dessinez remplacent ceux qui s'y trouvaient auparavant. Cela signifie que lorsque vous peignez une certaine région avec une couleur rouge et que vous peignez la même région avec une couleur verte par la suite, seule la couleur bleue sera visible. Le modèle d'imagerie de Qt ne prend pas en charge la transparence, &cad; une manière de fondre l'avant-plan peint avec l'arrière-plan. Cependant, il y a un moyen simple de combiner arrière-plan et avant-plan avec des opérateurs booléens. La méthode QPainter::setRasterOp() définit l'opérateur utilisé, qui provient de l'énumération <ulink url="kdeapi:qt/Qt#RasterOp-enum" +>RasterOp</ulink +>. </para> + +<para +>La valeur par défaut est CopyROP, qui ignore l'arrière-plan. Un autre choix courant est XorROP. Si vous tracez une ligne noire avec cet opérateur sur une image colorée, la zone couverte est alors inversée. Cet effet est par exemple permet de créer les sélections d'étirement dans les programmes de manipulation d'image connus sous l'expression « fourmis en marche ». </para> + +</simplesect> + + +<simplesect id="qpainter-primitives"> +<title +>Traçage des primitives graphiques</title> + +<para +>Dans ce qui suit, nous répertorions les éléments graphiques élémentaires que gère QPainter. La plupart d'entre eux existe en plusieurs versions saturées qui prennent un nombre différent d'arguments. Par exemple, les méthodes qui portent sur les rectangles prennent soit un <ulink url="kdeapi:qt/QRect" +>QRect</ulink +> comme argument, soit un ensemble de quatre entiers. </para> + +<itemizedlist> +<listitem> +<para +>Traçage d'un seul point — drawPoint().</para> +</listitem> +<listitem> +<para +>Traçage des lignes — drawLine(), drawLineSegments() et drawPolyLine().</para> +</listitem> +<listitem> +<para +>Traçage et remplissage des rectangles — drawRect(), drawRoundRect(), fillRect() et eraseRect().</para> +</listitem> +<listitem> +<para +>Traçage et remplissage des cercles, des ellipses et de parties de ceux-ci — drawEllipse(), drawArc(), drawPie et drawChord().</para> +</listitem> +<listitem> +<para +>Traçage et remplissage des polygones en général — drawPolygon().</para> +</listitem> +<listitem> +<para +>Traçage des courbes de Bézier — drawQuadBezier() [drawCubicBezier dans Qt 3.0].</para> +</listitem> +</itemizedlist> + +</simplesect> + + +<simplesect id="qpainter-pixmaps"> +<title +>Traçage des pixmaps et des images</title> + +<para +>Qt fournit deux classes très différentes pour représenter les images. </para> + +<para +><ulink url="kdeapi:qt/QPixmap" +>QPixmap</ulink +> corrrespond directement aux objets pixmaps dans X11. Les pixmaps sont des objets côté serveur et peuvent — sur une carte graphique moderne — même être enregistrés directement dans la mémoire de la carte. Ce comportement la rend <emphasis +>très</emphasis +> efficace pour transférer les pixmaps à l'écran. Les pixmaps agissent aussi comme l'équivalent d'un hors-écran de widgets — la classe QPixmap étant une sous-classe de QPaintDevice, vous pouvez dessiner dessus avec un QPainter. Les opérations de dessin élémentaires sont habituellement accélérées par les cartes graphiques modernes. Par conséquent, un motif d'usage courant est d'utiliser les pixmaps pour le double tamponnement. Cela signifie que, au lieu de peindre directement sur un widget, vous peignez sur un objet pixmap temporaire et que vous employez la fonction <ulink url="kdeapi:qt/QPaintDevice#bitBlt-1" +>bitBlt</ulink +> pour transférer le pixmap au widget. Pour des retraçages complexes, cette astuce permet d'éviter le papillottement. </para> + +<para +>En revanche, les objets <ulink url="kdeapi:qt/QImage" +>QImage</ulink +> résident côté client. Ils se distinguent en fournissant un accès direct aux pixels de l'image. Ce comportement explique leur utilisation dans la manipulation des images, ainsi que les tâches comme le chargement et l'enregistrement sur disque (la méthode load() de QPixmap considère QImage comme une étape intermédiaire). Par ailleurs, le traçage d'une image sur un widget est une opération relativement coûteuse car elle implique un transfert vers le serveur X qui peut prendre du temps, en particulier pour les images de grandes dimensions et pour les serveurs distants. En fonction de la profondeur de couleur, la conversion de QImage en QPixmap peut aussi exiger un tramage. </para> + +</simplesect> + + +<simplesect id="qpainter-drawingtext"> +<title +>Traçage du texte</title> + +<para +>Le texte peut être tracé avec une des variantes saturées de la méthode QPainter::drawText(). Celles-ci dessinent une QString soit à un point donné, soit dans un rectangle donné, en utilisant la police définie par QPainter::setFont(). Il y a également un paramètre qui prend une combinaison OU exclusif de certaines drapeaux à partir des énumérations <ulink url="kdeapi:qt/Qt#AlignmentFlags-enum" +>Qt::AlignmentFlags</ulink +> et <ulink url="kdeapi:qt/Qt#TextFlags-enum" +>Qt::TextFlags</ulink +> </para> + +<para +>En commençant par la version 3.0, Qt tient compte de la disposition complète du texte, même pour les langues qui s'écrivent de droite à gauche. </para> + +<para +>Une manière plus sophistiquée d'afficher du texte marqué est la classe <ulink url="kdeapi:qt/QSimpleRichText" +>QSimpleRichText</ulink +>. Les objets de cette classe peuvent être construits avec un élément de texte à l'aide d'un sous-ensemble des marqueurs HTML, qui est assez riche et fournit même des tableaux. Le style du texte peut être personnalisé par l'emploi d'une <ulink url="kdeapi/qt/QStyleSheet" +>QStyleSheet</ulink +> (la documentation des marqueurs se trouve également ici). Une fois l'objet texte enrichi construit, il peut être rendu sur un widget ou un autre périphérique de traçage avec la méthode QSimpleRichText::draw(). </para> + +</simplesect> + +</sect1> + + +<sect1 id="graphics-qcanvas"> +<title +>Graphiques structurés avec QCanvas</title> + +<para +>QPainter offre un modèle d'imagerie puissant pour peindre sur les widgets et les pixmaps. Toutefois, son utilisation peut être fastidieuse. Chaque fois que votre widget reçoit un événement peinture, il doit analyser la QPaintEvent::region() ou la QPaintEvent::rect() qui doit être redessinée. Puis il lui faut configurer un QPainter et peindre tous les objets qui se chevauchent sur cette région. Imaginez par exemple un programme de dessin vectoriel qui permet de faire glisser des objets comme les polygones, les cercles et les groupes de ceux-ci tout autour. Chaque fois que ces objets se déplacent un peu, l'événement souris du widget déclenche un événement peinture pour l'ensemble de la zone couverte par les objets dans leur ancienne position et dans leur nouvelle position. La découverte des retraçages nécessaires et leur exécution d'une manière efficace peut être difficile et peut entraîner un conflit avec la structure orientée objet du code source du programme. </para> + +<para +>À titre d'alternative, Qt contient la classe <ulink url="kdeapi:qt/QCanvas" +>QCanvas</ulink +> dans laquelle vous placerez des objets graphiques comme les polygones, le texte, les pixmaps. Vous pouvez également fournir des éléments additionnels en sous-classant <ulink url="kdeapi:qt/QCanvasItem" +>QCanvasItem</ulink +> ou une de ses sous-classes plus spécialisées. Un canevas peut être représenté sur l'écran par un ou plusieurs widgets de la classe <ulink url="kdeapi:qt/QCanvas" +>QCanvasView</ulink +> que vous devez sous-classer afin de gérer les interactions utilisateur. Qt tient compte de tous les retraçages des objets de la vue, si elles sont occasionnées par le widget exposé, les nouveaux objets créés ou modifiés, voire d'autres choses. En utilisant le double tamponnement, ceci peut être effectué d'une manière efficace et sans papillotement. </para> + +<para +>Les éléments du canevas peuvent se chevaucher les uns les autres. Dans ce cas, celui qui est visible dépend de l'ordre que QCanvasItem::setZ() peut affecter. Les éléments peuvent aussi être rendus visibles ou invisibles. Vous pouvez également fournir un arrière-plan à dessiner « derrière » tous les éléments et un avant-plan. Pour associer des événements souris à des objets, dans le canevas, il y a la méthode QCanvas::collisions() qui retourne une liste des éléments se chevauchant à un point donné. Voici une capture d'écran d'une vue du canevas en action : </para> + +<mediaobject> +<imageobject +><imagedata fileref="canvas.png"/></imageobject> +</mediaobject> + +<para +>Ici, le maillage est dessiné en arrière-plan. De plus, il y a un élément QCanvasText et un QCanvasPolygon violet. Le papillon est un QCanvasPixmap. Il a des zones transparentes de façon à ce que vous puissiez voir les éléments sous-jacents à travers lui. </para> + +<para +>Un didactitiel sur l'utilisation de QCanvas pour écrire des jeux basés sur des objets images se trouve <ulink url="http://zez.org/article/articleview/2/1/" +>ici</ulink +>. </para> + +</sect1> + + +<sect1 id="graphics-qglwidget"> +<title +>Graphiques en 3D avec OpenGL</title> + +<simplesect id="qglwidget-lowlevel"> +<title +>Interface bas niveau</title> + +<para +>Le standard <emphasis +>de facto</emphasis +> pour le rendu des graphiques en 3D aujourd'hui est <ulink url="http://www.opengl.org" +>OpenGL</ulink +>. Les implémentations de ces spécifications sont présentes dans Microsoft Windows, Mac OS X, XFree86 et gèrent souvent les fonctionnalités d'accélération matérielle qu'offrent les cartes graphiques modernes. OpenGL lui-même ne se consacre qu'au rendu sur une zone spécifiée du tampon de trame grâce à un <emphasis +>contexte GL</emphasis +> et n'a aucune interaction avec la boîte à outils de l'environnement </para> + +<para +>Qt offre le widget <ulink url="kdeapi:qt/QGLWidget" +>QGLWidget</ulink +> qui encapsule une fenêtre avec un contexte GL associé. Vous l'utiliserez essentiellement en le sous-classant et en réimplémentant certaines méthodes. </para> + +<itemizedlist> + +<listitem +><para +>Au lieu de réimplémenter paintEvent() et d'utiliser QPainter pour dessiner le contenu du widget, annulez paintGL() et utilisez les commandes GL pour rendre une scène. QLWidget prendra soin de faire de son contexte GL le contexte actuel avant que paintGL() ne soit appelé, et il l'éliminera par la suite. </para +></listitem> + +<listitem +><para +>La méthode virtuelle initializeGL() est appelée immédiatement avant la première fois où resizeGL() ou paintGL() est appelées. Elle peut servir à construire des listes d'affichage pour des objets et procéder à quelques initialisations. </para +></listitem> + +<listitem +><para +>Au lieu de réimplémenter resizeEvent(), annulez resizeGL(). Cette dernière peut servir pour définir la fenêtre d'affichage de manière appropriée. </para +></listitem> + +<listitem +><para +>Au lieu d'appeler update() quand l'état de la scène a changé — &pex; quand vous l'animez avec un minuteur — appelez updateGL(). Cette action déclenchera un retraçage. </para +></listitem> + +</itemizedlist> + +<para +>En général, QGLWidget se comporte tout comme n'importe quel autre widget, &cad; &pex; que vous pouvez traiter les événements souris comme d'habitude, redimensionner le widget et le combiner avec d'autres dans une topologie. </para> + +<mediaobject> +<imageobject +><imagedata fileref="opengl.png"/></imageobject> +</mediaobject> + +<para +>Qt contient quelques exemples de l'utilisation de QGLWidget dans son exemple <literal +>démo</literal +>. Vous trouverez <ulink url="http://www.libsdl.org/opengl/intro.html" +>ici</ulink +> un ensemble de didactitiels ; d'autres informations et une référence d'OpenGL sont disponibles sur la <ulink url="http://www.opengl.org" +>page d'accueil d'OpenGL</ulink +>. </para> + +</simplesect> + + +<simplesect id="qglwidget-highlevel"> +<title +>Interfaces haut niveau</title> + +<para +>OpenGL est une interface assez bas niveau pour dessiner des graphiques en 3D. De la même manière que QCanvas donne au programmeur une interface de plus haut niveau avec des détails, des objets et leurs propriétés, il y a également des interfaces haut niveau pour les graphiques en 3D. Une des interfaces les plus connues est Open Inventor. Technologie à l'origine développée par SGI, il existe aujourd'hui l'implémentation open source <ulink url="http://www.coin3d.org" +>Coin</ulink +>, complétée par l'association d'une boîte à outils à Qt appelée SoQt. </para> + +<para +>Le concept fondamental d'Open Inventor est celui d'une <emphasis +>scène</emphasis +>. Une scène peut être chargée depuis un disque et enregistrée dans un format spécial étroitement lié à <ulink url="http://www.vrml.org" +>VRML</ulink +>. Une scène consiste en une collection d'objets appelés <emphasis +>nÅ“uds</emphasis +>. Inventor fournit déjà une riche collection de nÅ“uds réutilisables, tels que des cubes, des cylindres et des mailles, en plus de sources lumineuses, de matériaux, de caméras, &etc; Les nÅ“uds sont représentés par des classes C++ et peuvent être combinés et sous-classés. </para> + +<para +>Vous trouverez une introduction à Inventor <ulink url="http://www.motifzone.com/tmd/articles/OpenInventor/OpenInventor.html" +>ici</ulink +> (en général, vous pouvez substituer toutes les mentions de SoXt par SoQt dans cet article). </para> + +</simplesect> + +</sect1> + +</chapter> + + + +<chapter id="userinterface"> +<title +>Interface utilisateur</title> + +<sect1 id="userinterface-actionpattern"> +<title +>Le motif de l'action</title> + +<para +></para> + +</sect1> + + +<sect1 id="userinterface-xmlgui"> +<title +>Définition des menus et des barres d'outils dans XML</title> + +<simplesect id="xmlgui-intro"> +<title +>Introduction</title> + +<para +>Alors que le <link linkend="userinterface-actionpattern" +>motif des actions</link +> permet d'encapsuler les actions déclenchées par l'utilisateur dans un objet qui peut être « enfiché » quelque part dans les barres de menus ou les barres d'outils, il ne résoud pas par lui-même le problème de la construction des menus proprement dits. En particulier, vous aurez à construire tous les menus contextuels en code C++ et à insérer explicitement les actions dans un certain ordre, à l'étude du guide de style pour les actions standard. Ceci complique la tâche de l'utilisateur pour personnaliser les menus ou changer les raccourcis pour les adapter à ses besoins, sans modifier le code source. </para> + +<para +>Ce problème est résolu par un ensemble de classes appelé <literal +>XMLGUI</literal +>. En susbtance, celui-ci sépare les actions (codées en C++) de leur apparance dans les barres de menus et les barres d'outils (codées en XML). Sans modifier aucun code source, les menus peuvent être simplement personnalisés en ajustant un fichier XML. En outre, il permet de s'assurer que les actions standard (telles que <menuchoice +><guimenu +>Fichier</guimenu +><guimenuitem +>Ouvrir</guimenuitem +></menuchoice +> ou <menuchoice +><guimenu +>Aide</guimenu +><guimenuitem +>À propos de</guimenuitem +></menuchoice +>) apparaissent dans les endroits suggérés par le guide de style. XMLGUI est particulièrement important pour les programmes modulaires, dans lesquels les éléments apparaissant dans la barre de menus peuvent provenir de nombreux modules externes (<emphasis +>plugins</emphasis +>) ou parties différents. </para> + +<para +>La classe de KDE pour les fenêtres de premier niveau, <ulink url="kdeapi:tdeui/KMainWindow.html" +>KMainWindow</ulink +>, hérite de <ulink url="kdeapi:tdeui/KXMLGUIClient.html" +>KXMLGUIClient</ulink +> et gère donc XMLGUI en dehors de l'ordinateur. Toutes les actions créées en son sein doivent avoir la <literal +>actionCollection()</literal +> du client comme parent. Un appel à <literal +>createGUI()</literal +> construira ensuite l'ensemble complet des barres de menus et d'outils défini dans le fichier XML des applications (par convention, avec le suffixe <literal +>ui.rc</literal +>). </para> + +</simplesect> + + +<simplesect id="xmlgui-kviewexample"> +<title +>Un exemple : un menu dans KView</title> + +<para +>Dans ce qui suit, nous prenons l'afficheur d'images <application +>KView</application +> de KDE à titre d'exemple. Il a un fichier <literal +>ui.rc</literal +> nommé <filename +>kviewui.rc</filename +> qui est installé avec le fragment <filename +>Makefile.am</filename +> </para> + +<programlisting +>rcdir = $(kde_datadir)/kview +rc_DATA = kviewui.rc +</programlisting> + +<para +>Voici un extrait du fichier <filename +>kviewui.rc</filename +>. Pour la simplicité, nous n'afficherons que la définition du menu <guimenu +>Affichage</guimenu +>. </para> + +<programlisting +><!DOCTYPE kpartgui> +<kpartgui name="kview"> + <MenuBar> + <Menu name="affichage" > + <Action name="zoom50" /> + <Action name="zoom100" /> + <Action name="zoom200" /> + <Action name="zoomMaxpect" /> + <Separator/> + <Action name="plein écran" /> + </Menu> + </MenuBar> +</kpartgui> +</programlisting> + +<para +>La partie correspondante de la configuration en C++ est : </para> + +<programlisting +>KStdAction::zoomIn ( this, SLOT(slotZoomIn()), actionCollection() ); + KStdAction::zoomOut ( this, SLOT(slotZoomOut()), actionCollection() ); + KStdAction::zoom ( this, SLOT(slotZoom()), actionCollection() ); + new KAction ( i18n("&Half size"), ALT+Key_0, + this, SLOT(slotHalfSize()), + actionCollection(), "zoom50" ); + new KAction ( i18n("&Normal size"), ALT+Key_1, + this, SLOT(slotDoubleSize()), + actionCollection(), "zoom100" ); + new KAction ( i18n("&Double size"), ALT+Key_2, + this, SLOT(slotDoubleSize()), + actionCollection(), "zoom200" ); + new KAction ( i18n("&Fill Screen"), ALT+Key_3, + this, SLOT(slotFillScreen()), + actionCollection(), "zoomMaxpect" ); + new KAction ( i18n("Fullscreen &Mode"), CTRL+SHIFT+Key_F, + this, SLOT(slotFullScreen()), + actionCollection(), "fullscreen" ); +</programlisting> + +<para +>Le menu <guimenu +>Affichage</guimenu +> résultant de la définition de cette interface graphique ressemble à celle de cette capture d'écran : </para> + +<mediaobject> +<imageobject +><imagedata fileref="kview-menu.png"/></imageobject> +</mediaobject> + +<para +>Le fichier XML commence par une déclaration de type de document. La DTD pour kpartgui se trouve dans les sources tdelibs dans <filename +>tdeui/kpartgui.dtd</filename +>. L'élément le plus externe du fichier contient le nom d'instance de l'application comme attribut. Il peut également contenir un numéro de version de la forme « version=2 ». Ce détail est utile lorsque vous diffusez de nouvelles versions d'une application avec une structure de menu modifiée, &pex; avec davantage de fonctionnalités. Si vous gonflez le numéro de version du fichier <literal +>ui.rc</literal +>, KDE s'assure que toute version personnalisée du fichier est éliminée et que le nouveau fichier est utilisé à la place. </para> + +<para +>La ligne suivante, <literal +><MenuBar></literal +>, contient une déclaration d'une barre de menus. Vous pouvez aussi insérer n'importe quel nombre de déclarations <literal +><ToolBar></literal +> afin de créer quelques barres d'outils. Le menu contient un sous-menu avec le nom « affichage ». Ce nom est déjà prédéfini et ainsi, vous voyez une version traduite du mot « View » dans la capture d'écran. Si vous déclarez vos propres sous-menus, ajoutez le titre explicitement. Par exemple, <application +>KView</application +> a un sous-menu avec le titre « Image » déclaré comme suit : </para> + +<programlisting +><Menu name="image" > + <text>&amp;Image</text> + ... +</Menu> +</programlisting> + +<para +>Dans l'environnement automake de KDE, de tels titres sont automatiquement extraits et placés dans le fichier <ulink url="tde-i18n-howto.html" +><literal +>.po</literal +></ulink +> de l'application pour que les traducteurs puissent le traiter. Notez que vous devez écrire le marqueur d'accélérateur « & » sous la forme conforme à XML, « &amp; ». </para> + +<para +>Revenons à notre exemple. Le menu <guimenu +>Affichage</guimenu +> de <application +>KView</application +> contient quelques actions personnalisées : <literal +>zoom50</literal +>, <literal +>zoom100</literal +>, <literal +>zoom200</literal +>, <literal +>zoomMaxpect</literal +> et <literal +>fullscreen</literal +>, déclarées avec un élément <literal +><Action></literal +>. Le séparateur dans les captures d'écran correspond à l'élément <literal +><Separator></literal +>. </para> + +<para +>Vous noterez que certains éléments de menus n'ont pas d'élément correspondant dans le fichier XML. Ce sont des <emphasis +>actions standard</emphasis +>. Les actions standard sont créées par la classe <ulink url="kdeapi:tdeui/KStdAction.html" +>KStdAction</ulink +>. Quand vous créez de telles actions dans votre application (comme dans l'exemple C++ ci-dessus), elles sont automatiquement insérées dans une position imposée et éventuellement avec une icône et une touche de raccourci. Consultez ces emplacements dans le fichier <filename +>tdeui/ui_standards.rc</filename +>, dans les sources tdelibs. </para> + +</simplesect> + + +<simplesect id="xmlgui-konqexample"> +<title +>Un exemple : les barres d'outils dans Konqueror</title> + +<para +>Pour l'étude des barres d'outils, passons à la définition de l'interface graphique de <application +>Konqueror</application +>. Cet extrait définit la barre d'URL qui contient le champ de saisie des URL. </para> + +<programlisting +><ToolBar name="locationToolBar" fullWidth="true" newline="true" > + <text>Location Toolbar</text> + <Action name="clear_location" /> + <Action name="location_label" /> + <Action name="toolbar_url_combo" /> + <Action name="go_url" /> +</ToolBar> +</programlisting> + +<para +>La première chose que nous remarquons est qu'il y a beaucoup plus d'attributs que pour les barres de menus. Celles-ci comprennent : </para> + +<itemizedlist> + +<listitem +><para +><literal +>fullWidth</literal +> : indique à XMLGUI que la barre d'outils a la même largeur que la fenêtre de premier niveau. Si celle-ci est « false », la barre d'outils prend seulement l'espace nécessaire et les autres barres d'outils sont placées sur la même ligne. </para +></listitem> + +<listitem +><para +><literal +>newline</literal +> : ceci est en rapport avec l'option ci-dessus. Si « newline » est « true », la barre d'outils commence une nouvelle ligne. Sinon elle peut être placée dans la même ligne, associée à la barre d'outils précédente. </para +></listitem> + +<listitem +><para +><literal +>noEdit</literal +> : normalement, les barres d'outils peuvent être personnalisées par l'utilisateur, &pex; dans <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer les barres d'outils</guimenuitem +></menuchoice +> dans <application +>Konqueror</application +>. Le fait de définir cette option à « true » marque cette barre d'outils comme non modifiable. Ceci est important pour les barres d'outils qui sont remplis d'éléments au moment de l'exécution, &pex; la barre d'outils des signets de <application +>Konqueror</application +>. </para +></listitem> + +<listitem +><para +><literal +>iconText</literal +> : indique à XMLGUI d'afficher le texte de l'action qui suit l'icône. Normalement, le texte n'est affiché que sous la forme d'une bulle d'aide lorsque le curseur de la souris reste sur l'icône un instant. Des valeurs possibles pour cet attribut sont « icononly » (affiche uniquement l'icône), « textonly » (affiche uniquement le texte), « icontextright » (affiche le texte sur le côté droit de l'icône) et « icontextbottom » (affiche le texte au-dessous de l'icône). </para +></listitem> + + +<listitem +><para +><literal +>hidden</literal +> : si ceci est « true », la barre d'outils n'est pas visible initialement et doit être activée par un élément de menu. </para +></listitem> + + +<listitem +><para +><literal +>position</literal +> : la valeur par défaut pour cet attribut est « top », ce qui signifie que la barre d'outils est positionnée sous la barre de menus. Pour les programmes dotés de nombreux outils, comme les programmes graphiques, il peut être intéressant de remplacer ceci par « left », « right » ou « bottom ». </para +></listitem> + +</itemizedlist> + +</simplesect> + + +<simplesect id="xmlgui-dynamical"> +<title +>Menus dynamiques</title> + +<para +>À l'évidence, un fichier XML ne peut contenir qu'une description statique d'une interface utilisateur. Souvent, il y a des menus qui changent au moment de l'exécution. Par exemple, le menu <guimenu +>Document</guimenu +> de <application +>Konqueror</application +> contient un ensemble d'éléments <guimenuitem +>Ouvrir avec quelque chose</guimenuitem +> avec les applications capables de charger un fichier avec un type MIME donné. Chaque fois que le document affiché change, la liste des éléments du menu est mise à jour. XMLGUI est préparée à gérer ce type de cas avec la notion de <emphasis +>listes d'actions</emphasis +>. Une liste d'actions est déclarée comme un seul élément dans le fichier XML mais se compose de plusieurs actions qui sont « enfichées » dans le menu au moment de l'exécution. L'exemple ci-dessus est mis en Å“uvre avec la déclaration suivante dans le fichier XML de <application +>Konqueror</application +> : </para> + +<programlisting +><Menu name="filchier"> + <text>&amp;Location</text> + ... + <ActionList name="openwith"> + ... +</Menu> +</programlisting> + +<para +>La fonction <function +>KXMLGUIClient::plugActionList()</function +> est alors utilisée pour ajouter des actions à afficher, alors que la fonction <function +>KXMLGuiClient::unplugActionList()</function +> supprime toutes les fonctions « enfichées ». Voici à quoi ressemble la routine responsable de la mise à jour : </para> + +<programlisting +>void MainWindow::updateOpenWithActions() +{ + unplugActionList("openwith"); + openWithActions.clear(); + for ( /* itérer sur les services pertinents */ ) { + KAction *action = new KAction( ...); + openWithActions.append(action); + } + plugActionList("openwith", openWithActions); +} +</programlisting> + +<para +>Notez que, contrairement aux actions statiques, celles qui sont créées ici <emphasis +>ne sont pas</emphasis +> construites avec la collection des actions comme parent et que vous êtes responsable de leur suppression en propre. La manière la plus souple pour ce faire est d'utiliser <literal +>openWithActions.setAutoDelete(true)</literal +> dans l'exemple ci-dessus. </para> + +</simplesect> + + +<simplesect id="xmlgui-contextmenus"> +<title +>Menus contextuels</title> + +<para +>Les exemples ci-dessus ne contenaient que des cas où étaient créées une barre de menus et des barres d'outils d'une fenêtre principale. Ici, les processus de construction de ces conteneurs vous sont complètement cachés derrière l'appel <function +>createGUI()</function +> (sauf si vous avez des conteneurs personnalisés). Toutefois, il y a des cas où vous serez amené à construire d'autres conteneurs et à les doter de définitions d'interfaces graphiques provenant du fichier XML. Les menus contextuels en sont un exemple. Afin d'obtenir un pointeur vers un menu contextuel, vous devez le demander à la fabrique du client : </para> + +<programlisting +>void MainWindow::popupRequested() +{ + QWidget *w = factory()->container("context_popup", this); + QPopupMenu *popup = static_cast<QPopupMenu *>(w); + popup->exec(QCursor::pos()); +} +</programlisting> + +<para +>La méthode <function +>KXMLGUIFactory::container()</function +> utilisée précédemment examine le fichier XML pour savoir si elle y trouve un conteneur du nom donné. Ainsi, voici à quoi pourrait ressembler une définition possible : </para> + +<programlisting +>... +<Menu name="context_popup"> + <Action name="file_add"/> + <Action name="file_remove"/> +</Menu> +... +</programlisting> + +</simplesect> + +</sect1> + + +<sect1 id="help"> +<title +>Mise à disposition d'une aide en ligne</title> + +<para +>Le fait de rendre un programme facile et intuitif à utiliser implique une large palette de fonctions habituellement appelées « aide en ligne ». L'aide en ligne a plusieurs buts, partiellement en conflit : d'une part, elle doit fournir à l'utilisateur des réponses à la question « Comment puis-je effectuer telle ou telle tâche ? », de l'autre, elle doit l'aider à explorer l'application et à trouver les fonctionnalités qu'il ne connaît pas encore. Il est important de reconnaître que cet objectif peut être atteint en offrant plusieurs niveaux d'aide : </para> + +<itemizedlist> + +<listitem +><para +>Les bulles d'aide sont de petites étiquettes qui apparaissent sur les éléments de l'interface utilisateur quand la souris y reste quelques secondes. Elles sont particulièrement importantes pour les barres d'outils où les icônes ne sont pas toujours suffisantes pour expliquer la finalité d'un bouton. </para +></listitem> + +<listitem +><para +>L'aide « Qu'est-ce que c'est ? » est souvent une explication plus longue et plus fournie d'un widget ou d'un élément de menu. Elle est également plus incertaine à utiliser. Dans les boîtes de dialogue, on peut l'invoquer de deux façons : soit en appuyant sur <keycombo +><keycap +>Maj</keycap +><keycap +>F1</keycap +></keycombo +>, soit en cliquant sur le point d'interrogation dans la barre de titre (où la prise en charge de cette dernière dépend du gestionnaire de fenêtres). Le pointeur de la souris se transforme alors en point d'interrogation et la fenêtre d'aide apparaît quand on clique sur un élément de l'interface utilisateur. L'aide « Qu'est-ce que c'est ? » est d'ordinaire activée dans la barre d'outils par un bouton contenant une flèche et un point d'interrogation. </para +></listitem> + +<listitem +><para +>Le problème avec cette approche est que l'utilisateur ne peut pas voir si un widget fournit de l'aide ou non. Lorsqu'il active le bouton en forme de point d'interrogation et qu'il n'obtient aucune fenêtre d'aide en cliquant un élément de l'interface utilisateur, il est très rapidement frustré. </para> + +<para +>L'avantage des fenêtres d'aide « Qu'est-ce que c'est ? » telles qu'elles sont fournies par Qt et KDE est qu'elles peuvent contenir du <ulink url="kdeapi:qt/QStyleSheet" +>texte enrichi</ulink +>, &cad; différentes polices, du texte en gras et en italique, voire des images et des tableaux. </para> + +<para +>Un exemple de l'aide « Qu'est-ce que c'est ? » : </para> + +<mediaobject> +<imageobject +><imagedata fileref="whatsthis.png"/></imageobject> +</mediaobject> + +</listitem> + +<listitem +><para +>Pour finir, tous les programmes devraient avoir un manuel. Un manuel s'affiche en principe dans <application +>KHelpCenter</application +> en activant le menu <guimenu +>Aide</guimenu +>. Cela signifie qu'une application supplémentaire complète apparaît et distrait l'utilisateur de son travail. En conséquence, la consultation du manuel ne devrait être nécessaire que si d'autres fonctions comme les bulles d'aide et l'aide « Qu'est-ce que c'est ? » ne sont pas suffisantes. Naturellement un manuel a l'avantage de ne pas décrire un seul aspect isolé de l'application dans un contexte plus spacieux. Les manuels de KDE sont écrits à l'aide du langage de marquage <ulink url="http://i18n.kde.org" +>DocBook</ulink +>. </para +></listitem> + +</itemizedlist> + +<para +>Du point de vue du programmeur, Qt fournit un moyen aisé d'utiliser l'API pour l'aide en ligne. Pour affecter une bulle d'aide à un widget, faites appel à la classe <ulink url="kdeapi:qt/QToolTip" +>QToolTip</ulink +>. </para> + +<programlisting +>QToolTip::add(w, i18n("Ce widget ne fait rien")) +</programlisting> + +<para +>Si les barres de menus et les barres d'outils sont créées à l'aide du <ulink url="actionpattern.html" +>motif d'actions</ulink +>, la chaîne employée comme bulle d'aide est dérivée du premier argument du constructeur <ulink url="kdeapi:tdeui/KAction.html" +>KAction</ulink +> : </para> + +<programlisting +>action = new KAction(i18n("&Delete"), "editdelete", + SHIFT+Key_Delete, actionCollection(), "del") +</programlisting> + +<para +>Ici, il est également possible d'affecter un texte qui est affiché dans la barre d'état lorsque l'élément du menu respectif est mis en évidence : </para> + +<programlisting +>action->setStatusText(i18n("Supprime le fichier marqué")) +</programlisting> + +<para +>L'API pour l'aide « Qu'est-ce que c'est ? » est très similaire. Dans les boîtes de dialogue, utilisez le code suivant : </para> + +<programlisting +>QWhatsThis::add(w, i18n("<qt>This demonstrates <b>Qt</b>'s" + " rich text engine.<ul>" + "<li>Foo</li>" + "<li>Bar</li>" + "</ul></qt>")) +</programlisting> + +<para +>Pour les éléments de menu, utilisez </para> + +<programlisting +>action->setWhatsThis(i18n("Supprime le fichier marqué")) +</programlisting> + +<para +>L'invocation de <application +>KHelpCenter</application +> est encapsulée dans la classe <ulink url="kdeapi:tdecore/KApplication" +>KApplication</ulink +>. Pour afficher le manuel de votre application, utilisez simplement </para> + +<programlisting +>kapp->invokeHelp() +</programlisting> + +<para +>Cette commande affiche la première page avec la table des matières. Si vous voulez n'afficher qu'une certaine section du manuel, vous pouvez fournir un argument supplémentaire à <function +>invokeHelp()</function +>, déterminant l'ancrage vers lequel le navigateur saute. </para> + +</sect1> + +</chapter> + + + +<chapter id="components"> +<title +>Composants et services</title> + +<sect1 id="components-services"> +<title +>Services KDE</title> + +<simplesect id="services-whatarekdeservices"> +<title +>Que sont les services KDE ?</title> + +<para +>La notion de <emphasis +>service</emphasis +> est un concept fondamental dans l'architecture modulaire de KDE. Il n'y aucune implémentation technique stricte associée à ce terme — les services peuvent être des modules externes (<emphasis +>plugins</emphasis +>) sous la forme de bibliothèques partagées, ou bien il peut s'agir de programmes contrôlés <emphasis +>via</emphasis +> <ulink url="dcop.html" +>DCOP</ulink +>. En se proclamant être d'un certain <emphasis +>type de service</emphasis +>, un service promet d'implémenter certaines API ou fonctionnalités. En termes C++, on peut penser à un type de service comme à une classe d'abstraction, et à un service comme à une implémentation de cette interface. </para> + +<para +>L'avantage de cette séparation est clair : une application utilisant un type de service n'a pas à en connaître les implémentations possibles. Elle se contente d'employer les API associées au type de service. De cette manière, le service utilisé peut être modifié sans affecter l'application. En outre, l'utilisateur peut configurer les services qu'il préfère pour certaines fonctionnalités. </para> + +<para +>Quelques exemples : </para> + +<itemizedlist> + +<listitem +><para +>Le moteur de rendu HTML utilisé dans <application +>Konqueror</application +> est un composant intégrable qui implémente les types de services <literal +>KParts/ReadOnlyPart</literal +> et <literal +>Navigateur/Affichage</literal +>. </para +></listitem> +<listitem +><para +>Dans <application +>KDevelop</application +> HEAD, la majorité des fonctionnalités est conditionnée en modules externes avec le type de service <literal +>KDevelop/Part</literal +>. Au démarrage, tous les services de ce type sont chargés, de telle sorte que vous puissiez étendre l'EDi d'une manière très souple. </para +></listitem> +<listitem +><para +>Dans l'affichage Icône, <application +>Konqueror</application +> affiche — si activé — des représentations miniatures des images, des pages HTML, des fichiers PDF et texte. Cette capacité peut être étendue. Si vous souhaitez qu'elle affiche des aperçus des images de vos propres fichiers de données avec tel ou tel type MIME, mettez en Å“uvre un service avec un type de service <classname +>ThumbCreator</classname +>. </para +></listitem> + +</itemizedlist> + +<para +>À l'évidence, un service n'est pas seulement caractérisé par les types de services qu'il met en Å“uvre, mais aussi par quelques <emphasis +>propriétés</emphasis +>. Par exemple, un ThumbCreator ne se se contente pas d'implémenter la classe C++ avec le type <classname +>ThumbCreator</classname +>, il a aussi une liste de types MIME dont il est responsable. De la même manière, les « parties » de KDevelop ont comme propriété le langage de programmation qu'elles prennent en charge. Lorsqu'une application demande un type de service, elle peut également dresser la liste des contraintes sur les propriétés du service. Dans l'exemple ci-dessus, quand KDevelop charge les modules externes pour un projet Java, il demande seulement ceux qui ont Java comme propriété de langage de programmation. À cette fin, KDE contient un <emphasis +>courtier</emphasis +> à part entière dans le style de CORBA, doté d'un langage de requête complexe. </para> + +</simplesect> + + +<simplesect id="services-definingservicetypes"> +<title +>Définition des types de services</title> + +<para +>Les nouveaux types de services sont ajoutés en installant une description dans le dossier <filename +>KDEDIR/share/servicetypes</filename +>. Dans un environnement automake, cette tâche s'effectue avec ce fragment de <filename +>Makefile.am</filename +> : </para> + +<programlisting +>kde_servicetypesdir_DATA = tdeveloppart.desktop +EXTRA_DIST = $(kde_servicetypesdir_DATA) +</programlisting> + +<para +>Voici à quoi ressemble la définition <filename +>tdeveloppart.desktop</filename +> d'une « partie » <application +>KDevelop</application +> : </para> + +<programlisting +>[Desktop Entry] +Type=ServiceType +X-KDE-ServiceType=KDevelop/Part +Name=KDevelop Part + +[PropertyDef::X-KDevelop-Scope] +Type=QString + +[PropertyDef::X-KDevelop-ProgrammingLanguages] +Type=QStringList + +[PropertyDef::X-KDevelop-Args] +Type=QString +</programlisting> + +<para +>En plus des lignes habituelles, cet exemple explique comment déclarer qu'un service a certaines propriétés. Chaque définition de propriété correspond à un groupe <literal +>[PropertyDef::name]</literal +> dans le fichier de configuration. Dans ce groupe, la ligne <literal +>Type</literal +> déclare le type de la propriété. Les types possibles sont tout ce qui peut être enregistré dans une <ulink url="kdeapi:qt/QVariant" +>QVariant</ulink +>. </para> + +</simplesect> + + +<simplesect id="services-defininglibraryservices"> +<title +>Définition des services de bibliothèques partagées</title> + +<para +>Les définitions des services sont enregistrées dans le dossier <filename +>KDEDIR/share/services</filename +>: </para> + +<programlisting +>kde_servicesdir_DATA = kdevdoxygen.desktop +EXTRA_DIST = $(kde_servicesdir_DATA) +</programlisting> + +<para +>Le contenu du fichier d'exemple suivant <filename +>kdevdoxygen.desktop</filename +> définit le module externe <literal +>KDevDoxygen</literal +> avec le type de service <literal +>KDevelop/Part</literal +> : </para> + +<programlisting +>[Desktop Entry] +Type=Service +Comment=Doxygen +Name=KDevDoxygen +ServiceTypes=KDevelop/Part +X-KDE-Library=libkdevdoxygen +X-KDevelop-ProgrammingLanguages=C,C++,Java +X-KDevelop-Scope=Project +</programlisting> + +<para +>En plus des déclarations habituelles, <literal +>X-KDE-Library</literal +> est une ligne importante. Elle contient le nom de la bibliothèque libtool (sans l'extension <literal +>.la</literal +>). Elle fixe également (avec le préfixe <literal +>init_</literal +> ajouté au début) le nom du symbole exporté dans la bibliothèque qui retourne une fabrique d'objets. Pour l'exemple ci-dessus, la bibliothèque doit contenir la fonction suivante : </para> + +<programlisting +>extern "C" { + void *init_libkdevdoxygen() + { + return new DoxygenFactory; + } +}; +</programlisting> + +<para +>Le type de la classe de fabrique <classname +>DoxygenFactory</classname +> dépend du type de service spécifique que le service met en Å“uvre. Dans notre exemple d'un module externe KDevelop, la fabrique doit être une <classname +>KDevFactory</classname +> (qui hérite de <classname +>KLibFactory</classname +>). <ulink url="kdeapi:kparts/KParts::Factory" +>KParts::Factory</ulink +> est un autre exemple courant supposé produire des objets <ulink url="kdeapi:kparts/KParts::ReadOnlyPart" +>KParts::ReadOnlyPart</ulink +> ou dans la plupart des cas, la <ulink url="kdeapi:tdecore/KLibFactory" +>KLibFactory</ulink +> générique. </para> + +</simplesect> + + +<simplesect id="services-usinglibraryservices"> +<title +>Utilisation des services de bibliothèques partagées</title> + +<para +>Pour employer un service de bibliothèque partagée dans une application, vous devez obtenir un objet <ulink url="kdeapi:kio/KService.html" +>KService</ulink +> qui le représente. Ce point est étudié dans la <ulink url="mime.html" +>section sur les types MIME</ulink +> (et dans une section consacrée au courtier — à écrire) </para> + +<para +>Une fois l'objet <classname +>KService</classname +> en main, vous pouvez très simplement charger la bibliothèque et obtenir un pointeur vers son objet fabrique : </para> + +<programlisting +>KService *service = ... +QString libName = QFile::encodeName(service->library()); +KLibFactory *factory = KLibLoader::self()->factory(libName); +if (!factory) { + QString name = service->name(); + QString errorMessage = KLibLoader::self()->lastErrorMessage(); + KMessageBox::error(0, i18n("Une erreur de chargement de service % s'est produite1.\n" + "Le diagnostic de libtool est :\n%2") + .arg(name).arg(errorMessage); +} +</programlisting> + +<para +>À partir de ce moment, la suite des opérations dépend à nouveau du type de service. Pour les modules externes génériques, vous créerez des objets avec la méthode <ulink url="kdeapi:tdecore/KLibFactory.html#ref3" +>KLibFactory::create()</ulink +>. Pour KParts, vous devrez transtyper le pointeur de la fabrique vers les KParts::Factory plus spécifiques et employer sa méthode create() : </para> + +<programlisting +>if (factory->inherits("KParts::Factory")) { + KParts::Factory *partFactory = static_cast<KParts::Factory*>(factory); + QObject *obj = partFactory->createPart(parentWidget, widgetName, + parent, name, "KParts::ReadOnlyPart"); + ... +} else { + cout << "Le service n'implémente pas la fabrique correcte" << endl; +} +</programlisting> + +</simplesect> + + +<simplesect id="services-definingdcopservices"> +<title +>Définition des services DCOP</title> + +<para +>Un service DCOP est habituellement mis en Å“uvre comme un programme qui est démarré lorsqu'il est nécessaire. Il entre ensuite dans une boucle et écoute les connexions DCOP. Il peut s'agir d'un programme interactif, mais il se peut aussi qu'il s'exécute complètement ou pour une partie de sa durée de vie comme un démon en arrière-plan, sans que l'utilisateur le remarque. Un exemple de ce type de démon est <literal +>kio_uiserver</literal +>, qui met en Å“uvre une interaction utilisateur comme boîte de dialogue de progression pour la bibliothèque KIO. L'avantage d'un tel démon centralisé dans ce contexte est que &pex; la progression du téléchargement de différents fichiers peut s'afficher dans une seule fenêtre, même si ces téléchargements ont été lancés à partir de différentes applications. </para> + +<para +>Un service DCOP est défini différemment depuis un service de bibliothèque partagée. Bien sûr, il ne spécifie pas une bibliothèque, mais plutôt un exécutable. En outre, les services DCOP ne spécifient pas de ligne ServiceType parce qu'ils sont habituellement démarrés par leur nom. À titre de propriétés additionnelles, il contient deux lignes : </para> + +<para +><literal +>X-DCOP-ServiceType</literal +> spécifie la manière dont le service est démarré. La valeur <literal +>Unique</literal +> indique que le service ne doit pas être démarré plus d'une fois. Cela signifie que si vous tentez de démarrer ce service (&pex; <emphasis +>via</emphasis +> <ulink url="kdeapi:tdecore/KApplication.html#startServiceByName" +> KApplication::startServiceByName()</ulink +>, KDE vérifie s'il est déjà enregistré avec DCOP et utilise le service en cours d'exécution. S'il n'est pas encore enregistré, KDE le démarre et attend jusqu'à ce qu'il soit enregistré. Ainsi, vous pouvez immédiatement envoyer des appels DCOP au service. Dans un tel cas, le service devra être mis en Å“uvre en tant que <ulink url="kdeapi:tdecore/KUniqueApplication.html" +>KUniqueApplication</ulink +>. </para> + +<para +>La valeur <literal +>Multi</literal +> pour <literal +>X-DCOP-ServiceType</literal +> indique que, comme des instances multiples du service peuvent coexister, toute tentative pour démarrer le service créera un autre processus. En dernière possibilité, on peut employer la valeur <literal +>None</literal +>. Dans ce cas, un démarrage du service n'attendra pas jusqu'à ce qu'il soit enregistré avec DCOP. </para> + +<para +><literal +>X-KDE-StartupNotify</literal +> devrait normalement être défini à « false ». Sinon, quand le programme est démarré, la barre de tâches affiche une notification de démarrage ou, en fonction des réglages de l'utilisateur, le curseur est changé. </para> + +<para +>Voici la définition de <literal +>kio_uiserver</literal +> : </para> + +<programlisting +>[Desktop Entry] +Type=Service +Name=kio_uiserver +Exec=kio_uiserver +X-DCOP-ServiceType=Unique +X-KDE-StartupNotify=false +</programlisting> + +</simplesect> + + +<simplesect id="services-usingdcopservices"> +<title +>Utilisation des services DCOP</title> + +<para +>Un service DCOP est démarré avec une des quelques méthodes que contient la classe KApplication : </para> + +<programlisting +>DCOPClient *client = kapp->dcopClient(); +client->attach(); +if (!client->isApplicationRegistered("kio_uiserver")) { + QString error; + if (KApplication::startServiceByName("kio_uiserver", QStringList(), &error)) + cout << "Le démarrage de kioserver a échoué avec le message " << error << endl; +} +... +QByteArray data, replyData; +QCString replyType; +QDataStream arg(data, IO_WriteOnly); +arg << true; +if (!client->call("kio_uiserver", "UIServer", "setListMode(bool)", + data, replyType, replyData)) + cout << "L'appel à kio_uiserver a échoué" << endl; +... +</programlisting> + +<para +>Notez que l'exemple d'un appel DCOP donné utilise ici la mise en ordre explicite des arguments. Vous serez souvent amené à employer de préférence un élément de remplacement généré par dcopidl2cpp parce qu'il est plus simple et moins sujet aux erreurs. </para> + +<para +>Dans l'exemple donné ici, le service a été démarré « par nom », &cad; que le premier argument vers <function +>KApplication::startServiceByName()</function +> est le nom qui apparaît dans la ligne <literal +>Name</literal +> du fichier desktop. Une alternative consiste à utiliser <function +>KApplication::startServiceByDesktopName()</function +>, qui prend le nom de fichier de son fichier desktop comme argument, &cad; dans ce cas, <literal +>"kio_uiserver.desktop"</literal +>. </para> + +<para +>Tous ces appels prennent une liste d'URL comme deuxième argument, fourni au service sur la ligne de commande. Le troisième argument est un pointeur vers une <classname +>QString</classname +>. Si le démarrage du service échoue, cet argument devient un message d'erreur traduit. </para> + +</simplesect> + +</sect1> + + +<sect1 id="components-mime"> +<title +>Types MIME</title> + +<simplesect id="mime-whataremimetypes"> +<title +>Que sont les types MIME ?</title> + +<para +>Les types MIME servent à décrire le type de contenu de blocs de fichiers ou de données. Au départ, ils ont été introduits afin d'autoriser l'envoi des images ou des fichiers son &etc; par courrier électronique (MIME signifie « Multipurpose Internet Mail Extensions », extensions multimédia de messagerie Internet). Plus tard, les navigateurs ont également fait appel à ce système pour déterminer comment présenter à l'utilisateur les données envoyées par un serveur web. Par exemple, une page HTML a un type MIME « text/html », un fichier PostScript « application/postscript ». Dans KDE, ce concept s'emploie à divers endroits : </para> + +<itemizedlist> + +<listitem +><para +>Dans l'affichage Icône de <application +>Konqueror</application +>, les fichiers sont représentés par des icônes. Chaque type MIME a une certaine icône associée illustrée ici. </para +></listitem> + +<listitem +><para +>Quand vous cliquez sur l'icône d'un fichier ou le nom d'un fichier dans <application +>Konqueror</application +>, soit le fichier s'affiche dans une vue intégrée, soit une application associée au type du fichier est ouverte. </para +></listitem> + +<listitem +><para +>Quand vous faites un glisser-déposer de certaines données d'une application à l'autre (ou au sein de la même application), la cible de dépôt peut choisir de n'accepter que certains types de données. De surcroît, elle gérera les données images différemment des données textuelles. </para +></listitem> + +<listitem +><para +>Les données du presse-papiers ont un type MIME. Traditionnellement, les programmes X ne gèrent que les pixmaps ou les textes, mais avec Qt, il n'y a aucune restriction sur le type des données. </para +></listitem> + +</itemizedlist> + +<para +>À la lumière des exemples précédents, il est clair que la gestion MIME est un problème complexe. Tout d'abord, il est nécessaire d'établir une correspondance depuis les noms des fichiers vers les types MIME. KDE franchit une étape supplémentaire en permettant même au contenu des fichiers d'être mis en correspondance vers les types MIME, pour les cas où le nom du fichier n'est pas disponible. En second lieu, il est nécessaire de mettre en correspondance les types MIME vers les applications ou les bibliothèques qui peuvent afficher ou modifier un fichier avec un certain type ou bien en créer une image miniature. </para> + +<para +>Il y a diverses API pour découvrir le type MIME des données ou des fichiers. En général, vous devez arriver à un certain compromis vitesse/fiabilité. Cherchez le type d'un fichier en n'examinant que son nom de fichier (&cad; dans la plupart des cas, l'extension du nom du fichier). Par exemple, un fichier <filename +>foo.jpg</filename +> est normalement « image/jpeg ». Dans les cas où l'extension est retirée, ce n'est pas sans risque et vous devez vraiment vérifier le contenu du fichier. Cette opération prend assurément plus de temps, en particulier pour les fichiers qu'il faut télécharger <emphasis +>via</emphasis +> HTTP au préalable. La méthode basée sur le contenu dépend du fichier <filename +>KDEDIR/share/mimelnk/magic</filename +> et est par conséquent difficile à étendre. Mais en général, les informations sur le type MIME peuvent être aisément mises à la disposition du système en installant un fichier <literal +>.desktop</literal +> : il est efficacement et commodément accessible grâce aux bibliothèques KDE. </para> + +</simplesect> + + +<simplesect id="mime-definingmimetypes"> +<title +>Définition des types MIME</title> + +<para +>Définissons un type <literal +>« application/x-foo »</literal +> pour notre nouveau programme <application +>foobar</application +>. À cette fin, vous devez écrire un fichier <filename +>foo.desktop</filename +> et l'installer dans <filename +>KDEDIR/share/mimelnk/application</filename +>. (Il s'agit de l'emplacement habituel, qui peut différer entre les distributions). Cette opération peut s'effectuer en ajoutant les lignes suivantes au <filename +>Makefile.am</filename +> : </para> + +<programlisting +>mimedir = $(kde_mimedir)/application +mime_DATA = foo.desktop +EXTRA_DIST = $(mime_DATA) +</programlisting> + +<para +>Voici à quoi devrait ressembler le fichier <filename +>foo.desktop</filename +> : </para> + +<programlisting +>[Desktop Entry] +Type=MimeType +MimeType=application/x-foo +Icon=fooicon +Patterns=*.foo; +DefaultApp=foobar +Comment[fr]=Fichier de données Foo +Comment[en]=Foo Data File +</programlisting> + +<para +>La ligne <literal +>« Comment »</literal +> est supposée être traduite. Du fait que le fichier <filename +>.desktop</filename +> spécifie une icône, installez aussi une icône <filename +>fooicon.png</filename +>, qui représente le fichier, &pex; dans <application +>Konqueror</application +>. </para> + +<para +>Dans les bibliothèques KDE, un tel type de définition est mis en correspondance vers une instance de la classe <ulink url="kdeapi:kio/KMimeType.html" +>KMimeType</ulink +>. Utilisez-la, comme dans l'exemple suivant : </para> + +<programlisting +>KMimeType::Ptr type = KMimeType::mimeType("application/x-foo"); +cout << "Type: " << type->name() < endl; +cout << "Icon: " << type->icon() < endl; +cout << "Comment: " << type->icon() < endl; +QStringList patterns = type->patterns(); +QStringList::ConstIterator it; +for (it = patterns.begin(); it != patterns.end(); ++it) + cout << "Motif : " << (*it) << endl; +</programlisting> + +</simplesect> + + +<simplesect id="mime-determiningmimetypes"> +<title +>Détermination du type MIME des données</title> + +<para +>La méthode la plus rapide pour déterminer le type d'un fichier est <function +>KMimeType::findByURL()</function +>. Celle-ci cherche la chaîne d'URL et, le plus souvent, détermine le type à partir de l'extension. Pour certains protocoles (&pex;, http, man, info), ce mécanisme n'est pas employé. Par exemple, les scripts CGI sur les serveurs web écrits en Perl ont souvent l'extension <literal +>.pl</literal +> indiquant un type <literal +>"text/x-perl"</literal +>. Toutefois, le fichier que livre le serveur est la sortie de ce script, qui est normalement du HTML. Pour un tel cas, <function +>KMimeType::findByURL()</function +> retourne le type MIME <literal +>"application/octet-stream"</literal +> (disponible grâce à <function +>KMimeType::defaultMimeType()</function +>), indiquant qu'il est impossible de découvrir le type. </para> + +<programlisting +>KMimeType::Ptr type = KMimeType::findByURL("/home/bernd/foobar.jpg"); +if (type->name() == KMimeType::defaultMimeType()) + cout << "Impossible de découvrir le type" << endl; +else + cout << "Type : " << type->name() << endl; +</programlisting> + +<para +>(cette méthode a quelques arguments supplémentaires, mais comme ils ne sont pas documentés, ignorons-les.) </para> + +<para +>Vous pouvez être amené à trouver un type MIME à partir du contenu du fichier au lieu du nom du fichier. Ce procédé est plus fiable mais aussi plus lent, puisqu'il exige la lecture d'une partie du fichier. Pour ce faire, faites appel à la classe <ulink url="kdeapi:kio/KMimeMagic.html" +>KMimeMagic</ulink +> qui gère différemment les erreurs : </para> + +<programlisting +>KMimeMagicResult *result = KMimeMagic::self()->findFileType("/home/bernd/foobar.jpg"); +if (!result || !result->isValid()) + cout << "Impossible de découvrir le type" << endl; +else + cout << "Type : " << result->mimeType() << endl; +</programlisting> + +<para +>Comme variante de cette fonction, vous pouvez aussi déterminer le type d'un bloc de mémoire. Elle est &pex; utilisée dans <application +>Kate</application +> pour trouver le mode de coloration syntaxique : </para> + +<programlisting +>QByteArray array; +... +KMimeMagicResult *result = KMimeMagic::self()->findBufferType(array); +if (!result || !result->isValid()) + cout << "Impossible de découvrir le type" << endl; +else + cout << "Type : " << result->mimeType() << endl; +</programlisting> + +<para +>Bien sûr, même KMimeMagic n'est capable de déterminer un type de fichier qu'à partir du contenu d'un fichier local. Pour les fichiers distants, il y a une autre possibilité : </para> + +<programlisting +>KURL url("http://developer.kde.org/favicon.ico"); +QString type = KIO::NetAccess::mimetype(url); +if (type == KMimeType::defaultMimeType()) + cout << "Impossible de découvrir le type" << endl; +else + cout << "Type : " << type << endl; +</programlisting> + +<para +>Cette fonction démarre une tâche KIO pour télécharger une partie du fichier et le vérifie. Notez qu'elle peut être très lente et bloque le programme. Normalement, vous ne l'utiliserez que si <function +>KMimeType::findByURL()</function +> a retourné <literal +>"application/octet-stream"</literal +>. </para> + +<para +>Par ailleurs, si vous ne voulez pas bloquer votre application, vous pouvez également démarrer explicitement la tâche KIO et vous connecter à quelques-uns de ses signaux : </para> + +<programlisting +>void FooClass::findType() +{ + KURL url("http://developer.kde.org/favicon.ico"); + KIO::MimetypeJob *job = KIO::mimetype(url); + connect( job, SIGNAL(result(KIO::Job*)), + this, SLOT(mimeResult(KIO::Job*)) ); +} + +void FooClass::mimeResult(KIO::Job *job) +{ + if (job->error()) + job->showErrorDialog(); + else + cout << "MIME type: " << ((KIO::MimetypeJob *)job)->mimetype() << endl; +} +</programlisting> + +</simplesect> + + +<simplesect id="mime-mappingmimetypes"> +<title +>Mise en correspondance d'un type MIME vers une application ou un service</title> + +<para +>Lorsqu'une application est installée, elle prépare un fichier <literal +>.desktop</literal +> contenant une liste de types MIME que cette application peut charger. De la même manière, les composants comme KParts rendent cette information disponible au moyen de leurs fichiers <literal +>.desktop</literal +> de services. Il y a donc en général plusieurs programmes et composants pour traiter un type MIME donné. Vous pouvez obtenir ce genre de liste depuis la classe <classname +>KServiceTypeProfile</classname +> : </para> + +<programlisting +>KService::OfferList offers = KServiceTypeProfile::offers("text/html", "Application"); +KService::OfferList::ConstIterator it; +for (it = offers.begin(); it != offers.end(); ++it) { + KService::Ptr service = (*it); + cout << "Nom : " << service->name() << endl; +} +</programlisting> + +<para +>La valeur de retour de cette fonction est une liste d'offres de services. Un objet <classname +>KServiceOffer</classname +> conditionne un KService::Ptr avec un numéro de préférence. La liste que <function +>KServiceTypeProfile::offers()</function +> retourne est numérotée dans l'ordre des préférences de l'utilisateur. Ce dernier peut modifier ce comportement en appelant <command +>"keditfiletype text/html"</command +> ou en choisissant <guimenuitem +>Modifier le type du fichier</guimenuitem +> dans le menu contextuel de <application +>Konqueror</application +> sur un fichier HTML. </para> + +<para +>Dans l'exemple ci-dessus, une liste d'offres des applications prenant en charge <literal +>text/html</literal +> a été demandée. Celle-ci contient — entre autres — des éditeurs HTML comme <application +>Quanta Plus</application +>. Vous pouvez également remplacer le second argument <literal +>"Application"</literal +> par <literal +>"KParts::ReadOnlyPart"</literal +>. Dans ce cas, vous obtenez une liste des composants intégrables pour présenter du contenu HTML, &pex;, KHTML. </para> + +<para +>La plupart du temps, la liste de toutes les offres de services n'a aucun intérêt pour une combinaison type MIME et type de service. Il y a une fonction de confort qui vous donne uniquement l'offre de service ayant la plus grande préférence : </para> + +<programlisting +>KService::Ptr offer = KServiceTypeProfile::preferredService("text/html", "Application"); +if (offer) + cout << "Nom : " << service->name() << endl; +else + cout << "Aucun service approprié n'a été trouvé" << endl; +</programlisting> + +<para +>Pour des requêtes encore plus complexes, il y a un <ulink url="kdeapi:kio/KTrader.html" +>courtier</ulink +> à part entière dans le style de CORBA. </para> + +<para +>Pour exécuter un service d'application avec quelques URL, utilisez <ulink url="kdeapi:kio/KRun.html" +>KRun</ulink +> : </para> + +<programlisting +>KURL::List urlList; +urlList << "http://www.ietf.org/rfc/rfc1341.txt?number=1341"; +urlList << "http://www.ietf.org/rfc/rfc2046.txt?number=2046"; +KRun::run(offer.service(), urlList); +</programlisting> + +</simplesect> + + +<simplesect id="mime-misc"> +<title +>Divers</title> + +<para +>Dans cette section, nous souhaitons répertorier quelques API qui sont plus ou moins liées à l'étude précédente. </para> + +<para +>Obtention d'une icône pour une URL. Celle-ci cherche le type de l'URL et retourne l'icône associée. </para> + +<programlisting +>KURL url("ftp://ftp.kde.org/pub/incoming/wibble.c"); +QString icon = KMimeType::iconForURL(url); +</programlisting> + +<para +>Exécution d'une URL. Celle-ci cherche le type de l'URL et démarre le programme préféré de l'utilisateur et associé à ce type. </para> + +<programlisting +>KURL url("http://dot.kde.org"); +new KRun(url); +</programlisting> + +</simplesect> + +</sect1> + + +<sect1 id="nettransparency"> +<title +>Transparence réseau</title> + +<simplesect id="nettransparency-intro"> +<title +>Introduction</title> + +<para +>À l'ère du World Wide Web, il est d'une importance capitale que les applications bureautiques puissent accéder aux ressources sur l'internet : elles devront être capables de télécharger des fichiers sur un serveur web, écrire des fichiers sur un serveur ftp ou lire des messages sur un serveur de messagerie. Souvent, la capacité à accéder à des fichiers quel que soit leur emplacement est appelée <emphasis +>transparence réseau</emphasis +>. </para> + +<para +>Dans le passé, différentes approches de ces objectifs ont été mises en Å“uvre. L'ancien système de fichiers NFS est une tentative pour implémenter la transparence réseau au niveau de l'API POSIX. Bien que cette approche fonctionne parfaitement dans des réseaux locaux,étroitement couplés, elle ne convient pas pour les ressources dont l'accès manque de fiabilité et souffre d'une éventuelle lenteur. Ici, l'<emphasis +>asynchronicité</emphasis +> est importante. Pendant que vous attendez que votre navigateur web télécharge une page, l'interface utilisateur ne devra pas se bloquer. De plus, le rendu de la page ne devrait pas commencer quand la page est complètement disponible, mais devrait être régulièrement actualisé au fur et à mesure que les données arrivent. </para> + +<para +>Dans les bibliothèques KDE, la transparence réseau est mise en Å“uvre dans l'API KIO. Le concept central de cette architecture est une <emphasis +>tâche</emphasis +> d'E/S. Une tâche peut copier ou supprimer des fichiers, ou toute autre chose similaire. Dès lors qu'une tâche est démarrée, elle s'exécute en arrière-plan et ne bloque pas l'application. Toute communication depuis la tâche à nouveau vers l'application — comme la remise des données ou les informations de progression — s'effectue alors qu'elle est intégrée à la boucle d'événement Qt. </para> + +<para +>L'opération d'arrière-plan est réalisée en démarrant les <emphasis +>ioslaves</emphasis +> pour exécuter certaines tâches. Les « ioslaves » sont démarrés en tant que processus séparés et communiquent avec eux grâce à des sockets du domaine UNIX. De cette manière, aucun traitement multiprocessus (<emphasis +>multi-threading</emphasis +>) n'est nécessaire et les esclaves instables ne peuvent pas « planter » l'application qui les utilise. </para> + +<para +>Les emplacements des fichiers sont exprimés par les URL bien connues. Mais dans KDE, les URL ne se contentent pas d'étendre la plage des fichiers adressables au-delà du système de fichiers local. Ce dernier va aussi dans la direction opposée — &pex;, vous pouvez explorer des archives « tar ». Ceci est réalisable grâce à l'imbrication des URL. Par exemple, un fichier dans une archive tar sur un serveur http pourrait avoir l'URL </para> + +<programlisting +>http://www-com.physik.hu-berlin.de/~bernd/article.tgz#tar:/paper.tex +</programlisting> + +</simplesect> + + +<simplesect id="nettransparency-usingkio"> +<title +>Utilisation de KIO</title> + +<para +>Dans la majorité des cas, les tâches sont créées en appelant des fonctions dans l'espace de noms KIO. Celles-ci prennent une ou deux URL comme arguments, voire d'autres paramètres nécessaires. Lorsque la tâche est terminée, elle émet le signal <literal +>result(KIO::Job*)</literal +>. Une fois ce signal émis, la tâche se supprime. Ainsi, voici à quoi ressemble un cas classique d'utilisation : </para> + +<programlisting +>void FooClass::makeDirectory() +{ + SimpleJob *job = KIO::mkdir(KURL("file:/home/bernd/kiodir")); + connect( job, SIGNAL(result(KIO::Job*)), + this, SLOT(mkdirResult(KIO::Job*)) ); +} + +void FooClass::mkdirResult(KIO::Job *job) +{ + if (job->error()) + job->showErrorDialog(); + else + cout << "mkdir a bien fonctionné" << endl; +} +</programlisting> + +<para +>Selon le type de tâche, vous pouvez également vous connecter à d'autres signaux. </para> + +<para +>Voici une vue d'ensemble des fonctions possibles : </para> + +<variablelist> + +<varlistentry +><term +>KIO::mkdir(const KURL &url, int permission)</term> +<listitem +><para +>Crée un dossier, optionnellement avec certaines permissions. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::rmdir(const KURL &url)</term> +<listitem +><para +>Supprime un dossier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::chmod(const KURL &url, int permissions)</term> +<listitem +><para +>Change les permissions d'un fichier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::rename(const KURL &src, const KURL &dest, bool overwrite)</term> +<listitem +><para +>Renomme un fichier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::symlink(const QString &target, const KURL &dest, bool overwrite, bool showProgressInfo)</term> +<listitem +><para +>Crée un lien symbolique. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::stat(const KURL &url, bool showProgressInfo)</term> +<listitem +><para +>Découvre certaines informations sur le fichier, comme sa taille, l'heure de sa modification et ses permissions. Les informations peuvent être obtenues à partir de KIO::StatJob::statResult() lorsque la tâche est terminée. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::get(const KURL &url, bool reload, bool showProgressInfo)</term> +<listitem +><para +>Transfère des données depuis une URL. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::put(const KURL &url, int permissions, bool overwrite, bool resume, bool showProgressInfo)</term> +<listitem +><para +>Transfère des données vers une URL. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::http_post(const KURL &url, const QByteArray &data, bool showProgressInfo)</term> +<listitem +><para +>Poste des données. Spécial pour HTTP. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::mimetype(const KURL &url, bool showProgressInfo)</term> +<listitem +><para +>Essaie de trouver le type MIME de l'URL. Le type peut être obtenu depuis KIO::MimetypeJob::mimetype() lorsque la tâche est terminée. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::file_copy(const KURL &src, const KURL &dest, int permissions, bool overwrite, bool resume, bool showProgressInfo)</term> +<listitem +><para +>Copie un seul fichier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::file_move(const KURL &src, const KURL &dest, int permissions, bool overwrite, bool resume, bool showProgressInfo)</term> +<listitem +><para +>Renomme ou déplace un seul fichier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::file_delete(const KURL &url, bool showProgressInfo)</term> +<listitem +><para +>Supprime un seul fichier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::listDir(const KURL &url, bool showProgressInfo)</term> +<listitem +><para +>Répertorie le contenu d'un dossier. Chaque fois que de nouveaux éléments sont connus, le signal KIO::ListJob::entries() est émis. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::listRecursive(const KURL &url, bool showProgressInfo)</term> +<listitem +><para +>Similaire à la fonction listDir(), mais celle-ci est récursive. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::copy(const KURL &src, const KURL &dest, bool showProgressInfo)</term> +<listitem +><para +>Copie un fichier ou un dossier. Les dossiers sont copiés récursivement. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::move(const KURL &src, const KURL &dest, bool showProgressInfo)</term> +<listitem +><para +>Déplace ou renomme un fichier ou un dossier. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::del(const KURL &src, bool shred, bool showProgressInfo)</term> +<listitem +><para +>Supprime un fichier ou un dossier. </para +></listitem> +</varlistentry> + +</variablelist> + +</simplesect> + + +<simplesect id="nettransparency-direntries"> +<title +>Éléments des dossiers</title> + +<para +>Les tâches KIO::stat() et KIO::listDir() retournent toutes deux leur résultat sous la forme d'un type UDSEntry, UDSEntryList, respectivement. Cette dernière est définie en tant que QValueList<UDSEntry>. L'acronyme UDS signifie « Universal Directory Service » (service universel de dossiers). Le principe sous-jacent est que l'élément du dossier ne transporte que les informations qu'un ioslave peut fournir, sans plus. Par exemple, l'esclave http ne fournit aucune information sur les droits d'accès ou sur les propriétaires des fichiers. En revanche, un UDSEntry est une liste de UDSAtoms. Chaque atome fournit une partie spécifique d'information. Il se compose d'un type enregistré dans m_uds et soit d'une valeur entière dans m_long, soit d'une valeur chaîne dans m_str, en fonction du type. </para> + +<para +>Les types suivants sont actuellement définis : </para> + +<itemizedlist> + +<listitem +><para +>UDS_SIZE (integer) — taille du fichier. </para +></listitem> + +<listitem +><para +>UDS_USER (string) — utilisateur propriétaire du fichier. </para +></listitem> + +<listitem +><para +>UDS_GROUP (string) — groupe propriétaire du fichier. </para +></listitem> + +<listitem +><para +>UDS_NAME (string) — nom du fichier. </para +></listitem> + +<listitem +><para +>UDS_ACCESS (integer) — droits d'accès du fichier, comme &pex; enregistrés par la fonction libc stat() dans le champ st_mode. </para +></listitem> + +<listitem +><para +>UDS_FILE_TYPE (integer) — le type du fichier, comme &pex; enregistré par stat() dans le champ st_mode. Par conséquent, vous pouvez faire appel aux macros libc habituelles comme S_ISDIR pour tester cette valeur. Notez que les données fournies par les ioslaves correspondent à stat(), non lstat(), &cad; que dans le cas de liens symboliques, le type du fichier est ici le type du fichier sur lequel pointe le lien, non le lien lui-même. </para +></listitem> + +<listitem +><para +>UDS_LINK_DEST (string) — dans le cas d'un lien symbolique, le nom du fichier sur lequel pointe le fichier. </para +></listitem> + +<listitem +><para +>UDS_MODIFICATION_TIME (integer) — l'heure (comme dans le type time_t) de la dernière modification du fichier, comme &pex; enregistré par stat() dans le champ st_mtime. </para +></listitem> + +<listitem +><para +>UDS_ACCESS_TIME (integer) — l'heure du dernier accès au fichier, comme &pex; enregistré par stat() dans le champ st_atime. </para +></listitem> + +<listitem +><para +>UDS_CREATION_TIME (integer) — l'heure à laquelle le fichier a été créé, comme &pex; enregistré par stat() dans le champ st_ctime. </para +></listitem> + +<listitem +><para +>UDS_URL (string) — fournit l'URL d'un fichier, s'il ne s'agit pas simplement de la concaténation de l'URL d'un dossier et d'un nom de fichier. </para +></listitem> + +<listitem +><para +>UDS_MIME_TYPE (string) — type MIME du fichier </para +></listitem> + +<listitem +><para +>UDS_GUESSED_MIME_TYPE (string) — type MIME du fichier comme le devine l'esclave. La différence avec le type précédent est que celui fourni ici ne devra pas être considéré comme fiable (parce que le fait de le déterminer d'une manière sûre serait trop coûteux). Par exemple, la classe KRun vérifie explicitement le type MIME s'il n'a pas d'informations dignes de foi. </para +></listitem> + +</itemizedlist> + +<para +>Bien que la manière d'enregister des informations sur les fichiers dans un <classname +>UDSEntry</classname +> soit souple et pratique du point de vue de l'ioslave, son utilisation pour le programmeur d'applications est fastidieuse. Par exemple, pour découvrir le type MIME du fichier, vous devez itérer sur tous les atomes et tester si <literal +>m_uds</literal +> est <literal +>UDS_MIME_TYPE</literal +>. Heureusement il y a une API beaucoup plus facile à utiliser : la classe <classname +>KFileItem</classname +>. </para> + +</simplesect> + + +<simplesect id="nettransparency-syncuse"> +<title +>Utilisation synchrone</title> + +<para +>Souvent, l'API asynchrone de KIO est trop complexe à employer et donc, la mise en Å“uvre de l'asynchronicité complète n'est pas une priorité. Par exemple, dans un programme qui ne peut gérer qu'un fichier document à la fois, il y a de toute façon très peu de choses à faire pendant que le programme télécharge un fichier. Pour ces cas peu complexes, il y a une API beaucoup plus simple, sous la forme d'un ensemble de fonctions statiques dans KIO::NetAccess. Par exemple, pour copier un fichier, utilisez </para> + +<programlisting +>KURL source, target; +source = ...; +target = ... +KIO::NetAccess::copy(source, target); +</programlisting> + +<para +>La fonction revient à l'état antérieur une fois que le processus complet de copie est terminé. De plus, cette méthode fournit une boîte de dialogue de progression et s'assure que les processus d'application retracent les événements. </para> + +<para +>La fonction <function +>download()</function +>, en combinaison avec <function +>removeTempFile()</function +> est particulièrement intéressante. La première télécharge un fichier depuis l'URL donnée et l'enregistre dans un fichier temporaire avec un nom unique. Ce nom est enregistré dans le second argument. <emphasis +>Si</emphasis +> l'URL est locale, le fichier n'est pas téléchargé et, en revanche, le second argument est défini au nom du fichier local. La fonction <function +>removeTempFile()</function +> supprime le fichier donné par son argument si le fichier est le résultat d'un téléchargement précédent. Si tel n'est pas le cas, elle ne fait rien. Ainsi, le fragment de code suivant est un moyen très aisé d'utiliser le chargement des fichiers, quel que soit leur emplacement : </para> + +<programlisting +>KURL url; +url = ...; +QString tempFile; +if (KIO::NetAccess::download(url, tempFile) { + // load the file with the name tempFile + KIO::NetAccess::removeTempFile(tempFile); +} +</programlisting> + +</simplesect> + + +<simplesect id="nettransparency-metadata"> +<title +>Métadonnées</title> + +<para +>Comme on peut le voir plus haut, l'interface aux tâches IO est assez abstraite et ne prend en considération aucun échange d'informations entre l'application et l'<emphasis +>ioslave</emphasis +> spécifique au protocole : ce n'est pas toujours approprié. Par exemple, vous pouvez fournir certains paramètres à l'esclave HTTP pour contrôler le comportement de sa mise en cache ou envoyer un groupe de cookies avec la requête. Le concept de métadonnées a été introduit pour satisfaire cette exigence. Lorsqu'une tâche est créée, vous pouvez la configurer en lui ajoutant des métadonnées. Chaque élément de métadonnées se compose d'une paire clé/valeur. Par exemple, pour empêcher l'esclave HTTP de charger une page web depuis son cache, utilisez : </para> + +<programlisting +>void FooClass::reloadPage() +{ + KURL url("http://www.tdevelop.org/index.html"); + KIO::TransferJob *job = KIO::get(url, true, false); + job->addMetaData("cache", "reload"); + ... +} +</programlisting> + +<para +>La même technique s'emploie dans l'autre sens, &cad; pour la communication depuis l'esclave vers l'application. La méhode <function +>Job::queryMetaData()</function +> demande la valeur de la clé remise par l'esclave. Pour l'esclave HTTP, un tel exemple est la clé <literal +>« modified »</literal +>, qui contient une représentation sous forme de chaîne de la date de la dernière modification de la page web. Voici un exemple de la manière dont vous pouvez l'utiliser : </para> + +<programlisting +>void FooClass::printModifiedDate() +{ + KURL url("http://developer.kde.org/documentation/kde2arch/index.html"); + KIO::TransferJob *job = KIO::get(url, true, false); + connect( job, SIGNAL(result(KIO::Job*)), + this, SLOT(transferResult(KIO::Job*)) ); +} + +void FooClass::transferResult(KIO::Job *job) +{ + QString mimetype; + if (job->error()) + job->showErrorDialog(); + else { + KIO::TransferJob *transferJob = (KIO::TransferJob*) job; + QString modified = transferJob->queryMetaData("modified"); + cout << "Dernière modification : " << modified << endl; +} +</programlisting> + +</simplesect> + + +<simplesect id="nettransparency-scheduling"> +<title +>Planification</title> + +<para +>Lorsque vous employez l'API KIO, vous n'avez d'ordinaire pas à vous préoccuper des détails du démarrage des IOslaves et de la communication avec ces derniers. Le cas normal d'utilisation est de démarrer une tâche et avec certains paramètres, ainsi que de gérer les signaux que la tâche émet. </para> + +<para +>En coulisses, le scénario est beaucoup plus compliqué. Dès que vous créez une tâche, elle est mise en file d'attente. Quand l'application revient vers la boucle d'événement, KIO alloue les processus esclaves pour les tâches contenues dans la file d'attente. Pour la première tâche démarrée, c'est trivial : un IOslave est démarré pour le protocole approprié. Toutefois, une fois que la tâche (comme un téléchargement depuis un serveur http) est terminée, elle n'est pas tuée immédiatement. Elle est au contraire placée dans un groupe d'esclaves inactifs et tuée après un certain temps d'inactivité (le plus souvent, 3 minutes). Si une nouvelle requête pour le même protocole et le même hôte arrive, l'esclave est réutilisé. L'avantage évident est que, pour une série de tâches concernant le même hôte, le coût nécessaire à la création de nouveaux processus et éventuellement à l'obtention d'une procédure d'authentification est économisé. </para> + +<para +>Naturellement, la réutilisation n'est possible que si l'esclave existant a déjà terminé sa tâche précédente. Quand une nouvelle requête arrive alors qu'un processus esclave existant s'exécute encore, un nouveau processus doit être démarré et utilisé. Lors de l'usage de l'API dans les exemples précédents, il n'y a aucune limite à la création de nouveaux processus esclaves : si vous démarrez une série consécutive de téléchargements pour 20 fichiers différents, alors KIO démarre 20 processus esclaves. Ce dispositif visant à affecter des esclaves aux tâches est appelé <emphasis +>direct</emphasis +>. Ce n'est pas toujours celui qui est le plus approprié, car il peut exiger beaucoup de mémoire et placer une charge élevée à la fois sur les machines clientes et serveurs. </para> + +<para +>Il y a donc un autre moyen : <emphasis +>planifier</emphasis +> les tâches. Si vous le faites, seul un nombre limité (actuellement, 3) de processus esclaves pour un protocole sera créé. Si vous créez davantage de tâches, elles sont placées dans une file d'attente et traitées lorsqu'un processus esclave devient inactif. Voici comment s'effectue l'opération : </para> + +<programlisting +>KURL url("http://developer.kde.org/documentation/kde2arch/index.html"); +KIO::TransferJob *job = KIO::get(url, true, false); +KIO::Scheduler::scheduleJob(job); +</programlisting> + +<para +>Une troisième possibilité est <emphasis +>orientée connexion</emphasis +>. Par exemple, pour l'esclave IMAP, il n'est pas judicieux de démarrer de multiples processus pour le même serveur. Une seule connexion IMAP à la fois devra être imposée. Dans ce cas, l'application doit accepter explicitement la notion d'esclave. Il faut qu'elle désalloue un esclave pour une certaine connexion puis qu'elle affecte toutes les tâches qui obtiendront la même connexion au même esclave. Cette opération peut à nouveau être réalisée à l'aide du KIO::Scheduler : </para> + +<programlisting +>KURL baseUrl("imap://bernd@albert.physik.hu-berlin.de"); +KIO::Slave *slave = KIO::Scheduler::getConnectedSlave(baseUrl); + +KIO::TransferJob *job1 = KIO::get(KURL(baseUrl, "/INBOX;UID=79374")); +KIO::Scheduler::assignJobToSlave(slave, job1); + +KIO::TransferJob *job2 = KIO::get(KURL(baseUrl, "/INBOX;UID=86793")); +KIO::Scheduler::assignJobToSlave(slave, job2); + +... + +KIO::Scheduler::disconnectSlave(slave); +</programlisting> + +<para +>Vous pouvez déconnecter l'esclave uniquement après que toutes les tâches qui lui sont affectées sont garanties être terminées. </para> + +</simplesect> + + +<simplesect id="nettransparency-definingslaves"> +<title +>Définition d'un ioslave</title> + +<para +>Dans ce qui suit, nous verrons comment vous pouvez ajouter un nouveau ioslave au système. Par analogie avec les services, les nouveaux ioslaves sont annoncés au système en installant un petit fichier de configuration. Le fragment de Makefile.am suivant installa le protocole ftp : </para> + +<programlisting +>protocoldir = $(kde_servicesdir) +protocol_DATA = ftp.protocol +EXTRA_DIST = $(mime_DATA) +</programlisting> + +<para +>Voici le contenu du fichier ftp.protocol : </para> + +<programlisting +>[Protocol] +exec=kio_ftp +protocol=ftp +input=none +output=filesystem +listing=Name,Type,Size,Date,Access,Owner,Group,Link, +reading=true +writing=true +makedir=true +deleting=true +Icon=ftp +</programlisting> + +<para +>L'élément <literal +>« protocol »</literal +> définit de quel protocole cet esclave est responsable. <literal +>« exec »</literal +> est (contrairement à ce que vous pourriez attendre naïvement), le nom de la bibliothèque qui implémente l'esclave. Quand ce dernier est supposé démarrer, l'exécutable <command +>« tdeinit »</command +> est démarré, lequel à son tour charge cette bibliothèque dans son espace d'adressage. Donc, en pratique, vous pouvez imaginer l'esclave en cours d'exécution comme un processus séparé, bien qu'il soit implémenté en tant que bibliothèque. L'avantage de ce mécanisme est qu'il économise une grande quantité de mémoire et réduit le temps qu'exige l'éditeur de liens au moment de l'exécution. </para> + +<para +>Les lignes « input » et « output » ne sont pas utilisées actuellement. </para> + +<para +>Dans le fichier <literal +>.protocol</literal +>, les lignes restantes définissent les capacités qu'a l'esclave. En général, les fonctionnalités qu'un esclave doit implémenter sont beaucoup plus simples que celles que l'API KIO fournit pour l'application. La raison à cela est que les tâches complexes sont planifiées pour quelques sous-tâches. Par exemple, pour répertorier un dossier récursivement, une tâche sera démarrée pour le dossier de premier niveau. Puis, pour chaque sous-dossier faisant l'objet d'un rapport, de nouvelles sous-tâches sont démarrées. Dans KIO, un planificateur veille à ce qu'il n'y ait pas trop de tâches actives au même moment. De la même manière, pour copier un fichier au sein d'un protocole qui ne prend pas en charge la copie directement (comme le protocole <literal +>ftp:</literal +>), KIO peut lire le fichier source puis écrire les données sur le fichier de destination. Pour que cela fonctionne, le <literal +>.protocol</literal +> doit annoncer les actions que son esclave prend en charge. </para> + +<para +>Du fait que les esclaves sont chargés à titre de bibliothèques partagées mais constituent des programmes autonomes, l'environnement de leur code paraît un peu différent des modules externes (<emphasis +>plugins</emphasis +>) des bibliothèques partagées normales. La fonction appelée pour démarrer l'esclave est dénommée <function +>kdemain()</function +>. Elle effectue quelques initialisations puis entre dans une boucle d'événement et attend les requêtes de l'application qui l'utilise. Voici à quoi elle ressemble : </para> + +<programlisting +>extern "C" { int kdemain(int argc, char **argv); } + +int kdemain(int argc, char **argv) +{ + KLocale::setMainCatalogue("tdelibs"); + KInstance instance("kio_ftp"); + (void) KGlobal::locale(); + + if (argc != 4) { + fprintf(stderr, "Usage : kio_ftp protocol " + "domain-socket1 domain-socket2\n"); + exit(-1); + } + + FtpSlave slave(argv[2], argv[3]); + slave.dispatchLoop(); + return 0; +} +</programlisting> + +</simplesect> + + +<simplesect id="nettransparency-implementingslaves"> +<title +>Implémentation d'un ioslave</title> + +<para +>Les esclaves sont implémentés en tant que sous-classes de <classname +>KIO::SlaveBase</classname +> (FtpSlave dans l'exemple ci-dessus). Ainsi, les actions répertoriées dans le <literal +>.protocol</literal +> correspondent à certaines fonctions virtuelles dans <classname +>KIO::SlaveBase</classname +> que l'implémentation de l'esclave doit réimplémenter. Voici une liste des actions possibles et des fonctions virtuelles correspondantes : </para> + +<variablelist> + +<varlistentry +><term +>lecture — lit des données depuis une URL</term> +<listitem +><para +>void get(const KURL &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>écriture — écrit des données dans une URL et crée le fichier s'il n'existe pas encore.</term> +<listitem +><para +>void put(const KURL &url, int permissions, bool overwrite, bool resume)</para +></listitem +></varlistentry> + +<varlistentry +><term +>déplacement — renomme un fichier.</term> +<listitem +><para +>void rename(const KURL &src, const KURL &dest, bool overwrite)</para +></listitem +></varlistentry> + +<varlistentry +><term +>suppression — supprime un fichier ou un dossier.</term> +<listitem +><para +>void del(const KURL &url, bool isFile)</para +></listitem +></varlistentry> + +<varlistentry +><term +>listage — répertorie le contenu d'un dossier.</term> +<listitem +><para +>void listDir(const KURL &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>makedir — crée un dossier.</term> +<listitem +><para +>void mkdir(const KURL &url, int permissions)</para +></listitem +></varlistentry> + +</variablelist> + +<para +>En outre, il y a des fonctions réimplémentables non répertoriées dans le fichier <literal +>.protocol</literal +>. Pour ces opérations, KIO détermine automatiquement si elles sont prises en charge ou non (&cad; que l'implémentation par défaut retourne une erreur). </para> + +<variablelist> + +<varlistentry +><term +>Fournit des informations sur un fichier, similaire à la fonction C stat().</term> +<listitem +><para +>void stat(const KURL &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Modifie les droits d'accès d'un fichier.</term> +<listitem +><para +>void chmod(const KURL &url, int permissions)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Détermine le type MIME d'un fichier.</term> +<listitem +><para +>void mimetype(const KURL &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Copie un fichier.</term> +<listitem +><para +>copy(const KURL &url, const KURL &dest, int permissions, bool overwrite)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Crée un lien symbolique.</term> +<listitem +><para +>void symlink(const QString &target, const KURL &dest, bool overwrite)</para +></listitem +></varlistentry> + +</variablelist> + +<para +>Toutes ces implémentations devront se terminer par un ou deux appels : si l'opération a réussi, elles devront appeler <literal +>finished()</literal +>. Si une erreur s'est produite, <literal +>error()</literal +> devra être appelée avec un code d'erreur comme premier argument et une chaîne dans le second. Les codes d'erreur possibles sont répertoriés sous forme d'énumération <type +>KIO::Error</type +>. Le second argument est habituellement l'URL en question. Elle est utilisée &pex; dans <function +>KIO::Job::showErrorDialog()</function +> afin de paramétrer le message d'erreur humainement lisible. </para> + +<para +>Pour les esclaves qui correspondent aux protocoles de réseau, il pourrait être intéressant de réimplémenter la méthode <function +>SlaveBase::setHost()</function +>. Cette dernière est appelée pour indiquer au processus esclave l'hôte et le port, ainsi que le nom d'utilisateur et le mot de passe pour se connecter. En général, les métadonnées définies par l'application peuvent être interrogées par <function +>SlaveBase::metaData()</function +>. Vous pouvez vérifier l'existence des métadonnées d'une certaine clé avec <function +>SlaveBase::hasMetaData()</function +>. </para> + +</simplesect> + + +<simplesect id="nettransparency-communication"> +<title +>Communication à nouveau avec l'application</title> + +<para +>Diverses actions mises en Å“uvre dans un esclave doivent d'une certaine manière communiquer les données en retour à l'application à l'aide du processus esclave : </para> + +<itemizedlist> + +<listitem +><para +><function +>get()</function +> envoie des blocs de données. Pour ce faire, elle utilise <function +>data()</function +>, qui prend un <classname +>QByteArray</classname +> comme argument. Bien sûr, vous n'avez pas besoin d'envoyer toutes les données à la fois. Si vous envoyez un gros fichier, appelez <function +>data()</function +> avec des blocs de données plus petits, de façon à ce que l'application puisse les traiter. Appelez <function +>finished()</function +> quand le transfert est terminé. </para +></listitem> + +<listitem +><para +><function +>listDir()</function +> signale des informations sur les éléments d'un dossier. À cette fin, appelez <function +>listEntries()</function +> avec une <classname +>KIO::UDSEntryList</classname +> comme argument. De manière analogue à <function +>data()</function +>, vous pouvez l'appeler plusieurs fois. Quand vous avez fini, appelez <function +>listEntry()</function +> avec le second argument défini à « true ». Vous pouvez aussi appeler <function +>totalSize()</function +> pour signaler le nombre total des éléments du dossier, s'il est connu. </para +></listitem> + +<listitem +><para +><function +>stat()</function +> signale des informations sur un fichier, comme sa taille, son type MIME, &etc; Ce genre d'informations est conditionné dans une <classname +>KIO::UDSEntry</classname +>, que nous aborderons ci-après. Utilisez <function +>statEntry()</function +> pour envoyer un tel élément à l'application. </para +></listitem> + +<listitem +><para +><function +>mimetype()</function +> appelle <function +>mimeType()</function +> avec un argument chaîne. </para +></listitem> + +<listitem +><para +><function +>get()</function +> et <function +>copy()</function +> peuvent être amenées à fournir des informations sur la progression. Les méthodes <function +>totalSize()</function +>, <function +>processedSize()</function +>, <function +>speed()</function +> s'en chargent. La taille totale et la taille traitée sont signalées sous forme d'octets, la vitesse en octets par seconde. </para +></listitem> + +<listitem +><para +>Vous pouvez envoyer des paires clé/valeur arbitraires de métadonnées avec <function +>setMetaData()</function +>. </para +></listitem> + +</itemizedlist> + +</simplesect> + + +<simplesect id="nettransparency-interacting"> +<title +>Interaction avec l'utilisateur</title> + +<para +>Parfois, un esclave doit interagir avec l'utilisateur. Des exemples incluent les messages d'information, les boîtes de dialogue d'authentification et de confirmation quand un fichier est sur le point d'être écrasé. </para> + +<itemizedlist> + +<listitem +><para +><function +>infoMessage()</function +> — il s'agit d'un message de retour d'informations, comme un message « Retrieving data from <host> » depuis l'esclave http, qui est souvent affiché dans la barre d'état du programme. Côté application, cette méthode correspond au signal <function +>KIO::Job::infoMessage()</function +>. </para +></listitem> + +<listitem +><para +><function +>warning()</function +> — affiche un avertissement dans une boîte de message avec <function +>KMessageBox::information()</function +>. Si une boîte de message est encore ouverte depuis un précédent appel de warning() provenant du même processus esclave, il ne se produit rien. </para +></listitem> + +<listitem +><para +><function +>messageBox()</function +> — cette méthode est plus riche que la précédente. Elle permet d'ouvrir une boîte de message avec du texte et une légende, voire quelques boutons. Reportez-vous à l'énumération <type +>SlaveBase::MessageBoxType</type +> à titre de référence. </para +></listitem> + +<listitem +><para +><function +>openPassDlg()</function +> — ouvre une boîte de dialogue pour la saisie du nom d'utilisateur et du mot de passe. </para +></listitem> + +</itemizedlist> + +</simplesect> + +</sect1> + +</chapter> + + + +<appendix id="misc"> +<title +>Licence</title> + +&underFDL; +&underGPL; + +</appendix> + +</book> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.am b/tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.am new file mode 100644 index 00000000000..b6361414814 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = fr +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.in b/tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.in new file mode 100644 index 00000000000..b690fca2f1f --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.in @@ -0,0 +1,613 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdevelop/tdevelop +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = fr +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/tdevelop/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=unixdev.docbook tdevelop-install.docbook app-files.docbook file-browsers.docbook applicationwizard.docbook getting-started.docbook plugin-tools.docbook project-management.docbook tdevelop-scripting.docbook cvs.docbook setup.docbook credits.docbook documentation.docbook commands.docbook app-uimodes-examples.docbook app-menu.docbook survey-manual.docbook editing.docbook app-misc-info.docbook app-changelog.docbook nutshell.docbook project-advanced.docbook adv-build-management.docbook Makefile.in class-browsers.docbook tdevelop-survey.docbook debugger.docbook Makefile.am + +#>+ 2 +docs-am: app-uimodes-examples.docbook editing.docbook commands.docbook documentation.docbook file-browsers.docbook tdevelop-install.docbook debugger.docbook applicationwizard.docbook app-files.docbook app-menu.docbook project-management.docbook cvs.docbook adv-build-management.docbook credits.docbook tdevelop-survey.docbook tdevelop-scripting.docbook unixdev.docbook survey-manual.docbook nutshell.docbook project-advanced.docbook plugin-tools.docbook class-browsers.docbook app-changelog.docbook getting-started.docbook app-misc-info.docbook setup.docbook + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop + @for base in app-uimodes-examples.docbook editing.docbook commands.docbook documentation.docbook file-browsers.docbook tdevelop-install.docbook debugger.docbook applicationwizard.docbook app-files.docbook app-menu.docbook project-management.docbook cvs.docbook adv-build-management.docbook credits.docbook tdevelop-survey.docbook tdevelop-scripting.docbook unixdev.docbook survey-manual.docbook nutshell.docbook project-advanced.docbook plugin-tools.docbook class-browsers.docbook app-changelog.docbook getting-started.docbook app-misc-info.docbook setup.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + +uninstall-nls: + for base in app-uimodes-examples.docbook editing.docbook commands.docbook documentation.docbook file-browsers.docbook tdevelop-install.docbook debugger.docbook applicationwizard.docbook app-files.docbook app-menu.docbook project-management.docbook cvs.docbook adv-build-management.docbook credits.docbook tdevelop-survey.docbook tdevelop-scripting.docbook unixdev.docbook survey-manual.docbook nutshell.docbook project-advanced.docbook plugin-tools.docbook class-browsers.docbook app-changelog.docbook getting-started.docbook app-misc-info.docbook setup.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in app-uimodes-examples.docbook editing.docbook commands.docbook documentation.docbook file-browsers.docbook tdevelop-install.docbook debugger.docbook applicationwizard.docbook app-files.docbook app-menu.docbook project-management.docbook cvs.docbook adv-build-management.docbook credits.docbook tdevelop-survey.docbook tdevelop-scripting.docbook unixdev.docbook survey-manual.docbook nutshell.docbook project-advanced.docbook plugin-tools.docbook class-browsers.docbook app-changelog.docbook getting-started.docbook app-misc-info.docbook setup.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/tdevelop/tdevelop/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/tdevelop/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/adv-build-management.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/adv-build-management.docbook new file mode 100644 index 00000000000..25faed3cd60 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/adv-build-management.docbook @@ -0,0 +1,178 @@ +<chapter id="adv-build-management"> +<title +>Gestion avancée de la construction</title> +<indexterm zone="adv-build-management" +><primary +>&automake;</primary +></indexterm> + +<sect1 id="buildconfigurations"> +<title +>Configurations de construction multiples</title> +<indexterm zone="buildconfigurations" +><primary +>configurations de construction</primary +><secondary +>multiple</secondary +></indexterm> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- buildconfigurations --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="crosscompiling"> +<title +>Compilation croisée</title> +<indexterm zone="crosscompiling" +><primary +>compilation croisée</primary +></indexterm> +<indexterm zone="crosscompiling" +><primary +>compilation</primary +><secondary +>croisée</secondary +></indexterm> +<indexterm zone="crosscompiling" +><primary +><option +>--host</option +></primary +></indexterm> + +<para +>Quand vous disposez de compilateurs croisés appropriés, vous pouvez « cross-compiler » vos programmes pour des processeurs et des systèmes d'exploitation différents du système dans lequel fonctionnent &tdevelop; et le compilateur. La collection &gcc; des compilateurs de &GNU; peut être configurée et compilée comme un compilateur croisé si vous la compilez vous-même. Consultez les <ulink url="info://gcc/Cross-Compiler" +>pages info de GCC</ulink +> pour plus d'informations. Certaines distributions &Linux; fournissent également des paquetages de binaires. </para> + +<para +>Un paquetage basé sur <application +>automake</application +> peut être facilement cross-compilé en spécifiant l'option <option +>--host</option +> au script « configure » et en positionnant les variables d'environnement <envar +>CC</envar +> et <envar +>CXX</envar +> sur les binaires du compilateur croisé correspondant. Souvent, vous êtes amené à commuter entre une version cross-compilée de votre application et une qui est compilée pour votre système de développement. Pour cela, il est avantageux d'employer la fonction de &tdevelop; de créer des configurations de construction multiples, comme décrit dans <xref linkend="buildconfigurations"/>. Une fois que vous avez créé une nouvelle configuration de construction pour la compilation croisée dans la boîte de dialogue <menuchoice +><guimenu +>Projet</guimenu +><guimenuitem +>Options du projet</guimenuitem +></menuchoice +>, ajoutez l'option </para> + +<screen +><option +>--host=</option +><replaceable +>plate-forme</replaceable +></screen> + +<para +>aux options de « configure ». Le nom <replaceable +>plate-forme</replaceable +> est un tuple de la forme </para> + +<programlisting +>cpu-vendor-os</programlisting> +<para +>ou</para> +<programlisting +>cpu-vendor-kernel-os</programlisting> + +<para +>Pour de nombreuses combinaisons, vous pouvez utiliser une forme abrégée, par exemple <wordasword +>i386-linux</wordasword +> ou <wordasword +>arm-elf</wordasword +>. </para> + +</sect1 +> <!-- crosscompiling --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="qtembedded"> +<title +>Qt embarqué</title> +<indexterm zone="qtembedded" +><primary +>embarqué</primary +><secondary +>Qt</secondary +></indexterm> +<indexterm zone="qtembedded" +><primary +>Qt embarqué</primary +></indexterm> +<indexterm zone="qtembedded" +><primary +>Qtopia</primary +></indexterm> +<indexterm zone="qtembedded" +><primary +>tampon de trame</primary +></indexterm> + +<para +>&qte; est une version de la bibliothèque &Qt; qui n'utilise pas le système X window mais dessine directement dans le tampon de trame sur les systèmes &Linux;. Il est donc intéressant pour les systèmes embarqués qui ont des restrictions contraignantes sur l'usage de la mémoire de tout le système. Son &API; est entièrement compatible avec celle de la version X11. </para> + +<para +>Le développement d'une application pour &qte; avec &tdevelop; n'est pas très différent du développement d'un programme pour la version X11 de &Qt;. En fait, vous pouvez employer la même base de code (<foreignphrase +>codebase</foreignphrase +>) pour des deux versions. Si vous faites appel à la gestion de projet autoproject, vous basculez vers la version embarquée en passant l'argument <option +>--enable-embedded</option +> au script « configure ». Vous pouvez régler ce paramètre dans la boîte de dialogue <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet</guimenuitem +></menuchoice +> sous <guilabel +>Options de « configure »</guilabel +>. Avec l'option <option +>--with-qt-dir=DIR</option +>, vous définissez le dossier dans lequel &qte; est installé. </para> + +<para +>Après avoir configuré et compilé votre application avec ces options, elle se lie avec la bibliothèque <filename +>libqpe.so</filename +>. Cette version de votre application ne tournera normalement pas quand vous utiliserez X11. Pour pouvoir le tester, lancez-la sous le contrôle du programme <application +>qvfb</application +> (&Qt; Virtual Frame Buffer). Pour ce faire, démarrez <application +>qvfb</application +> puis votre application avec </para> + +<screen +><command +>app <option +>-qws</option +> <option +>-display QVFb:0</option +></command +></screen> + +<para +>Naturellement, quand vous aurez une version opérationnelle de votre application, vous serez amené à l'utiliser sur le processeur cible. Pour cela, il sera certainement pratique de créer des configurations de construction multiples, comme expliqué plus haut, de façon à pouvoir passer rapidement de la version tournant sur votre système de développement à la version active sur le système cible. </para> + +<para +>Les applications pour &qte; s'exécutent en tant qu'applications uniques sur le périphérique pour lequel elles sont conçues. Trolltech prend également en charge Qtopia, qui est une collection d'applications pour le gestionnaire d'informations personnelles (<acronym +>PIM</acronym +>), la navigation web et diverses autres domaines qui fonctionnent de concert de manière cohérente. C'est l'environnement standard par exemple sur le Sharp Zaurus. Vous pouvez écrire des applications qui s'intègrent dans cet environnement en utilisant le SDK Qtopia. Cela implique de faire de votre classe d'application une sous-classe de <classname +>QPEApplication</classname +> et de la lier à la bibliothèque <filename +>libqpe.so</filename +>. Si vous développez votre application avec la gestion de projet autoproject, vous devez ajouter <option +>--enable-qtopia</option +> aux options de « configure ». </para> + +</sect1 +> <!-- qtembedded --> + +</chapter +> <!-- adv-build-management --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/app-changelog.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/app-changelog.docbook new file mode 100644 index 00000000000..96570573fd9 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/app-changelog.docbook @@ -0,0 +1,85 @@ +<appendix id="app-changelog"> +<title +>Changements</title> +<sect1 id="changes"> +<title +>Changements apportés à ce document</title> + +<itemizedlist> + <listitem> + <para +>2003-01-03 Bernd Gehrmann, Caleb Tennis <itemizedlist> + <listitem> + <para +>a participé à la disposition initiale du manuel</para> + </listitem> + <listitem> + <para +>a défini le contenu de nombreux chapitres</para> + </listitem> + </itemizedlist> + </para> + </listitem> + + + <listitem> + <para +>2004-08-01 Bernd Pol, Ian Wadham <itemizedlist> + <listitem> + <para +>ont réorganisé légèrement le manuel</para> + </listitem> + <listitem> + <para +>ont écrit quelques chapitres manquants</para> + </listitem> + </itemizedlist> + </para> + </listitem> + + <listitem> + <para +>2005-05-02 Volker Paul — Nombreux changements, parmi lesquels : <itemizedlist> + <listitem> + <para +>a réalisé la subdivision d'un fichier par chapitre / annexe</para> + </listitem> + <listitem> + <para +>a ajouté la référence des commandes triées par menu (descriptions pas encore complètes)</para> + </listitem> + <listitem> + <para +>Tutoriel AppWizard dans getting-started.docbook</para> + </listitem> + <listitem> + <para +>a réorganisé des chapitres, guidé par le manuel de Konqueror</para> + </listitem> + <listitem> + <para +>a déplacé l'installation, le développement Unix, « En quelques mots » dans l'annexe</para> + </listitem> + <listitem> + <para +>a écrit l'annexe sur les modules externes, y compris le générateur de liste de modules externes listplugins.sh</para> + </listitem> + </itemizedlist> + </para> + <para +>Encore loin d'être complet, mais un petit pas en avant.</para> + </listitem> + + <listitem> + <para +>2006-05-20 Bernd Pol — Complétement de quelques lacunes à  écrir«e  »</para> + </listitem> + +</itemizedlist> + +</sect1 +> <!-- changes --> +</appendix +> <!-- app-changelog --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/app-files.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/app-files.docbook new file mode 100644 index 00000000000..297df964644 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/app-files.docbook @@ -0,0 +1,1676 @@ +<appendix id="app-files"> +<!-- LWatts (2005-04-30): A lot of this might be better as variable lists, --> +<!-- but it's not that big a deal. Something to be done only when there's --> +<!-- a lot of textual changes needed here (e.g., maybe never ) --> + +<appendixinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</appendixinfo> + +<title +>Fichiers de configuration utilisés par &tdevelop;</title> + +<para +>&tdevelop; utilise une série de fichiers de configuration qui sont répartis parmi plusieurs dossiers. Il faut distinguer deux groupes principaux de fichiers de configuration : </para> +<simplelist> + <member +><link linkend="app-files-default" +>Configuration par défaut de &tdevelop;</link +> — fichiers configurés quand &tdevelop; a été installé. </member> + <member +><link linkend="app-files-user" +>Configuration orientée utilisateur</link +> — fichiers qui contiennent des modifications par l'utilisateur des réglages par défaut, ainsi que les réglages effectués par l'application &tdevelop; elle-même et ses modules externes. </member> +</simplelist> + +<sect1 id="app-files-default"> +<title +>Configuration par défaut de &tdevelop;</title> + +<para +>Lors de l'installation, &tdevelop; écrit quelques fichiers de configuration par défaut à des fins de mise en place et de configuration dans des sous-dossiers du dossier d'installation <filename class="directory" +>$<envar +>KDEDIR</envar +></filename +> (habituellement<filename class="directory" +>/opt/kde</filename +>, <filename class="directory" +>/usr/local/kde</filename +> ou n'importe quel autre dossier d'installation défini par l'utilisateur. Reportez-vous au chapitre <link linkend="tdevelop-install" +>Installation de &tdevelop;</link +>). </para> + +<sect2 id="app-files-default-config"> +<title +>Configuration par défaut de &tdevelop;</title> + +<para +>Il n'y a qu'un seul fichier de configuration par défaut propre à &tdevelop; dans le dossier <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/config/</filename +> : </para> +<variablelist> + <varlistentry> + <term +><filename +>tdeveloprc</filename +></term> + <listitem +><para +>Ce fichier contient les réglages de base dont &tdevelop; a besoin pour démarrer. Il sera copié dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/config</filename +> de l'utilisateur quand &tdevelop;n'y trouve pas de fichier <filename +>tdeveloprc</filename +> au démarrage. </para +></listitem> + </varlistentry> +</variablelist> + +</sect2 +> <!-- app-files-default-config --> + +<sect2 id="app-files-default-apps"> +<title +>Réglages spécifiques par défaut</title> + +<para +>La plupart des fonctionnalités de &tdevelop; sont fournies par KParts. Ce sont avant tout des applications spécialement conçues pour s'exécuter dans l'environnement &tdevelop; (reportez-vous à la vue d'ensemble dans l'annexe <link linkend="plugin-tools" +>Outils modules externes</link +>). Chaque application KPart a son propre ensemble de fichiers de configuration dont les réglages par défaut seront stockés dans plusieurs sous-dossiers du dossier d'installation <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/apps/</filename +>. </para> + +<para +>On trouve un grand nombre de sous-dossiers de configuration par défaut dans <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/apps/</filename +>, dont les noms commencent tous par une séquence <filename +>kdev</filename +>. La majorité d'entre eux ne sont destinés qu'à l'utilisation en interne de &tdevelop;. Par souci de lisibilité, ils pourront être délibérément groupés comme suit : <simplelist> + <member +><link linkend="app-files-default-apps-stdalone" +>Applications autonomes</link +></member> + <member +><link linkend="app-files-default-apps-task" +>Composants propres à une tâche</link +></member> + <member +><link linkend="app-files-default-apps-project" +>Composants de génération de projet</link +></member> + <member +><link linkend="app-files-default-apps-lang" +>Composants propres à un langage</link +></member> +</simplelist> +</para> + +<itemizedlist> + <listitem id="app-files-default-apps-stdalone" +><itemizedlist> + <title +>Applications autonomes</title> + <listitem> + <para +><filename class="directory" +>tdevelop/</filename +> — contient les fichiers permettant de configurer l'EDI &tdevelop; :</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>licenses/</filename +> — contient divers textes de licences.</para +></listitem> + <listitem +><para +><filename class="directory" +>pics/</filename +> — contient les fichiers image utilisés pour &tdevelop;, l'assistant de &tdevelop; et les écrans de bienvenue de &tdevelop; Designer.</para +></listitem> + <listitem +><para +><filename class="directory" +>profiles/</filename +> — contient les réglages par défaut des modules externes. (Actuellement, un seul profil <filename +>tiny</filename +> est prévu, qui définit un ensemble minimal de modules externes &tdevelop; actifs.)</para +></listitem> + <listitem +><para +><filename +>eventsrc</filename +> — contient une grande quantité de chaînes de localisation « Processus réussi ».</para +></listitem> + <listitem +><para +><filename +>tdevelopui.rc</filename +> — fournit les éléments de menu et de barre d'outils de base que &tdevelop; utilise.</para +></listitem> + <listitem +><para +><filename +>kdevhtml_partui.rc</filename +> — fournit un élément <guimenuitem +>Imprimer...</guimenuitem +> dans le menu <guimenu +>Fichier</guimenu +>, un élément <guimenuitem +>Copier</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +>, ainsi que des flèches <guilabel +>Précédent</guilabel +> et <guilabel +>Suivant</guilabel +> dans la <guilabel +>barre d'outils du navigateur</guilabel +> dans le cas où l'on parcourt un fichier &HTML; depuis le module externe <guilabel +>Documentation</guilabel +>.</para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para +><filename class="directory" +>kdevassistant/</filename +> — fournit les barres de menu et les barres d'outils du navigateur de documentation autonome de l'assistant de &tdevelop;.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevdesigner/</filename +> et <filename class="directory" +>kdevdesignerpart/</filename +> — fournissent la barre de menus et les barres d'outil du concepteur d'interface utilisateur autonome de &tdevelop;.</para +></listitem> + </itemizedlist +></listitem> + + <listitem +><itemizedlist id="app-files-default-apps-task"> + <title +>Composants propres à une tâche</title> + <listitem id="app-files-default-abbrev"> + <para +><filename class="directory" +>kdevabbrev/</filename +> — contient les fichiers utilisés par le module externe <guilabel +>Complétement automatique</guilabel +>.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>sources/</filename +> — contient les fichiers de définition de mots-clés utilisés par la commande <guilabel +>Développer le texte</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>templates/</filename +> — contient les fichiers de définition de modèles utilisés par la commande <guilabel +>Compléter automatiquement</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>kdevabbrev.rc</filename +> — fournit les éléments <guimenuitem +>Développer le texte</guimenuitem +> et <guimenuitem +>Compléter automatiquement</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +>.</para +></listitem> +</itemizedlist> + </listitem> + <listitem id="app-files-default-appwizard"> + <para +><filename class="directory" +>kdevappwizard/</filename +> — contient les fichiers utilisés par le composant &appwizard;.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>importfiles/</filename +> — contient les fichiers du projet <filename +>.tdevelop</filename +> qui contrôlent l'initialisation d'un nouveau projet.</para +></listitem> + <listitem +><para +><filename class="directory" +>imports/</filename +> — contient les modèles pour configurer les fichiers <filename +>.desktop</filename +> propres à un projet.</para +></listitem> + <listitem +><para +><filename class="directory" +>template-common/</filename +> — contient divers fichiers communément inclus dans les dossiers des sources d'un projet.</para +></listitem> + <listitem +><para +><filename class="directory" +>templates/</filename +> — contient les fichiers de configuration qui décrivent les informations à inclure dans le dossier des sources d'un projet.</para +></listitem> + <listitem +><para +><filename +>*.png</filename +> — aperçus des images d'un projet utilisées par l'&appwizard;.</para +></listitem> + <listitem +><para +><filename +>*.tar.gz</filename +> — archives tar contenant les fichiers source à inclure dans le dossier d'un projet nouvellement généré.</para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para +><filename class="directory" +>kdevastyle/</filename +> — fournit l'élément <guimenuitem +>Reformater le source</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevautoproject/</filename +> — fournit la plupart des éléments dans le menu <guimenu +>Construire</guimenu +> et la barre d'outils <guilabel +>Barre d'outils de construction (&tdevelop;)</guilabel +>.</para +></listitem> + <listitem> + <para +><filename class="directory" +>kdevclassview/</filename +> — contient les fichiers utilisés par le module externe de projet <guilabel +>Afficheur de classes</guilabel +>.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>pics/</filename +> — contient les icônes utilisées dans l'arbre d'affichage des classes de <guilabel +>Classes</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>kdevclassview.tc</filename +> — fournit l'élément <guimenuitem +>Diagramme d'héritage des classes</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +>, ainsi que la zone de liste modifiable de navigation des classes dans la <guilabel +>Barre d'outils du navigateur</guilabel +>.</para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para +><filename class="directory" +>kdevcloser/</filename +> — fournit les éléments de fermeture du menu <guimenu +>Fenêtre</guimenu +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevctags/</filename +> — fournit l'élément<guimenuitem +>CTags</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> pour le module externe de projet <guilabel +>Interface pour CTags</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevcvsservice/</filename +> — fournit l'icône utilisée par l'onglet <guilabel +>CvsService</guilabel +> et un court script shell servant à ajouter un nouvel élément au référentiel &cvs;, l'un et l'autre étant utilisés par le module externe de projet <guilabel +>Intégration de CVS</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevdebugger/</filename +> — fournit les éléments du menu <guimenu +>Déboguer</guimenu +> pour le module externe de projet <guilabel +>Interface du débogueur</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevdiff/</filename +> — fournit l'élément <guimenuitem +>Afficheur de différences</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevdistpart/</filename +> — fournit l'élément <guimenuitem +>Distribution et publication</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +> pour le module externe de projet <guilabel +>Gestion finale du conditionnement en paquetages</guilabel +>.</para +></listitem> + <listitem id="app-files-default-kdevdoc"> + <para +><filename class="directory" +>kdevdocumentation/</filename +> — contientles fichiers utilisés par le module externe <guilabel +>Documentation</guilabel +>.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>en/</filename +> et <filename class="directory" +>pics/</filename +> — contiennent les fichiers utilisés par l'outil de recherche <application +>htdig</application +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>tocs/</filename +> — contient les fichiers de description du contenu de la documentation de &tdevelop; (reportez-vous à la description dans <link linkend="toc-file-structure" +>Structure fondamentale des fichiers TOC de &tdevelop;</link +>).</para +></listitem> + <listitem +><para +><filename +>kdevpart_documentation.rc</filename +> — fournit les éléments relatifs aux recherches dans le menu <guimenu +>Aide</guimenu +>.</para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para +><filename class="directory" +>kdevdoxygen/</filename +> — fournit les éléments de menu pour le module externe <guilabel +>Gestion de Doxygen</guilabel +>.</para +></listitem> + <listitem id="app-files-default-filecreate"> + <para +><filename class="directory" +>kdevfilecreate/</filename +> — contient les fichiers utilisés par le <guilabel +>Assistant de création d'un nouveau fichier</guilabel +>. <itemizedlist> + <listitem +><para +><filename class="directory" +>file-templates/</filename +> — fournit le contenu initial du texte à placer dans le nouveau fichier source d'un type donné.</para +></listitem> + <listitem +><para +><filename +>kdevpart_filecreate.rc</filename +> — fournit l'élément <guimenuitem +>Nouveau</guimenuitem +> dans le menu <guimenu +>Fichier</guimenu +>.</para +></listitem> + <listitem +><para +><filename +>template-info.xml</filename +> — contient les descriptions des types de fichiers disponibles à afficher dans la vue <guilabel +>Nouveau fichier</guilabel +>.</para +></listitem> + </itemizedlist> + </para +></listitem> + <listitem +><para +><filename class="directory" +>kdevfilter/</filename +> — fournit les éléments <guimenuitem +>Exécuter une commande...</guimenuitem +> et <guimenuitem +>Choix d'un filtre par une commande...</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisés par le module externe <guilabel +>Filtrage et insertion dans le shell</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevfullscreen/</filename +> — fournit l'élément <guimenuitem +>Mode plein écran</guimenuitem +> dans le menu <guimenu +>Affichage</guimenu +> et l'icône de barre d'outils correspondante.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevgrepview/</filename +> — fournit l'élément <guimenuitem +>Chercher dans les fichiers...</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +> utilisé par le module externe <guilabel +>Interface pour Grep</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevhistory/</filename +> — fournit les éléments <guimenuitem +>Précédent</guimenuitem +> et <guimenuitem +>Suivant</guimenuitem +> dans le menu <guimenu +>Affichage</guimenu +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevjavadebugger/</filename +> — fournit un menu <guimenu +>Débogueur JAVA</guimenu +> afin de déboguer une application &Java;.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevoutputviews/</filename +> — fournit les éléments <guimenuitem +>Erreur suivante</guimenuitem +> et <guimenuitem +>Erreur précédente</guimenuitem +> dans le menu <guimenu +>Affichage</guimenu +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevpartexplorer/</filename +> — fournit l'élément <guimenuitem +>Afficheur de composants logiciels</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisé par le module externe <guilabel +>Outil d'exploration des composants</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevquickopen/</filename +> — fournit l'élément <guimenuitem +>Quick Open File..</guimenuitem +> dans le menu <guimenu +>Fichier</guimenu +> ainsi que les éléments <guimenuitem +>Ouverture rapide de classe...</guimenuitem +> et <guimenuitem +>Ouverture rapide de méthode...</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisé par le module externe de projet <guilabel +>Ouverture rapide</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevregexptest/</filename +> — fournit l'élément <guimenuitem +>Déboguer l'expression rationnelle...</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisé par le module externe <guilabel +>Débogueur d'expressions rationnelles</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevreplace/</filename +> — fournit l'élément <guimenuitem +>Rechercher / Sélectionner / Remplacer...</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +> utilisé par le module externe <guilabel +>Outil de remplacement</guilabel +>.</para +></listitem> + <listitem id="app-files-default-tips" +><para +><filename class="directory" +>kdevtipofday/</filename +> — fournit l'élément <guimenuitem +>Astuce du jour</guimenuitem +> dans le menu <guimenu +>Aide</guimenu +>, ainsi qu'un fichier HTML contenant les astuces disponibles.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevtools/</filename +> — contrôle divers éléments de menu créés par les réglages du menu <guimenu +>Outils</guimenu +> et du menu <guilabel +>Outils externes</guilabel +> fournis par le module externe <guilabel +>Suppléments au menu « Outils »</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevvalgrind/</filename +> — fournit les éléments <guimenuitem +>Vérification des pertes de mémoire avec « Valgrind »</guimenuitem +> et <guimenuitem +>Profiler avec KCachegrind</guimenuitem +> dans le menu <guimenu +>Déboguer</guimenu +> utilisés par le module externe <guilabel +>Interface Valgrind</guilabel +>.</para +></listitem> + </itemizedlist +></listitem> + + <listitem +><itemizedlist id="app-files-default-apps-project"> + <title +>Composants de génération de projet</title> + <listitem +><para +><filename class="directory" +>kdevadaproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes pour construire une application en Ada.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevantproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> lors de l'emploi du générateur de projet Ant.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevautoproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes quand il fonctionne avec les outils &GNU; basés sur le générateur de projet &automake;. Fournit en outre les éléments <guimenuitem +>Ajouter une traduction...</guimenuitem +> et <guimenuitem +>Configuration de compilation</guimenuitem +> au menu <guimenu +>Projet</guimenu +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevcustomproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes quand le projet est basé sur des Makefiles personnalisés.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevgenericproject/</filename +> — contient des définitions de menu pour un générateur de projet générique expérimental. Non utilisé actuellement (version 3.1.0).</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevhaskellproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes pour construire une application en Haskell.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevpascalproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes pour construire une application en Pascal.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevtrollproject/</filename +> — fournit les éléments pour le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes pour construire une application utilisant le gestionnaire de projet QMake de &Qt;.</para +></listitem> + </itemizedlist +></listitem> + + <listitem +><itemizedlist id="app-files-default-apps-lang"> + <title +>Composants propres à un langage</title> + <listitem +><para +><filename class="directory" +>kdevadasupport/</filename +> — fournit les éléments dans le menu <guimenu +>Outils</guimenu +> et les icônes de barre d'outils correspondantes nécessaires pour développer des applications en Ada.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevbashsupport/</filename +> — fournit les éléments dans le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes nécessaires pour développer des scripts Bash.</para +></listitem> + <listitem id="app-files-default-apps-lang-cpp"> + <para +><filename class="directory" +>kdevcppsupport/</filename +> — contient les fichiers utilisés par l'&appwizard; pour construire des applications en C++.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>newclass/</filename +> — contient les modèles d'en-têtes et de sources à partir desquels l'&appwizard; construit les fichiers sources correspondants.</para +></listitem> + <listitem +><para +><filename class="directory" +>subclassing/</filename +> — contient les modèles que l'&appwizard; utilise pour configurer les déclarations et définitions de classes initiales dans les fichiers sources.</para +></listitem> + <listitem +><para +><filename class="directory" +>templates</filename +> — contient les modèles à partir desquels l'&appwizard; configure les modèles de fichiers d'en-tête et source par défaut que l'&nfwizard; utilise. </para +></listitem> + <listitem +><para +><filename +>configuration</filename +> — modèle factice pour ajouter des macros.</para +></listitem> + <listitem +><para +><filename +>kdevcppsupport.rc</filename +> — fournit les éléments <guimenuitem +>Compléter le texte</guimenuitem +> et <guimenuitem +>Ajouter un membre</guimenuitem +> pour le menu <guimenu +>Édition</guimenu +>, l'élément <guimenuitem +>Basculer entre la déclaration / l'implémentation</guimenuitem +> pour le menu <guimenu +>Affichage</guimenu +> et l'élément <guimenuitem +>Nouvelle classe</guimenuitem +> pour le menu <guimenu +>Projet</guimenu +>, ainsi qu'une icône <guiicon +>Nouvelle classe</guiicon +> pour la <guilabel +>Barre d'outils du navigateur</guilabel +>.</para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para +><filename class="directory" +>kdevfortransupport/</filename +> — fournit des éléments dans le menu <guimenu +>Construire</guimenu +> nécessaires pour développer des applications en Fortran.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevhaskellsupport/</filename +> — fournit les éléments dans le menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes nécessaires pour développer des applications en Haskell.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevjavasupport/</filename +> — contient la définition d'interface utilisateur nécessaire pour développer des applications en &Java;.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevpascalsupport/</filename +> — contient la définition d'interface utilisateur nécessaire pour développer des applications en Pascal.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevperlsupport/</filename +> — fournit les éléments de menu <guimenu +>Projet</guimenu +> et <guimenu +>Aide</guimenu +> nécessaires pour développer des scripts en Perl.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevphpsupport/</filename +> — contient les fichiers de définition d'interface utilisateur et de fonctions PHP nécessaires pour développer des scripts en PHP.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevpythonsupport/</filename +> — fournit les éléments de menu <guimenu +>Construire</guimenu +> et <guimenu +>Aide</guimenu +> et les icônes de barre d'outils correspondantes nécessaires pour développer des scripts en Python.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevrubysupport/</filename +> — fournit les éléments de menu <guimenu +>Construire</guimenu +> et les icônes de barre d'outils correspondantes nécessaires pour développer des scripts en Ruby.</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevscriptproject/</filename +> — fournit les définitions d'interface utilisateur nécessaires pour développer des projets personnalisés. Non utilisé actuellement (version 3.1.0).</para +></listitem> + <listitem +><para +><filename class="directory" +>kdevsqlsupport/</filename +> — fournit les définitions d'interface utilisateur nécessaires pour développer des projets en SQL. Non utilisé actuellement (version 3.1.0).</para +></listitem> + </itemizedlist +></listitem> + +</itemizedlist> + +</sect2 +> <!-- app-files-default-apps --> + +</sect1 +> <!-- app-files-default --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="app-files-user"> +<title +>Configuration orientée utilisateur</title> + +<para +>Toutes les informations sur les réglages définis par l'utilisateur sont conservées dans deux sous-dossiers de <filename class="directory" +>$<envar +>KDEHOME</envar +></filename +>, à savoir : <simplelist> + <member +><link linkend="app-files-user-apps" +>Configuration propre à une application</link +> dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/apps/</filename +> et</member> + <member +><link linkend="app-files-user-config" +>Fichier de configuration des ressources</link +> dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/config/</filename +>.</member> +</simplelist> +</para> + +<sect2 id="app-files-user-apps"> +<title +>Configuration propre à une application</title> + +<para +>Tout changement par l'utilisateur apporté aux réglages dans la <link linkend="app-files-default" +>configuration par défaut de &tdevelop;</link +> aussi bien que les réglages propres à l'utilisateur, qui ne sont conservés dans aucun des <link linkend="app-files-user-config" +>fichiers de configuration des ressources</link +> se trouvent dans les sous-dossiers <filename +>kdev...</filename +> du dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/apps/</filename +>. </para> +<para +>La plupart de ces fichiers de configuration est cependant utilisée par divers modules externes de &tdevelop; pour pouvoir fournir certains éléments spécifiques de menu et/ou de barre d'outils. Par conséquent, ils n'ont d'intérêt qu'au cas où il y aurait un gros problème avec l'interface utilisateur. </para> +<note +><para +>Au cas où le contenu des dossiers reflète celui des réglages de la configuration par défaut, &tdevelop; les aura copiés depuis <filename class="directory" +>$<envar +>KDEDIR</envar +>/apps/</filename +> dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/apps/</filename +> lors de son démarrage initial. Tout changement postérieur sera effectué sur ces copies uniquement. Les réglages de la configuration par défaut restent inchangés de toute façons. </para +></note> + +<itemizedlist> + <listitem> + <para +><filename class="directory" +>kdevabbrev/</filename +> — contient les fichiers utilisés par le module externe <guilabel +>Complétement automatique</guilabel +>.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>sources/</filename +> — actuellement vide ; &tdevelop; utilise les fichiers de <link linkend="app-files-default-abbrev" +>définition par défaut des mots-clés</link +> pour la commande <guilabel +>Développer le texte</guilabel +>.</para +></listitem> + <listitem +><para +><filename class="directory" +>templates/</filename +> — contient les modèles des fichiers de définition utilisés par la commande <guilabel +>Compléter automatiquement</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>kdevabbrev.rc</filename +> — fournit les éléments <guimenuitem +>Développer le texte</guimenuitem +> et <guimenuitem +>Compléter automatiquement</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +>.</para +></listitem> + </itemizedlist +> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevappwizard/</filename +> — ne fournit que les éléments <guimenuitem +>Nouveau projet...</guimenuitem +> et <guimenuitem +>Importer un projet existant...</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +>. L'&appwizard; utilisera les <link linkend="app-files-default-appwizard" +>réglages par défaut de la configuration</link +> pour son fonctionnement réel.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevastyle/</filename +> — fournit l'élément <guimenuitem +>Reformater le code source</guimenuitem +> réel dans le menu <guimenu +>Édition</guimenu +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevautoproject/</filename +> — fournit les éléments réels dans le menu <guimenu +>Construire</guimenu +> et la barre d'outils <guilabel +>Barre d'outils de construction (KDevelop)</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevclassview/</filename +> — fournit l'élément <guimenuitem +>Diagramme d'héritage des classes</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +> ainsi que la zone de liste modifiable du navigateur de classes dans la <guilabel +>Barre d'outils du navigateur</guilabel +>par le module externe de projet <guilabel +>Afficheur de classes</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevcloser/</filename +> — fournit l'élément <guimenuitem +>Fermer les fenêtres sélectionnées...</guimenuitem +> dans le menu <guimenu +>Fenêtre</guimenu +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevcppsupport/</filename +> — contient la configuration réelle utilisée par l'&appwizard; pour construire des applications en C++. L'&appwizard;, cependant, emploie sa principale masse d'informations de configuration information directement depuis le <link linkend="app-files-default-apps-lang-cpp" +>dossier de configuration par défaut</link +>. Veuillez vous y reporter pour plus de détail.</para> + <itemizedlist> + <listitem> + <para +><filename class="directory" +>newclass/</filename +> — contient les modèles d'en-têtes et de sources à partir desquels l'&appwizard; construit les fichiers source correspondants.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>pcs/</filename +> — contient les fichiers de base de données dont &tdevelop; se sert pour construire le fichier « Persistent Code Store » (<filename +>.pcs</filename +>) d'un projet &kde; en C++.</para> + </listitem> + <listitem> + <para +><filename +>kdevcppsupport.rc</filename +> — fournit les éléments <guimenuitem +>Compléter le texte</guimenuitem +> et <guimenuitem +>Ajouter un membre</guimenuitem +> pour le menu <guimenu +>Édition</guimenu +>, l'élément <guimenuitem +>Basculer entre la déclaration / l'implémentation</guimenuitem +> pour le menu <guimenu +>Affichage</guimenu +> et l'élément <guimenuitem +>Nouvelle classe</guimenuitem +> pour le menu <guimenu +>Projet</guimenu +>, ainsi qu'une icône <guiicon +>Nouvelle classe</guiicon +> pour la <guilabel +>Barre d'outils du navigateur</guilabel +>.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevctags/</filename +> — fournit l'élément<guimenuitem +>CTags</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> pour le module externe de projet <guilabel +>Interface pour CTags</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevdebugger/</filename +> — fournit les éléments du menu <guimenu +>Déboguer</guimenu +> pour le module externe de projet <guilabel +>Interface du débogueur</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevdiff/</filename +> — fournit l'élément <guimenuitem +>Afficheur de différences</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevdocumentation/</filename +> — contient les fichiers réels que le module externe <guilabel +>Documentation</guilabel +> utilise en plus des <link linkend="app-files-default-kdevdoc" +>fichiers de configuration par défaut</link +>. Reportez-vous à celui-ci pour plus de détail.</para> + <para +>Les dossiers de <filename class="directory" +>kdevdocumentation/</filename +> contiennent surtout des informations comptables à proprement parler. Les fichiers de documentation réellement configurés sont conservés dans les fichiers <link linkend="app-files-user-config-doc" +> « <filename +>doc...pluginrc</filename +> »</link +> dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/config/</filename +>.</para> + <itemizedlist> + <listitem> + <para +><filename class="directory" +>bookmarks/</filename +> — maintient les éléments dans l'onglet <guilabel +>Signets</guilabel +> du module externe <guilabel +>Documentation</guilabel +> de &tdevelop;.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>index/</filename +> — contient divers fichiers de cache que &tdevelop; utilise pour accélérer les recherches de documentation indexée dans l'onglet <guilabel +>Index</guilabel +> du module externe <guilabel +>Documentation</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>search/</filename +> — contient les fichiers utilisés par l'outil de recherche <application +>htdig</application +> qui prend en charge les appels de recherche depuis l'onglet <guilabel +>Recherche</guilabel +> du module externe <guilabel +>Documentation</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename +>kdevpart_documentation.rc</filename +> — fournit les éléments relatifs aux recherches dans le menu <guimenu +>Aide</guimenu +>.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevdoxygen/</filename +> — fournit les éléments de menu pour le module externe <guilabel +>Gestion de Doxygen</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>tdevelop/</filename +> — contient certains réglages effectifs que &tdevelop; emploie pour sa configuration de base.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>profiles/</filename +> — fournit un paramétrage réel de profil de module externe. (Initialement, il n'y a qu'un profil <filename +>FullIDE</filename +> qui définit un ensemble complet de modules externes &tdevelop; actifs.)</para +></listitem> + <listitem +><para +><filename +>tdevelopui.rc</filename +> — fournit les éléments de menu et de barre d'outils de base que &tdevelop; utilise.</para +></listitem> + </itemizedlist> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevfilecreate/</filename +> — contient les fichiers utilisés par le <guilabel +>Assistant de création d'un nouveau fichier</guilabel +>.</para> + <itemizedlist> + <listitem +><para +><filename class="directory" +>file-templates/</filename +> — fournit le contenu du texte réellement utilisé à placer dans le nouveau fichier source d'un type donné. Vous trouverez d''autres modèles de fichiers dans le dossier des <link linkend="app-files-default-filecreate" +>fichiers de configuration par défaut</link +>.</para +></listitem> + <listitem +><para +><filename +>kdevpart_filecreate.rc</filename +> — fournit l'élément <guimenuitem +>Nouveau</guimenuitem +> dans le menu <guimenu +>Fichier</guimenu +>.</para +></listitem> + <listitem +><para +><filename +>template-info.xml</filename +> — contient les descriptions des types de fichiers disponibles à afficher dans la vue <guilabel +>Nouveau fichier</guilabel +>.</para +></listitem> + </itemizedlist> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevfilter/</filename +> — fournit les éléments <guimenuitem +>Exécuter une commande...</guimenuitem +> et <guimenuitem +>Choix d'un filtre par une commande...</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisés par le module externe <guilabel +>Filtrage et insertion dans le shell</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevfullscreen/</filename +> — fournit l'élément <guimenuitem +>Mode plein écran</guimenuitem +> dans le menu <guimenu +>Affichage</guimenu +> et l'icône de barre d'outils correspondante.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevgrepview/</filename +> — fournit l'élément <guimenuitem +>Chercher dans les fichiers...</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +> utilisé par le module externe <guilabel +>Interface pour Grep</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevoutputviews/</filename +> — fournit les éléments <guimenuitem +>Erreur suivante</guimenuitem +> et <guimenuitem +>Erreur précédente</guimenuitem +> dans le menu <guimenu +>Affichage</guimenu +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevpartexplorer/</filename +> — fournit l'élément <guimenuitem +>Afficheur de composants logiciels</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisé par le module externe <guilabel +>Outil d'exploration des composants</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevquickopen/</filename +> — fournit l'élément <guimenuitem +>Quick Open File..</guimenuitem +> dans le menu <guimenu +>Fichier</guimenu +> ainsi que les éléments <guimenuitem +>Ouverture rapide de classe...</guimenuitem +> et <guimenuitem +>Ouverture rapide de méthode...</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisé par le module externe de projet <guilabel +>Ouverture rapide</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevregexptest/</filename +> — fournit l'élément <guimenuitem +>Déboguer l'expression rationnelle...</guimenuitem +> dans le menu <guimenu +>Outils</guimenu +> utilisé par le module externe <guilabel +>Débogueur d'expressions rationnelles</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevreplace/</filename +> — fournit l'élément <guimenuitem +>Rechercher / Sélectionner / Remplacer...</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +> utilisé par le module externe <guilabel +>Outil de remplacement</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevtipofday/</filename +> — fournit l'élément <guimenuitem +>Astuce du jour</guimenuitem +> dans le menu <guimenu +>Aide</guimenu +>. Le fichier HTML contenant les astuces disponibles est fourni à titre de <link linkend="app-files-default-tips" +>fichier de configuration par défaut</link +> seulement.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevtools/</filename +> — contrôle divers éléments de menu créés par les réglages du menu <guimenu +>Outils</guimenu +> et du menu <guilabel +>Outils externes</guilabel +> fournis par le module externe <guilabel +>Suppléments au menu « Outils »</guilabel +>.</para> + </listitem> + <listitem> + <para +><filename class="directory" +>kdevvalgrind/</filename +> — fournit les éléments <guimenuitem +>Vérification des pertes de mémoire avec « Valgrind »</guimenuitem +> et <guimenuitem +>Profiler avec KCachegrind</guimenuitem +> dans le menu <guimenu +>Déboguer</guimenu +> utilisés par le module externe <guilabel +>Interface Valgrind</guilabel +>.</para> + </listitem> +</itemizedlist> + +</sect2 +> <!-- app-files-user-apps --> + +<sect2 id="app-files-user-config"> +<title +>Fichier de configuration des ressources</title> + +<para +>Ce sont deux groupes de fichiers de configuration de &tdevelop; dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/config/</filename +>, distingués par les séquences de caractères qui les entourent. <simplelist> + <member +>« <filename +>doc...pluginrc</filename +> » désigne les fichiers <link linkend="app-files-user-config-doc" +>utilisés par le module externe de documentation</link +>.</member> + <member +>« <filename +>kdev...rc</filename +> » désigne les fichiers de configuration <link linkend="app-files-user-config-kdev" +>utilisés par &tdevelop;</link +> lui-même et ses modules externes disponibles.</member> +</simplelist> +</para> + +<itemizedlist id="app-files-user-config-kdev"> +<title +>Fichiers de configuration utilisés par &tdevelop;</title> + <listitem> + <para +><filename +>kdevabbrevrc</filename +> — contient l'état actuel de la configuration des <guilabel +>Abréviations</guilabel +> fournie par le module externe <guilabel +>Complétement automatique</guilabel +>.</para> + <note +><para +>Celui-ci enregistre si les abréviations seront utilisées ou non. Les définitions réelles des nouvelles abréviations iront dans le fichier <filename +>$<envar +>KDEHOME</envar +>/share/apps/kdevabbrev/templates/templates</filename +>.</para +></note> + </listitem> + <listitem> + <para +><filename +>kdevassistantrc</filename +> — contient quelques états de configuration propres au navigateur autonome de documentation de l'assistant de &tdevelop;.</para> + <note +><para +>La plupart des réglages de configuration courants sont partagés avec le fichier <filename +>tdeveloprc</filename +> de l'EDI &tdevelop;.</para +></note> + </listitem> + <listitem +><para +><filename +>kdevassistantuimode4rc</filename +> — contient les états de configuration MDI courants (positions d'incrustation, &etc;) du navigateur autonome de documentation de l'assistant de &tdevelop;.</para +></listitem> + <listitem> + <para +><filename +>kdevclassviewrc</filename +> — contient le réglage <guilabel +>Mode d'affichage</guilabel +> de l'onglet du navigateur de classes <guilabel +>Classes</guilabel +> fourni par le module externe de projet <guilabel +>Afficheur de classes</guilabel +>.</para> + <note +><para +>C'est un réglage global, bien que le module externe <guilabel +>Afficheur de classes</guilabel +> puisse être désactivé projet par projet. Tout changement dans ce réglage sera mis à jour de façon globale chaque fois que le projet actuel est fermé et affectera ainsi tous les projets chargés ultérieurement.</para +></note> + </listitem> + <listitem +><para +><filename +>kdevcppsupportrc</filename +> — contient quelques réglages utilisés pour configurer les fichiers source CPP. En particulier, vous y trouverez les réglages effectués sur la boîte de dialogue de configuration du <guilabel +>Générateur de classes C++</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>kdevdocumentationrc</filename +> — contient les réglages réels que le module externe <guilabel +>Documentation</guilabel +> utilise.</para +></listitem> + <listitem +><para +><filename +>tdeveloprc</filename +> — contient les réglages globaux que le l'EDI &tdevelop; et le navigateur autonome de documentation de l'assistant de &tdevelop; utiliseront.</para +></listitem> + <listitem +><para +><filename +>tdevelopuimode4rc</filename +> — contient les états de configuration MDI actuels (positions d'ancrage, &etc;) de l'EDI &tdevelop;.</para +></listitem> + <listitem +><para +><filename +>kdevfileselectorrc</filename +> — contient les réglages réels que le module externe <guilabel +>Sélecteur de fichiers</guilabel +> utilise.</para +></listitem> + <listitem +><para +><filename +>kdevfileviewrc</filename +> — contient les réglages de couleur des noms de fichiers que le module externe de projet <guilabel +>Intégration de CVS (Cervisia)</guilabel +> utilise pour l'affichage.</para +></listitem> + <listitem +><para +><filename +>kdevfilterrc</filename +> — contient les réglages réels que le module externe <guilabel +>Filtrage et insertion dans le shell</guilabel +> utilise.</para +></listitem> + <listitem +><para +><filename +>kdevgrepviewrc</filename +> — contient les réglages réels que le module externe <guilabel +>Interface pour Grep</guilabel +> utilise.</para +></listitem> + <listitem +><para +><filename +>kdevsnippetrc</filename +> — contient les réglages réels que le module externe <guilabel +>Fragments de code</guilabel +> utilise.</para +></listitem> + <listitem +><para +><filename +>kdevtoolsrc</filename +> — contient les réglages réels que le module externe <guilabel +>Suppléments au menu « Outils »</guilabel +> utilise.</para +></listitem> +</itemizedlist> + +<itemizedlist id="app-files-user-config-doc"> +<title +>Fichiers de configuration utilisés par le module externe Documentation</title> + <listitem +><para +><filename +>docchmpluginrc</filename +> — contient des informations sur les fichiers d'aide CHM de &Microsoft;, comme défini sur la page de configuration <guilabel +>Collection de documentation CHM</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>doccustompluginrc</filename +> — contient des informations sur tout fichier de documentation personnalisé défini sur la page de configuration <guilabel +>Collection de documentation personnalisée</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>docdevhelppluginrc</filename +> — contient des informations sur les fichiers de documentation réels DevHelp de GNOME 2, comme défini sur la page de configuration <guilabel +>Collection de documentation DevHelp</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>docdoxygenpluginrc</filename +> — contient des informations sur les fichiers de documentation de l'API générée par Doxygen, comme défini sur la page de configuration <guilabel +>Collection de documentation Doxygen</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>dockdevtocpluginrc</filename +> — contient des informations sur les fichiers réels de documentation structurée KDevelopTOC, comme défini sur la page de configuration <guilabel +>Collection de documentation KDevelopTOC</guilabel +>.</para +></listitem> + <listitem +><para +><filename +>docqtpluginrc</filename +> — contient des informations sur les fichiers de documentation QT inclus réellement sur la page de configuration <guilabel +>Collection de documentation QT</guilabel +>.</para +></listitem> +</itemizedlist> + +</sect2 +> <!-- app-files-user-config --> + +</sect1 +> <!-- app-files-user --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="app-files-project"> +<title +>Configuration dépendante d'un projet</title> + +<para +>La plus grande partie de la configuration dépendante d'un projet est conservée dans les fichiers de configuration de projet de &tdevelop; <filename +><nom-projet>.tdevelop</filename +> et <filename +><nom-projet>.kdevses</filename +>, plutôt que dans des fichiers séparés comme les autres réglages de configuration, plus globaux. En bref, ces fichiers sont prévus pour : </para> +<simplelist> + <member +><filename +><nom-projet>.tdevelop</filename +> — informations de configuration globales du projet.</member> + <member +><filename +><nom-projet>.kdevses</filename +> — informations de configuration nécessaires pour rétablir les comportements spécifiques de la session en cours.</member> +</simplelist> +<para +>Ces deux fichiers sont codés en &XML;. Vous pouvez les afficher et les modifier (avec précaution) à l'aide de n'importe quel éditeur de texte. </para> + +<sect2> +<title +>Fichiers « Persistent Code Store »</title> + +<para +>Il y a un troisième fichier de configuration dépendant d'un projet, le <filename +><project-name>.tdevelop.pcs</filename +> Persistant Code Store. C'est un fichier binaire codé contenant un cache d'analyse interne pour la plus grande partie, afin d'accélérer la séquence de chargement du projet. De plus, ce « Persistant Code Store » conserve les informations utilisées par la fonction <guilabel +>Complétement du code</guilabel +> de &tdevelop;. </para> + +<note +><para +>Des fichiers « Persistant Code Store » additionnels peuvent être configurés sur l'onglet <guilabel +>Complétement du code</guilabel +> de la page de configuration de projet <guilabel +>Spécifique au C++</guilabel +>. Des informations sur ces <filename +>.pcs</filename +> additionnels sont conservées globalement dans le dossier <filename class="directory" +>$<envar +>KDEHOME</envar +>/share/apps/kdevcppsupport/pcs/</filename +>. </para +></note> +</sect2> + +</sect1 +> <!-- app-files-project --> + +</appendix +> <!-- app-files --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/app-menu.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/app-menu.docbook new file mode 100644 index 00000000000..6dd8502f321 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/app-menu.docbook @@ -0,0 +1,72 @@ +<appendix id="app-menus"> + +<appendixinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</appendixinfo> + +<title +>Vue d'ensemble des menus et des barres d'outils</title> + +<para +>(... à écrire ...) </para> + +<sect1 id="app-menus-menu"> +<title +>Menus</title> + +<para +>(... à écrire ...) </para> + +<sect2 id="app-menus-menu-common"> +<title +>Menus généralement disponibles</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- app-menus-menu-common --> + +<sect2 id="app-menus-menu-project"> +<title +>Menus propres à un projet</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- app-menus-menu-project --> + +<sect2 id="app-menus-menu-specific"> +<title +>Menus propres aux outils modules externes (plugins)</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- app-menus-menu-specific --> + +</sect1 +> <!-- app-menus-menu --> + +<sect1 id="app-menus-tool"> +<title +>Barres d'outils</title> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- app-menus-tool --> + +</appendix +> <!-- app-menus --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/app-misc-info.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/app-misc-info.docbook new file mode 100644 index 00000000000..8fb01230ac4 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/app-misc-info.docbook @@ -0,0 +1,28 @@ +<appendix id="app-misc-info"> +<title +>Informations complémentaires</title> +<sect1 id="gettinginformation"> +<title +>Obtention des informations</title> +<para +>(... à écrire ...) </para> +</sect1 +> <!-- gettinginformation --> + +<sect1 id="app-reporting-bugs"> +<title +>Rapports de bogues</title> +<para +>(... à écrire ...) </para> +</sect1 +> <!-- app-reporting-bugs --> + +<sect1 id="app-licensing"> +<title +>Licence</title> +&underFDL; &underGPL; </sect1 +> <!-- app-licensing --> +</appendix +> <!-- app-misc-info --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/app-uimodes-examples.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/app-uimodes-examples.docbook new file mode 100644 index 00000000000..65d5e4e85bc --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/app-uimodes-examples.docbook @@ -0,0 +1,172 @@ +<appendix id="app-uimodes-examples"> +<title +>Exemples de mode d'interface utilisateur de &tdevelop;</title> + +<sect1 id="ideal-desc"> +<title +>Mode IDEAl</title> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="tdevelop-ideal-mode.png" format="PNG"/> + </imageobject> + <textobject +><phrase +>Copie d'écran</phrase +></textobject> + <caption +><para +>Mode IDEAI de &tdevelop;</para +></caption> + </mediaobject> +</screenshot> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="tdevelop-ideal-mode-0.png" format="PNG"/> + </imageobject> + <textobject +><phrase +>Copie d'écran</phrase +></textobject> + <caption +><para +>Mode IDEAI de &tdevelop;, onglets fermés</para +></caption> + </mediaobject> +</screenshot> + +<para +>Cet exemple de copie d'écran montre une des qualités principales du mode IDEAI. Il y a un maximum d'espace de travail disponible. De plus, toute vue d'outil est aisément disponible en cliquant sur l'onglet correspondant. </para> +<para +>Il vous faudra certainement un peu de temps pour vous habituer aux icônes dans la barre d'onglets. Si vous êtes perdu, positionnez simplement la souris sur une onglet et attendez quelques secondes. Une courte description dans une infobulle apparaîtra. Dans cette copie d'écran, l'infobulle de « Automake Manager » est présentée à titre d'exemple. Elle décrit l'onglet inférieur dans la barre d'outils de droite. </para> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +</sect1 +> <!-- ideal-desc --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="mdi-desc"> +<title +>Mode fenêtre enfant</title> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="tdevelop-mdi-mode.png" format="PNG"/> + </imageobject> + <textobject +><phrase +>Copie d'écran</phrase +></textobject> + <caption +><para +>Mode fenêtre enfant de &tdevelop;</para +></caption> + </mediaobject> +</screenshot> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +</sect1 +> <!-- mdi-desc --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="tabbed-desc"> +<title +>Mode fenêtre d'onglets</title> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="tdevelop-tabbed-mode.png" format="PNG"/> + </imageobject> + <textobject +><phrase +>Copie d'écran</phrase +></textobject> + <caption +><para +>Mode fenêtre d'onglets de &tdevelop;</para +></caption> + </mediaobject> +</screenshot> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +</sect1 +> <!-- tabbed-desc --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="toplevel-desc"> +<title +>Mode fenêtre au premier niveau</title> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="tdevelop-toplevel-mode.png" format="PNG"/> + </imageobject> + <textobject +><phrase +>Copie d'écran</phrase +></textobject> + <caption +><para +>Mode fenêtre au premier niveau de &tdevelop;</para +></caption> + </mediaobject> +</screenshot> + +<para +>Cliquez <link linkend="uimodes-survey" +>ici</link +> pour retourner à la vue d'ensemble des modes. </para> + +</sect1 +> <!-- toplevel-desc --> + +</appendix +> <!-- app-uimodes-examples --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/applicationwizard.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/applicationwizard.docbook new file mode 100644 index 00000000000..93e706f2a92 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/applicationwizard.docbook @@ -0,0 +1,1354 @@ +<chapter id="applicationwizard"> + +<chapterinfo> + <authorgroup> + <author +> <firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Premiers pas — l'&appwizard;</title> +<!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like --> +<!-- Working With Projects --> +<!-- featuring the application manager as part of the New Projects section. --> + +<indexterm zone="applicationwizard"> + <primary +>&appwizard;</primary +></indexterm> + +<para +>Dans &tdevelop;, les travaux de développement logiciel sont organisés en <emphasis +>projets</emphasis +>. Un tel projet conserve ensemble tout ce qui appartient à une tâche de programmation complète : fichiers source, fichiers de données additionnels, toute fonction de gestion réellement nécessaire comme le système « make », ainsi que l'accès à tous les composants et tout outil supplémentaire requis pour mettre en service et pour exécuter l'application. </para> +<para +>L'organisation de tous les travaux de développement en projets vous permet de passer facilement d'une tâche globale à l'autre à la main. Ceci est très pratique si &pex; vous travaillez sur plusieurs applications en même temps comme c'est souvent le cas. Donnez l'ordre à &tdevelop; d'ouvrir le projet sur lequel vous souhaitez travailler et vous pouvez continuer dans l'environnement à l'endroit précis où vous l'aviez laissé. </para> + +<sect1 id="new-projects"> +<title +>Nouveaux projets</title> + +<!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. --> +<!-- There is no need for a tutorial habit anymore. --> + +<indexterm zone="new-projects"> + <primary +>projet</primary> + <secondary +>nouveau</secondary +></indexterm> + +<para +>Chaque fois que vous voulez lancer un nouveau projet de programmation, un nombre non négligeable de procédures formelles de configuration doit être effectué. Une structure initiale de dossiers doit être mise en place, les en-têtes initiaux et les fichiers sources fournis, le système « make » initialisé, &etc; </para> +<para +>&tdevelop; offre un moyen aisé de lancer un nouveau projet de programmation — l'<emphasis +>&appwizard;</emphasis +>. Vous trouverez l'&appwizard; dans l'élément de menu <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Nouveau projet</guimenuitem +></menuchoice +>. </para> +<para +>Une seule et courte série d'étapes suffit pour démarrer un nouveau projet de programmation à l'aide de l'&appwizard; : </para> +<orderedlist> + <listitem +><para +><link linkend="new-projects-start-type" +>Choisissez le langage de programmation</link +> que vous souhaitez utiliser et le type de l'application que vous voulez construire à partir d'un ensemble de modèles prédéfinis. </para +></listitem> + <listitem +><para +><link linkend="new-projects-start-general" +>Indiquez des informations générales</link +> comme le nom de l'application, le dossier dans lequel l'application devra être construite, &etc; </para +></listitem> + <listitem +><para +>Décidez si vous souhaitez utiliser un <link linkend="new-projects-start-cvs" +>système de contrôle de versions</link +>, comme &pex; CVS, et fournissez les données nécessaires si besoin est. </para +></listitem> + <listitem +><para +>Configurez quelques modèles pour les <link linkend="new-projects-start-templates" +>en-têtes initiaux et les fichiers sources</link +> (si applicable). </para +></listitem> + <listitem +><para +>Pour finir, donnez l'ordre à l'&appwizard; de <link linkend="new-projects-start-build" +>configurer des éléments initiaux</link +>, une structure de dossiers, des modèles d'en-têtes de démarrage et de fichiers source, ainsi que des outils de gestion comme &pex; un squelette « make » initial, &etc; </para +></listitem> +</orderedlist> +<para +>Voilà  — c'est tout. L'&appwizard; a mis à votre disposition un premier ensemble fonctionnel de fichiers de programmation qui vous permet de commencer à travailler dans de bonnes conditions. </para> +<para +>Examinons tout ceci en détail à présent ... </para> + +<sect2 id="new-projects-start"> +<title +>Étapes initiales</title> + +<indexterm zone="new-projects-start"> + <primary +>boîte de dialogue</primary> + <secondary +>créer un nouveau projet</secondary +></indexterm> +<indexterm zone="new-projects-start"> + <primary +>projet</primary> + <secondary +>créer un nouveau projet</secondary> + <tertiary +>boîte de dialogue</tertiary +></indexterm> +<indexterm zone="new-projects-start"> + <primary +>projet</primary> + <secondary +>modèles</secondary +></indexterm> +<indexterm zone="new-projects-start"> + <primary +>modèles</primary> + <secondary +>projet</secondary +></indexterm> + +<para +>Pour créer un nouveau projet dans &tdevelop;, sélectionnez <guimenuitem +>Nouveau projet</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +>. La boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +> apparaît, affichant une page initiale <guilabel +>Géneral</guilabel +> : </para> + +<screenshot id="screenshot-newprojectwizard"> + <mediaobject> + <imageobject> + <imagedata fileref="create-new-project.png" format="PNG"/> + </imageobject> + <caption +><para +>Boîte de dialogue initiale pour configurer un nouveau projet </para +></caption> + </mediaobject> +</screenshot> + +<para +>Comme vous le voyez, cette boîte de dialogue est divisée en une partie supérieure et une partie inférieure. Dans la partie supérieure, vous pouvez décider du langage de programmation et du type de l'application, alors que la partie inférieure contient des informations d'ordre général. </para> + +<sect3 id="new-projects-start-type"> +<title +>Choisissez le langage de programmation et le type de l'application</title> + +<indexterm zone="new-projects-start-type"> + <primary +>projet</primary> + <secondary +>type d'application</secondary +></indexterm> +<indexterm zone="new-projects-start-type"> + <primary +>projet</primary> + <secondary +>langage de programmation</secondary +></indexterm> +<indexterm zone="new-projects-start-type"> + <primary +>projet</primary> + <secondary +>langage</secondary +></indexterm> +<indexterm zone="new-projects-start-type"> + <primary +>langage</primary +></indexterm> +<indexterm zone="new-projects-start-type"> + <primary +>langage de programmation</primary +></indexterm> +<indexterm zone="new-projects-start-type"> + <primary +>application</primary> + <secondary +>type</secondary +></indexterm> + +<para +>Le côté gauche de la partie supérieure de cette boîte de dialogue est l'endroit où vous effectuez le travail de sélection. Lorsqu'elle s'affiche, vous y trouvez une liste de dossiers dont chacun porte le nom d'un langage de programmation comme : </para> + +<itemizedlist> + <listitem +><para +>Ada <indexterm> + <primary +>Ada</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>C <indexterm> + <primary +>C</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>C++ <indexterm> + <primary +>C++</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Base de données (projets SQL) <indexterm> + <primary +>SQL</primary> + <secondary +>nouveau projet</secondary +></indexterm> + <indexterm> + <primary +>Base de données</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Fortran <indexterm> + <primary +>Fortran</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Haskell <indexterm> + <primary +>Haskell</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Java <indexterm> + <primary +>Java</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>PHP <indexterm> + <primary +>PHP</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Pascal <indexterm> + <primary +>Pascal</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Perl <indexterm> + <primary +>Perl</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Python <indexterm> + <primary +>Python</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Ruby <indexterm> + <primary +>Ruby</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Shell (scripts pour le shell Bash) <indexterm> + <primary +>Bash</primary> + <secondary +>nouveau projet</secondary +></indexterm> + <indexterm> + <primary +>shell</primary> + <secondary +>nouveau projet</secondary +></indexterm> + </para +></listitem> +</itemizedlist> + +<para +>Pour être précis, ces dossiers ne contiennent pas d'outils de programmation réels à proprement parler. En revanche, ils donnent accès à des <emphasis +>modèles</emphasis +> prédéfinis que vous pouvez employer comme point de départ pour développer dans ce langage. Pour avoir une idée de ce qui est prévu, il suffit d'ouvrir les dossiers l'un après l'autre. Ils contiennent une série de sous-dossiers sur certains, un ou plusieurs éléments simples seulement sur d'autres. Les sous-dossiers que vous voyez organisent les modèles disponibles en fonction de certaines tâches, les éléments simples nomment les modèles que vous pouvez sélectionner. </para> +<para +>Nous ne pouvons pas préciser davantage ici quelles tâches chaque modèle prévoit, mais il est facile de le découvrir. Quand vous choisissez un élément de modèle, des informations s'affichent dans les champs de droite. Le champ inférieur contient une <emphasis +>courte description</emphasis +> de ce que le modèle est supposé faire. Dans le champ supérieur, une image illustre, si disponible, le résultat de l'application que ce modèle produit si vous le compilez et l'exécutez sans le modifier. Habituellement, c'est une <emphasis +>capture d'écran</emphasis +> de la fenêtre principale que l'application affiche. </para> +<para +>Choisissez le modèle qui correspond le mieux aux objectifs de votre application comme point de départ. Saisissez ensuite les informations générales sur les propriétés dans le champ inférieur, comme expliqué dans le prochain chapitre. </para> + +<formalpara> +<title +>Sélectionner un système de gestion de projet</title> +<para +>Chaque modèle est lié à un <link linkend="makesystems" +>système de gestion de projet</link +> spécifique. Il n'y a actuellement aucun moyen direct de choisir librement un tel système de gestion de projet. Il vous faut trouver un modèle qui convienne à vos besoins ou modifier votre projet en conséquence après création. </para> +</formalpara> + +</sect3 +> <!-- new-projects-start-type --> + +<sect3 id="new-projects-start-general"> +<title +>Fournir des informations générales</title> + +<indexterm zone="new-projects-start-general"> + <primary +>projet</primary> + <secondary +>propriétés</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>propriétés</primary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>application</primary> + <secondary +>nom</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>nom</primary> + <secondary +>application</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>projet</primary> + <secondary +>dossier</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>dossier</primary> + <secondary +>projet</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>chemin</primary> + <secondary +>nouveau projet</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>projet</primary> + <secondary +>auteur</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>projet</primary> + <secondary +>adresse électronique</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>auteur</primary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>adresse électronique</primary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>projet</primary> + <secondary +>main.cpp</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>main.cpp</primary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>projet</primary> + <secondary +>licence</secondary +></indexterm> +<indexterm zone="new-projects-start-general"> + <primary +>licence</primary +></indexterm> + +<para +>La partie inférieure de la boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +> de la page <guilabel +>Général</guilabel +> est un champ encadré intitulé <guilabel +>Propriétés</guilabel +>. Indiquez ici quelques informations d'ordre général sur votre projet de façon à ce que l'&appwizard; sache comment construire la structure initiale. </para> +<formalpara> +<title +>Nom de l'application</title> +<para +>Votre application a bien entendu besoin d'un nom. Saisissez ce dernier dans le champ <guilabel +>Propriétés</guilabel +> supérieur, appelé <guilabel +>Nom de l'application</guilabel +>. Nous utiliserons <quote +>MyApp</quote +> à titre d'exemple. </para> +</formalpara> +<para +>Ce faisant, vous remarquez que l'&appwizard; refuse d'admettre des caractères spéciaux, quels qu'ils soient. Les seuls caractères admis sont : <itemizedlist> + <listitem +><para +>les caractères en majuscules et en minuscules</para +></listitem> + <listitem +><para +>les nombres</para +></listitem> + <listitem +><para +>le caractère de soulignement</para +></listitem> +</itemizedlist> +</para> +<para +>Une cause notable de cette restriction est que l'&appwizard; utilise ce nom d'application comme <emphasis +>base de certains noms de classes</emphasis +> qu'il construit lors de la configuration d'un projet initial. Par conséquent, le nom de l'application doit coller aux règles du langage de programmation que vous employez. </para> +<formalpara> +<title +>Le dossier du projet</title> +<para +>Vous pouvez voir l'autre cause notable de cette restriction sur la ligne inférieure de la zone <guilabel +>Propriétés</guilabel +>. Elle est intitulée <guilabel +>Emplacement cible</guilabel +> et affiche le dossier dans lequel l'&appwizard; crée l'application. </para> +</formalpara> +<para +>Lorsque vous saisissez le nom de l'application, vous remarquez que l'&appwizard; répète votre saisie à la fin de la ligne <guilabel +>Emplacement cible</guilabel +>, en utilisant uniquement des caractères en minuscules. </para> +<para +>Par conséquent, vous devez choisir le nom de votre nouvelle application avec soin. Si vous vous retrouvez avec un dossier déjà utilisé, l'&appwizard; ne vous autorisera pas à passer à l'étape suivante et laissera le bouton <guibutton +>Suivant ></guibutton +> désactivé (grisé). De plus, il vous <emphasis +>avertira</emphasis +> dans ce cas en ajoutant ( le o«ssier / fichier existe déjà ) » à la fin de la ligne <guilabel +>Emplacement cible</guilabel +>. </para> + +<formalpara> +<title +>Le chemin de démarrage</title> +<para +>Il y a deux manières de sélectionner un autre chemin pour votre nouvelle application. L'une consiste à choisir un autre nom. Néanmoins, ce n'est pas toujours faisable (vous pourriez &pex; installer une autre version d'une application déjà existante). À titre d'alternative, vous pouvez choisir un autre chemin vers le dossier de l'application. </para> +</formalpara> +<para +>Le champ de saisie de la deuxième ligne de <guilabel +>Propriétés</guilabel +>, dénommé <guilabel +>Emplacement</guilabel +> permet de le faire. Ce que vous saisissez correspond au <emphasis +>chemin de démarrage</emphasis +> du dossier de développement de la nouvelle application. L'&appwizard; ajoute lenom de l'application à ce chemin lorsqu'il initialise le nouveau projet. Le résultat est affiché sur la ligne <guilabel +>Emplacement cible</guilabel +> pour vous donner un meilleur contrôle sur ce qui se passe. </para> +<para +>L'&appwizard; copie une <emphasis +>valeur initiale</emphasis +> dans le champ <guilabel +>Emplacement</guilabel +> au démarrage. Celle-ci provient de ce que vous avez choisi dans le champ <guilabel +>Dossier des projets par défaut</guilabel +> pendant les <link linkend="setup-general" +>étapes générales de configuration</link +>. Dans notre cas, &tdevelop; est configuré pour utiliser <filename class="directory" +>/home/devel/projets/</filename +> comme chemin initial pour les nouveaux projets. </para> +<para +>Modifiez le contenu du champ <guilabel +>Emplacement</guilabel +> de façon à ce que le dossier de développement d'application affiché sur la ligne <guilabel +>Emplacement cible</guilabel +> soit unique. </para> +<!--TODO add tab description Project Options --> +<note +><para +>Veillez à ce que le chemin que vous saisissez dans le champ <guilabel +>Emplacement</guilabel +> existe déjà . Sinon, vous ne serez pas en mesure de passer à l'étape suivante. L'&appwizard; vous <emphasis +>avertira</emphasis +> à propos des chemins non existants en ajoutant ( non va«lable) à la fin» de la ligne <guilabel +>Emplacement cible</guilabel +>. </para +></note> + +<screenshot id="screenshot-createnewprojectoptions"> + <mediaobject> + <imageobject> + <imagedata fileref="createnewprojectoptions.png" format="PNG"/> + </imageobject> + <caption +><para +>Configurer un nouveau projet pour CVS </para +></caption> + </mediaobject> +</screenshot> + +<formalpara> +<title +>Informations personnelles</title> +<para +>Les champs suivants ne sont pas aussi cruciaux. Saisissez simplement votre nom (&cad; le nom de la personne responsable de l'application) dans le champ <guilabel +>Auteur</guilabel +> ainsi qu'une adresse électronique valable dans le champ <guilabel +>Adresse électronique</guilabel +> de façon à ce que les utilisateurs puissent vous communiquer leurs réactions sur l'application. </para> +</formalpara> + +<note> +<orderedlist> + <listitem +><para +>L'&appwizard; remplit ces champs avec certaines valeurs par défaut, provenant des préréglages d'adresses électroniques du ¢reConfiguration;. Si ces valeurs par défaut dans les champs <guilabel +>Créer un nouveau projet</guilabel +>, <guilabel +>Auteur</guilabel +> et <guilabel +>Adresse électronique</guilabel +> ne conviennent pas, jetez un coup d'Å“il à la configuration de votre courrier dans le ¢reConfiguration;. </para +></listitem> + <listitem +><para +>L'&appwizard; intégrera ces informations dans les modèles du programme de démarrage, si applicable. Dans les programmes C++ de &kde;, &pex;, vous les trouverez au début du fichier source <filename +>main.cpp</filename +>. </para +></listitem> + <listitem +><para +>De tous les champs, <guilabel +>Adresse électronique</guilabel +> est <emphasis +>optionnel</emphasis +>, illustrant le fait que tous les développeurs ne peuvent pas avoir accès à l'internet. Vous pouvez laisser ce champ vide si vous le souhaitez et continuer néanmoins. </para +></listitem> +</orderedlist> +</note> + +<formalpara> +<title +>Infos de version et de licence</title> +<para +>Saisissez pour finir un numéro de version de départ pour votre nouvelle application dans le champ <guilabel +>Version</guilabel +>, et choisissez la licence sous laquelle vous souhaitez que votre application soit placée dans l'onglet <guilabel +>Licence</guilabel +>. </para> +</formalpara> + +<para +>Si vous sélectionnez un type d'application pour lequel l'&appwizard; fournit des modèles de textes sources courants (&pex;, C/C++), vous pouvez voir le texte de notification sur la troisième page de cette boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +> (reportez-vous au chapitre <link linkend="new-projects-start-templates" +>Fournir des modèles de sources et d'en-têtes</link +>). </para> +<para +>Si vous avez sélectionné « Personnalisée » dans l'onglet <guilabel +>Licence</guilabel +>, prévoyez un texte de licence qui vous est propre. </para> + +<note +><para +>Les informations de version et de licence seront également intégrées dans les modèles de départ dans un format approprié que fournit le type d'application que vous avez choisi. </para +></note> + +<para +>Une fois que avez correctement saisi toutes ces informations, cliquez sur le bouton <guibutton +>Suivant ></guibutton +> pour continuer, comme décrit dans les chapitres suivants. </para> +</sect3 +> <!-- new-projects-start-general --> + +</sect2 +> <!-- new-projects-start --> + +<sect2 id="new-projects-start-cvs"> +<title +>Fournir des informations sur le système de versions</title> + +<indexterm zone="new-projects-start-cvs"> + <primary +>CVS</primary> + <secondary +>nouveau projet</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs"> + <primary +>projet</primary> + <secondary +>CVS</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs"> + <primary +>base de données</primary> + <secondary +>CVS</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs"> + <primary +>version</primary> + <secondary +>base de données</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs"> + <primary +>version</primary> + <secondary +>CVS</secondary +></indexterm> + +<para +>Dans une seconde étape, l'&appwizard; vous conduit à la page <guilabel +>Système de contrôle des versions</guilabel +> dans laquelle vous pouvez décider du système de contrôle de versions que vous souhaitez utiliser. </para> + +<note +><para +>Cette description se concentre sur les besoins pour la seule création d'un projet. Pour plus d'informations sur &CVS;, reportez-vous au chapitre <link linkend="cvs" +>Utilisation de &CVS;</link +> ci-dessous. </para +></note> + +<formalpara> +<title +>Aucun système de contrôle de versions souhaité</title> +<para +>Initialement, « Aucun » est sélectionné dans l'onglet <guilabel +>Système de contrôle de versions</guilabel +> : la page sera donc vide en principe. Si vous ne voulez pas utiliser de système de contrôle de versions, il suffit de cliquer sur le bouton <guibutton +>Suivant ></guibutton +> et de continuer. </para> +</formalpara> + +<formalpara> +<title +>Utilisation de &CVS;</title> +<para +>Dans le cas contraire, sélectionnez à nouveau le système de contrôle de versions que vous souhaitez employer dans l'onglet <guilabel +>Système de contrôle des versions</guilabel +>. Pour notre exemple, il s'agit de « &CVS; ». Si vous choisissez ce dernier, l'&appwizard; réaffiche la page, montrant à présent une série de champs qu'il vous faut remplir. </para> +</formalpara> + +<screenshot id="screenshot-newproject-cvs"> + <mediaobject> + <imageobject> + <imagedata fileref="create-new-project-cvs.png" format="PNG"/> + </imageobject> + <caption +><para +>Configurer un nouveau projet pour CVS </para +></caption> + </mediaobject> +</screenshot> + +<para +>Un système de contrôle de versions tel que &CVS; (qui signifie C oncurr«ent Versions System », système de versions concurrentes) enregistre des copies des fichiers des projets sélectionnés dans une sorte de base de données. Si vous utilisez &CVS;, vous pouvez entre autres déposer sur le serveur (faire un « commit ») ces fichiers ou les importer dans le dossier de votre projet (faire un c heckou«t », ou les mettre à jour (faire un « update »). Notez en particulier que les fichiers contenus dans la base de données du système de versions sont enregistrés de manière structurée qui vous permet de toujours revenir à un état de développement antérieur si besoin est. En outre, &CVS; permet à un grand nombre de développeurs de collaborer assez facilement sur un gros projet (tel que &tdevelop;) sans perturber le travail de chacun d'eux. </para> + +<indexterm zone="new-projects-start-cvs-root"> + <primary +>CVS</primary> + <secondary +>racine</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-root"> + <primary +>racine</primary> + <secondary +>CVS</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-root"> + <primary +>CVS</primary> + <secondary +>local</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-root"> + <primary +>CVS</primary> + <secondary +>distant</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-root"> + <primary +>CVS local</primary +></indexterm> +<indexterm zone="new-projects-start-cvs-root"> + <primary +>:local:</primary +></indexterm> +<indexterm zone="new-projects-start-cvs-root"> + <primary +>CVS</primary> + <secondary +>:local:</secondary +></indexterm> + +<formalpara id="new-projects-start-cvs-root"> +<title +>Racine de &CVS;</title> +<para +>&CVS; doit <emphasis +>gérer</emphasis +> la base de données du système de versions qu'il garde de vos fichiers de projets. Pour ce faire, il conserve certaines informations spéciales de la base de données dans un dossier propre, appelé <emphasis +>&CVS; root</emphasis +>. La première étape pour configurer &CVS; pour votre nouveau projet consiste donc à indiquer à &tdevelop; où se trouve cette racine. </para> +</formalpara> + +<para +><emphasis +>Local &CVS; root.</emphasis +> Il y a deux possibilités essentielles. Soit vous souhaitez utiliser une base de données &CVS; <emphasis +>locale</emphasis +>, soit une base de données hébergée sur un <emphasis +>serveur distant</emphasis +>. Si vous développez pour vous-même, vous pouvez être amené à employer la base de données &CVS; comme une sorte de système de sauvegarde sur votre propre ordinateur. Habituellement, celle-ci est installée à la racine de votre dossier personnel et porte le nom <filename +>cvsroot</filename +>. Voici à quoi elle ressemble : </para> +<para +><userinput +><filename class="directory" +>/home/devel/cvsroot</filename +></userinput +> (où <filename +>devel</filename +> désigne simplement l'utilisateur d évelop«pement , juste Ȉ titre d'exemple) </para> + +<note +><para +>En fait, il s'agit d'une forme abrégée. Pour être exact, la racine du &CVS; local devra être adressée à l'aide du préfixe <computeroutput +>:local:</computeroutput +>. La forme abrégée n'est autorisée que dans les cas où le nom de fichier commence par une barre oblique (<computeroutput +>/</computeroutput +>). Le nom complet dans notre exemple de racine du &CVS; local ressemblera exactement à  : <filename class="directory" +>:local:/home/devel/ cvsroot</filename +> </para +></note> + +<para +>Saisissez le nom du dossier de la racine &CVS; pour lequel votre système a été configuré dans le champ <guilabel +>Racine du référentiel CVS</guilabel +>. En principe, vous pouvez choisir n'importe quel nom, voire utiliser de multiples bases de données &CVS;, mais il est préférable de coller à la racine du &CVS; dès lors qu'elle est configurée. </para> +<para +><emphasis +>Initialiser une nouvelle racine &CVS;.</emphasis +> S'il n'existe pas encore de racine &CVS;, &tdevelop; peut ordonner au système &CVS; d'en créer une à votre place dans le dossier donné. Cochez simplement la case <guilabel +>Dossier racine pour l'initialisation</guilabel +> sous le champ <guilabel +>Racine du référentiel CVS</guilabel +>. </para> +<note +><para +>Comme nous l'avons vu, &tdevelop; ne <emphasis +>commande</emphasis +> le système &CVS; que pour initialiser une nouvelle racine &CVS;. Il n'a aucune action par lui-même dans ce dossier. Heureusement, &CVS; est assez intelligent pour vérifier si le dossier racine du &CVS; existe déjà . Donc, il n'y a aucun risque si vous avez coché <guilabel +>Dossier racine pour l'initialisation</guilabel +> par inadvertance sur un dosser racine &CVS; déjà existant. </para +></note> + +<para +><emphasis +>Racine du &CVS; distant.</emphasis +> Parfois, il faut conserver la base de données du &CVS; sur un serveur distant, en particulier lorsque plusieurs développeurs travaillent sur le même projet. Saisissez alors l'URL racine du &CVS; de ce serveur dans le champ <guilabel +>Racine du référentiel CVS</guilabel +>. Par exemple, pour accéder au serveur &CVS; de &kde; : </para> +<para +><userinput +><filename class="directory" +>:pserver:monlogin@cvs.kde.org:/home/kde</filename +></userinput +> (où <filename +>monlogin</filename +> désigne le nom de connexion configuré dans votre compte &CVS; &kde;) </para> + +<indexterm zone="new-projects-start-cvs-remote"> + <primary +>CVS distant</primary +></indexterm> +<indexterm zone="new-projects-start-cvs-remote"> + <primary +>:pserver:</primary +></indexterm> +<indexterm zone="new-projects-start-cvs-remote"> + <primary +>:ext:</primary +></indexterm> +<indexterm zone="new-projects-start-cvs-remote"> + <primary +>CVS</primary> + <secondary +>:local:</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-remote"> + <primary +>CVS</primary> + <secondary +>:pserver:</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-remote"> + <primary +>CVS</primary> + <secondary +>:ext:</secondary +></indexterm> + +<formalpara id="new-projects-start-cvs-remote"> +<title +>Types de serveurs &CVS; distants</title> +<para +>Il y a essentiellement deux types de serveurs &CVS; distants largement répandus : le serveur <emphasis +>pserver</emphasis +> qui fonctionne selon un protocole non crypté avec mot de passe sécurisé, et le serveur <emphasis +>ext</emphasis +> qui fait intervenir un transfert de données cryptées rsh ou ssh. On les distingue par le préfixe d'&URL; qu'ils utilisent : </para> +</formalpara> +<para> +<filename +>:pserver:</filename> +</para> +<para +>pour le s erveur« protégé par mot de passe », de type non crypté, et </para> +<para> +<filename +>:ext:</filename> +</para> +<para +>pour un type de serveur crypté rsh ou ssh. Par exemple </para> +<para> +<userinput +><filename class="directory" +>:ext:<replaceable +>mylogin</replaceable +>@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename +></userinput> +</para> +<para +>accède à la racine &CVS; de l'outil de gestion &CVS; <application +>Cervisia</application +> bien connu, sur le serveur de SourceForge. </para> +<para +>Pour bénéficier d'un serveur crypté rsh ou ssh pour un accès &CVS;, indiquez à &tdevelop; le protocole de cryptage à utiliser. Il suffit de saisir <userinput +>rsh</userinput +> ou <userinput +>ssh</userinput +> dans le champ <guilabel +>CVS_RSH</guilabel +> de la page <guilabel +>Système de contrôle des versions</guilabel +>, <guilabel +>Créer un nouveau projet</guilabel +>. </para> + +<note +><para +>Il y a une mise en garde si vous utilisez un serveur crypté pour &CVS; depuis &tdevelop;. Consultez le chapitre <link linkend="cvs" +>Utilisation de &CVS;</link +> pour les détails. </para +></note> + +<indexterm zone="new-projects-start-cvs-repository"> + <primary +>CVS</primary> + <secondary +>référentiel</secondary +></indexterm> +<indexterm zone="new-projects-start-cvs-repository"> + <primary +>référentiel</primary> + <secondary +>CVS</secondary +></indexterm> + +<formalpara id="new-projects-start-cvs-repository"> +<title +>Le référentiel &CVS;</title> +<para +>Jusqu'ici, vous avez indiqué à &tdevelop; où réside la racine &CVS; qui gère la base de données du sytème de versions et la manière d'y accéder. Indiquez-lui à présent sous quel nom vous souhaitez que &CVS; enregistre vos fichiers de projet dans cette base de données. L'endroit qui contiendra vos fichiers de projets dans &CVS; est appelé <emphasis +>référentiel</emphasis +>. </para> +</formalpara> +<para +>En principe, vous pouvez choisir n'importe quel nom pour le référentiel &CVS; de vos fichiers de projets, du moment qu'il adhère aux spécifications de nommage d'un fichier. Néanmoins, la plupart des développeurs utilisent simplement le nom de l'application elle-même. Comme &CVS; crée un dossier portant son nom dans la racine du &CVS;, vous le retrouverez plus facilement si vous lui laissez le nom de l'application. </para> +<para +>Saisissez juste le nom du référentiel de votre choix dans le champ <guilabel +>Référentiel CVS</guilabel +> de la page <guilabel +>Système de contrôle des versions</guilabel +>, <guilabel +>Créer un nouveau projet</guilabel +>. Dans notre exemple, il s'agit de : <userinput +>MonApp</userinput +> </para> + +<warning +><para +><emphasis +>Veillez à ne pas employer un référentiel qui existe déjà  !</emphasis +> Le système &CVS; ne signale rien à propos des fichiers en double, mais supprime en bloc tout ce qui ne produit pas un conflit formel. Vous bouleverserez tout ! </para +></warning> + +<formalpara> +<title +>Les champs restants</title> +<para +>Il ne reste plus beaucoup de choses à faire. L'&appwizard; a déjà configuré les champs restants à votre place. Dans le détail : </para> +</formalpara> +<para +>Le champ <guilabel +>Fournisseur</guilabel +> n'est employé que pour des raisons de compatibilité. Vous pouvez coller au f ournis«seur par déf»aut que l'&appwizard; place ici. </para> +<para +>Le champ <guilabel +>Message</guilabel +> vous permet de commenter le contenu initial de &CVS;. Placez-y le texte de votre choix ou contentez-vous de coller le n ouveau« projet » par défaut que l'&appwizard; a placé ici. </para> +<para +>Le <guilabel +>Marqueur pour la version de diffusion</guilabel +> contient le nom qui marque l'état initial de votre projet. Ce type de <emphasis +>marqueur</emphasis +> désigne un certain stade au sein du référentiel &CVS;, grâce auquel vous pourrez accéder utérieurement à cet état de votre développement. (Vous trouverez d'autres détails dans le chapitre <link linkend="cvs" +>Utilisation de &CVS;</link +>.) </para> +<para +>L'&appwizard; a placé un marqueur d émarre«r » par défaut ici, qui est une proposition intéressante. Contentez-vous d'y adhérer. </para> + +<note> +<para +>Si l'une quelconque de ces informations est erronée, &tdevelop; n'en saura d'ordinaire rien jusqu'au moment de la construction du projet. C'est le système &CVS; qui découvrira ces erreurs lorsqu'il essaiera de construire le référentiel. Vous devez donc garder un Å“il sur la fenêtre <guilabel +>Messages</guilabel +> de &tdevelop; quand le projet est créé, lors de l'étape finale de configuration. Si quoi que ce soit était erroné avec &CVS;, vous verriez, dans la plupart des cas, un message d'erreur comme celui-ci : </para> + +<screen +><computeroutput> +* cd '/home/devel/test' && cvs -d '/home/devel/mycvsroot' \ + import -m 'new project' '' 'vendor' 'start' &&\ + sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \ + '/home/devel/mycvsroot' +* cvs [import aborted]: /home/devel/mycvsroot/CVSROOT: No such file or + directory +* *** Exited with status: 1 *** +</computeroutput +></screen> + +<para +>Si ceci se produit, il faut soit configurer manuellement &CVS; (&tdevelop; devra avoir réussi à initialiser vos fichiers de projets à ce moment), soit supprimer le dossier du projet et redémarrer avec <guimenuitem +>Nouveau projet</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +>. </para> +</note> + +<para +>Après avoir saisi toutes les informations relatives à &CVS;, cliquez sur le bouton <guibutton +>Suivant ></guibutton +> pour continuer. </para> + +<note +><para +>Pour corriger une erreur sur la page <guilabel +>Créer un nouveau projet</guilabel +> précédente, il suffit de cliquer sur le bouton <guibutton +>< Précédent</guibutton +>. Comme l'&appwizard; mémorise vos réglages sur la page actuelle, vous pourrez aisément continuer lorsque vous reviendrez. </para +></note> + +</sect2 +> <!-- new-projects-start-cvs --> + +<sect2 id="new-projects-start-templates"> +<title +>Fournir des modèles d'en-têtes / de sources</title> + +<para +>La prochaine étape vous amène à une série de pages où vous pouvez configurer des informations courantes que vous souhaitez inclure dans vos fichiers sources et vos fichiers d'en-tête, si la tâche à la main le permet. </para> +<para +>Les modèles d'en-têtes et de sources sont fournis pour les applications C et C++, chacun sur sa propre page. Pour d'autres langages, il ne peut y avoir que des modèles de sources. Et dans certains cas, vous trouverez même cette page de modèles vide. </para> +<para +>Si la page est utilisée, l'&appwizard; remplit quelques commentaires d'en-têtes standard qui, pour une application basée sur du C++, pourrait ressembler à ceci : </para> + +<screen +><computeroutput +><literal> +/*************************************************************************** + * Copyright (C) 2003 by Votre Nom * + * vous@vous.com * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +</literal +></computeroutput +></screen> + +<para +>D'autres modèles fournissent des informations similaires dans un format approprié aux définitions du langage de programmation que vous souhaitez utiliser. </para> +<para +>Comme vous l'avez sans doute remarqué, le gestionnaire d'applications a immédiatement saisi les informations que vous avez fournies sur la première page <guilabel +>Général</guilabel +> de la boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +>, notamment le contenu des champs <guilabel +>Auteur</guilabel +> et <guilabel +>Adresse électronique</guilabel +>. De plus, les informations de licence correctes ont été insérées en fonction de votre choix dans l'onglet <guilabel +>Licence</guilabel +>. </para> + +<sect3 id="new-projects-start-templates-edit"> +<title +>Comment modifier les modèles</title> + +<indexterm zone="new-projects-start-templates-edit"> + <primary +>modèles</primary> + <secondary +>projet</secondary> + <tertiary +>modifier</tertiary +></indexterm> +<indexterm zone="new-projects-start-templates-edit"> + <primary +>projet</primary> + <secondary +>modèles</secondary> + <tertiary +>modifier</tertiary +></indexterm> + +<para +>Les modèles que vous avez configurés dans la boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +> seront traités ultérieurement chaque fois que vous ordonnez à &tdevelop; de configurer un nouveau source et/ou fichier d'en-tête. Les informations que vous avez fournies ici seront inclues au début sous la forme d'un en-tête de documentation, avant que les parties de code ne commencent. </para> +<para +>Vous n'êtes pas limité au texte pur cependant. &tdevelop; connaît plusieurs variables qui vous permettent d'inclure des informations réelles dans le fichier. L'&appwizard; n'a en fait pas utilisé de telles variables pour insérer les informations d'<guilabel +>Auteur</guilabel +>, d'<guilabel +>Adresse électronique</guilabel +> et de <guilabel +>Licence</guilabel +> dans le texte du modèle initial. </para> + +<variablelist> +<varlistentry> +<term +>Inclure des informations sur des fichiers &doxygen;</term> +<listitem> +<para +>Si, par exemple, vous souhaitez que la documentation de l'&API; construite par &doxygen; affiche des informations complémentaires sur le contenu du fichier dans sa liste de noms de fichiers, vous pouvez inclure les lignes suivantes dans le modèle de fichier source : </para> +<screen +><computeroutput> +/** + * \file $MODULE$.cpp + * \brief (placer une courte description ici). + **/ +</computeroutput +></screen> +<para +>Chaque fois que vous créez un nouveau fichier source, &tdevelop; remplace la variable <computeroutput +>$MODULE$</computeroutput +> par le corps du nom du fichier récemment créé. Par exemple, si vous avez créé une nouvelle classe C++ nommée <classname +>UnSimpleTest</classname +>, vous verrez les lignes suivantes dans le fichier <filename +>unsimpletest.cpp</filename +> : </para> +<screen +><computeroutput> +/** + * \file asimpletest.cpp + * \brief (placer une courte description ici). + **/ +</computeroutput +></screen> +<para +>Vous devrez encore ajouter la courte description après le mot-clé « \brief », mais une partie de ce travail est automatiquement effectuée à votre place. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Le fichier texte de la licence</term> +<listitem> +<para +>Comme autre exemple, vous pourriez inclure un conseil explicite au texte de la licence que vous souhaitez employer dans le modèle. Utilisez la variable <computeroutput +>$LICENSEFILE$</computeroutput +> pour ce faire et ajoutez par exemple cette ligne : </para> + +<screen +><computeroutput> +// Voir $LICENSEFILE$ pour le texte complet de la licence. +</computeroutput +></screen> +<para +>L'&appwizard; remplace la variable <computeroutput +>$LICENSEFILE$</computeroutput +> par le nom du fichier dans lequel se trouve la licence complète, à savoir : </para> +<screen +><computeroutput> +// Voir COPYING pour le texte complet de la licence. +</computeroutput +></screen> +<para +>pour la licence <acronym +>GPL</acronym +> ou </para> +<screen +><computeroutput> +// Voir LICENSE.BSD pour le texte complet de la licence. +</computeroutput +></screen> +<para +>Si vous avez décidé de placer votre application sous l'égide de la licence <acronym +>BSD</acronym +>. </para> +<para +>&tdevelop; connaît bien sûr d'autres variables. Reportez-vous à la section <link linkend="newfiles-edittemplates" +>Édition des modèles</link +> dans le chapitre <link linkend="editing" +>Édition des outils</link +> pour savoir ce qui est possible. </para> +</listitem> +</varlistentry> +</variablelist> + +<note +><para +>Les modèles que vous définissez ici entreront en vigueur uniquement après que l'&appwizard; a créé le nouveau projet. Vous trouverez ces informations au début des fichiers que vous avez créés vous-même dans le processus de développement. Lors de la création des fichiers initiaux, l'&appwizard; utilise quelques modèles standard prédéfinis. Vous devrez adapter manuellement ces fichiers initiaux à vos besoins. </para +></note> + +</sect3 +> <!-- new-projects-start-templates-edit --> +</sect2 +> <!-- new-projects-start-templates --> + +<sect2 id="new-projects-start-build"> +<title +>Construire les fichiers initiaux du projet</title> + +<indexterm zone="new-projects-start-build"> + <primary +>projet</primary> + <secondary +>nouveau</secondary> + <tertiary +>construire</tertiary +></indexterm> +<indexterm zone="new-projects-start-build"> + <primary +>projet</primary> + <secondary +>construction initiale</secondary +></indexterm> + +<para +>Presque tout est fait à présent. Sur la dernière page des modèles, le bouton <guibutton +>Suivant ></guibutton +> aura changé pour désormais lire <guibutton +>Terminer</guibutton +>. </para> +<para +><emphasis +>Réfléchissez bien avant de cliquer dessus !</emphasis +> Vous avez encore la possibilité de tout revoir en cliquant à plusieurs reprises sur le bouton <guibutton +>< Précédent</guibutton +>. Comme l'&appwizard; mémorise toutes les informations que vous avez saisies jusqu'ici, il est recommandé de prendre le temps de revenir en arrière encore une fois. Au cas où vous utilisez &CVS; en local, n'oubliez pas de cocher deux fois le nom du <emphasis +>référentiel &CVS;</emphasis +> (il ne devrait pas y avoir déjà de sous-dossier de ce nom dans le dossier racine de &CVS; — si tel est le cas, essayez un autre nom de référentiel). </para> +<para +>Si jamais vous ne souhaitez pas que le nouveau projet soit construit, interrompez la boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +> par le bouton <guibutton +>Annuler</guibutton +>. Sinon, cliquez sur <guibutton +>Terminer</guibutton +> et surveillez dans la fenêtre <guilabel +>Messages</guilabel +> la manière dont l'&appwizard; lance le projet. </para> +<para +>Pour utiliser un système de contrôle de versions (&CVS;), il y a deux exécutions en fait. L'&appwizard; construit d'abord les dossiers et les fichiers du projet, puis appelle le programme &CVS; qui redémarre la fenêtre <guilabel +>Messages</guilabel +> avec son propre contenu. Si une erreur quelconque se produit dans l'une de ces exécutions, le processus s'arrête, affichant un message d'erreur approprié dans la fenêtre. </para> + +<note +><para +>Dans de nombreux cas, quand votre nouveau projet a été configuré de cette manière, &tdevelop; charge automatiquement le(s) fichier(s) source(s) d'un ou plusieurs modules importants de base, de façon à pouvoir commencer à travailler. (Les modules sources à afficher seront affichés —s'il y a lieu bien sûr — tout dépend du modèle initialement sélectionné dans l'&appwizard;.) </para +></note> + +<para +>N'oubliez pas de vérifier d'abord ce que l'&appwizard; a fourni. Par exemple,vous pouvez être amené à changer les informations d'en-tête initiales en fonction de vos propres modèles. Vous les trouverez habituellement dans un sous-dossier <filename class="directory" +>modèles</filename +>, dans votre dossier de projet. Quelques opérations de copies simples suffiront le plus souvent. </para> +<para +>Il est ensuite conseillé de <emphasis +>compiler le projet initial</emphasis +> avant de tenter de changer du code. Dans la plupart des cas, cette compilation initiale devrait être possible. Par conséquent, vous pouvez rattraper si le projet a été réellement configuré en fonction de vos besoins. Dans le cas contraire, supprimez simplement le dossier du projet (dans votre racine &CVS; local également si vous en utilisez une) puis redémarrez. </para> + +<warning id="defaultbuild-warning" +> <!-- ### remove this when "default" works again --> + + <indexterm zone="defaultbuild-warning"> + <primary +>configuration de la construction par défaut</primary> + <secondary +>avertissement</secondary +></indexterm> + <indexterm zone="defaultbuild-warning"> + <primary +>configurations de la construction</primary> + <secondary +>avertissement de la construction par défaut</secondary +></indexterm> + <indexterm zone="defaultbuild-warning"> + <primary +>avertissement</primary> + <secondary +>configuration de la construction par défaut</secondary +></indexterm> + + <para +>Avant de compiler votre nouveau projet pour la première fois, jetez un coup d'Å“il à <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Configuration de construction</guimenuitem +></menuchoice +>. S'il y a trois sélections affichées : <guimenuitem +>par défaut</guimenuitem +>, <guimenuitem +>optimisée</guimenuitem +> et <guimenuitem +>débogage</guimenuitem +>, avec <guimenuitem +>débogage</guimenuitem +> sélectionné, collez à celui-ci sans hésiter ou utilisez <guimenuitem +>optimisée</guimenuitem +> à la place. </para> + <para +>En raison de certaines restrictions dans l'installation actuelle de autoconf/automake, vous ne devez <emphasis +>en aucun cas</emphasis +> compiler dans la configuration <guimenuitem +>par défaut</guimenuitem +>. Cette opération corromprait certains paramètres internes du dossier, amenant <command +>configure</command +> à réagir quand vous essaierez de l'utiliser dans la configuration de construction <guimenuitem +>optimisée</guimenuitem +> ou <guimenuitem +>débogage</guimenuitem +> par la suite. </para> + <para +>(Ceci ne s'applique qu'à ces capacités de multisélection. Si le type d'application que vous avez choisi prévoit uniquement une configuration de construction <guimenuitem +>par défaut</guimenuitem +>, vous devrez bien sûr utiliser cette dernière.) </para> +</warning> + +</sect2 +> <!-- new-projects-start-build --> + +</sect1 +> <!-- new-projects --> + +<sect1 id="projects-configure"> +<title +>Configurer des projets</title> + +<para +>(... à écrire ...)</para> + +</sect1> + +</chapter +> <!-- applicationwizard --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/class-browsers.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/class-browsers.docbook new file mode 100644 index 00000000000..b20ab5abb4c --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/class-browsers.docbook @@ -0,0 +1,79 @@ +<chapter id="class-browsers"> +<title +>Les navigateurs de classes</title> +<indexterm zone="class-browsers" +><primary +>navigateur de classes</primary +></indexterm> + +<para +>Quand vous travaillez sur un projet dans un langage orienté objet, votre attention ne se porte pas sur les fichiers sources et leurs noms, mais sur les classes et leurs relations. Afin de vous aider à naviguer dans l'espace des classes et des symboles définis, &tdevelop; offre divers navigateurs de classes qui visualisent la structure des classes de différentes manières. </para> + +<sect1 id="classview"> +<title +>Vue des classes</title> + +<para +>Cette vue est affichée sur le côté gauche de la fenêtre principale et contient une liste linéaire de toutes les classes, variables et fonctions de votre projet. Elle est conçue sous la forme d'une vue arborescente. Si vous ouvrez un nÅ“ud de classe en cliquant dessus, une liste contenant toutes les méthodes et attributs de la classe respective est affichée. </para> + +<figure id="screenshot-classview" float="1"> +<title +>Une copie d'écran de la vue des classes</title> +<mediaobject> +<imageobject +><imagedata fileref="classview.png"/></imageobject> +</mediaobject> +</figure> + +<para +>La vue des classes fonctionne dans deux modes différents. Par défaut, tous les symboles sont groupés en « classes », « structs », « fonctions », « variables » et « espaces de noms ». Dans le menu contextuel de la vue, vous pouvez choisir <guimenuitem +>Liste par espaces de noms</guimenuitem +>. Dans ce mode, la hiérarchie des espaces de noms est affichée et les symboles groupés dans l'espace de noms respectif où ils sont définis. Ce peut être plus utile dans les projets qui emploient intensivement les noms d'espaces (imbriqués), moins utile dans les projets sans espaces de noms. </para> + +<para +>Vous pouvez également changer la manière dont les noms de classes sont affichés. Normalement, les noms des classes sont présentés sans l'espace de noms dans lequel ils sont définis. Cela signifie que vous ne pouvez pas distinguer immédiatement les classes du même nom dans des espaces de noms différents. Si vous laissez un laissez un instant votre souris sur un élément, le nom pleinement étendu s'affiche sous la forme d'une infobulle néanmoins. Vous pouvez décider de toujours afficher le nom de classe pleinement étendu en choisissant <guimenuitem +>Portées des identifiants complets</guimenuitem +> dans le menu contextuel. </para> + +<para +>Cliquer sur une classe ou une méthode dans la vue des classes fait apparaître sa définition. Vous pouvez également passer directement à la déclaration d'une méthode en choisissant <guimenuitem +>Aller à la déclaration</guimenuitem +> dans le menu contextuel. Dans le menu contextuel pour les classes, se trouvent aussi les éléments <guimenuitem +>Ajouter une méthode...</guimenuitem +> et <guimenuitem +>Ajouter un attribut...</guimenuitem +>. Ceux-ci ouvrent des boîtes de dialogue où vous pouvez générer une nouvelle déclaration de méthode et de variable dans la classe respective, associée à une implémentation vide. </para> + +</sect1 +> <!-- classview --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="classtools"> +<title +>Outils pour la gestion des classes</title> + +<para +>La boîte de dialogue des outils pour la gestion des classes est activée dans la vue des classes et en choisissant <guimenuitem +>Outils pour la gestion des classes...</guimenuitem +>. </para> + +</sect1 +> <!-- classtools --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="classhierarchy"> +<title +>Hiérarchie des classes</title> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- classhierarchy --> + +</chapter +> <!-- class-browsers --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/commands.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/commands.docbook new file mode 100644 index 00000000000..308e0e7f92c --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/commands.docbook @@ -0,0 +1,2999 @@ +<chapter id="commands"> + +<!-- TODO +- CAUTION: Check everything against actual KDevelp behaviour. Do not rely on tool tips etc. +- Summarize menu entries, like in getting-started. +- Complete descriptions, e.g. from What's This. +- Link to more detailed description, e.g. in plugin chapter. +--> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Volker</firstname +> <surname +>Paul</surname +></author> + <othercredit role="translator" +><firstname +>Joëlle</firstname +><surname +>Cornavin</surname +><affiliation +><address +><email +>jcornavi@club-internet.fr</email +></address +></affiliation +><contrib +>Traduction française par </contrib +></othercredit +> + </authorgroup> + + <date +>04-03-2005</date> +</chapterinfo> + +<title +>Référence des commandes</title> + +<note +><para +>Les combinaisons de raccourcis clavier présentées dans ce chapitre sont celles par défaut. Elles peuvent être changées. </para +></note> + + + +<sect1 id="menubar"> +<title +>La barre de menus</title +> <para +>Notez que certains éléments de menu n'apparaissent que quand ils sont applicables. En particulier, certains élément sont liés à la fonctionnalité <link linkend="plugin-tools" +>module externe</link +> qui n'est disponible quand le module externe est activé.</para> + + + + + + +<!-- ======================= F I L E ============================= --> + +<sect2 id="menu-file"> +<title +>Le menu <guimenu +>Fichier</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>N</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Nouveau</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Crée un nouveau fichier. L'utilisateur est invité à sélectionner le dossier (par défaut : le dossier source du projet en cours) et à saisir un nom de fichier. Le type du fichier peut être sélectionné à partir d'une liste. De plus, l'utilisateur peut choisir si le fichier doit être ajouté au projet. Puis, le gestionnaire Automake demande quelle est la cible à ajouter au nouveau fichier. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>O</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Ouvrir</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ouvre un fichier existant dans une boîte de dialogue simple.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>O</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Récemment ouvert(s)</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche un sous-menu montrant les fichiers récemment ouverts. Sélectionner un de ceux-ci le fait ouvrir à KDevelop. </para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>O</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Ouverture rapide</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Présente une liste de fichiers dans le dossier source du projet actuel. L'utilisateur peut faire une sélection à partir de cette liste ou saisir un nom de fichier. Ce fichier est alors ouvert. </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Enregistrer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Enregistre le fichier actuel.</para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Enregistrer sous...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Utilise la boîte de dialogue <guilabel +>Enregistrer sous...</guilabel +> pour vous permettre d'enregistrer une copie sous un nouveau nom.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Fichier</guimenu +> <guimenuitem +>Tout enregistrer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Enregistre tous les fichiers ouverts</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +><keycap +>F5</keycap +></shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Recharger</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Recharge le fichier actuel pour montrer les changements effectués par différents programmes (Notez que de tels changements sont en principe détectés automatiquement et que l'utilisateur reçoit une invite quand le fichier doit être rechargé).</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Fichier</guimenu +> <guimenuitem +>Tout annuler</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Annule tous les changements dans les fichiers ouverts. Invite à enregistrer les changements, de sorte que la révision peut être annulée pour chaque fichier modifié. </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>P</keycap +></keycombo +> </shortcut +> <guimenu +>Filchier</guimenu +> <guimenuitem +>Imprimer...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Imprime</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Fichier</guimenu +> <guimenuitem +>Exporter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Exporte </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F4</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Fermer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme le fichier actuel </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Fichier</guimenu +> <guimenuitem +>Tout fermer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme tous les fichiers ouverts </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Fichier</guimenu +> <guimenuitem +>Fermer tous les autres</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme tous les fichiers sauf celui en cours. Très utile si vous avez ouvert beaucoup de fichiers et que vous voulez vous concentrer sur l'actuel. Sans cela, vous devriez les fermer tous et rouvrir celui actuellement ouvert. </para> +<para +>Notez qu'il y a une commande similaire dans le menu Fenêtre. </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Q</keycap +></keycombo +> </shortcut +> <guimenu +>Fichier</guimenu +> <guimenuitem +>Quitter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme KDevelop</para +></listitem> +</varlistentry> + +</variablelist> + +</sect2> + + + +<!-- ======================= E D I T ============================= --> + + +<sect2 id="menu-edit"> +<title +>Le menu <guimenu +>Édition</guimenu +></title> + + +<variablelist> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Z</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Annuler</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Annule </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>Z</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Refaire</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Refait </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>X</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Couper</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Couper </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Copier</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Copie </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>V</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Coller</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Colle </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>A</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Tout sélectionner</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Sélectionne tout </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>A</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Désélectionner</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Désélectionne </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>B</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Mode de sélection par blocs</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Mode de sélection par blocs </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>Insérer</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Mode écrasement</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Mode écrasement </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Chercher</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Cherche </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F3</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Poursuivre la recherche</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Poursuit la recherche </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Maj;<keycap +>F3</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Chercher en arrière</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Cherche en arrière </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>R</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Remplacer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Remplace </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>G</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Aller à la ligne</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Va à la ligne </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Chercher dans les fichiers</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Cherche dans les fichiers </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Maj;<keycap +>R</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Chercher / Sélectionner / Remplacer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Cherche, sélectionne et remplace </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Reformater le code source</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Reformate le source </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>J</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Étendre le texte</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Étend le texte </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>L</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Développer l'abréviation</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Développe l'abréviation </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Espace</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Compléter le texte</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Complète le texte </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F2</keycap +></keycombo +> </shortcut +> <guimenu +>Édition</guimenu +> <guimenuitem +>Ajouter un membre</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ajoute un membre </para +></listitem> +</varlistentry> + + +</variablelist> + +</sect2> + + + +<!-- ======================= V I E W ============================= --> + + +<sect2 id="menu-view"> + +<title +>Le menu <guimenu +>Affichage</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Précédent</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Précédent </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Suivant</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Suivant </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>/</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Basculer vers...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Basculer vers... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Mettre l'éditeur au premier plan</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Met l'éditeur au premier plan </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F4</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Erreur suivante</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Erreur suivante </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Maj;<keycap +>F4</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Erreur précédente</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Erreur précédente </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Maj;<keycap +>F</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Mode plein écran</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Mode plein écran </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F12</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Basculer entre la déclaration / implémentation</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Bascule entre la déclaration et l'implémentation </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Vues des outils</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Tool Views </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Afffichage</guimenu +> <guimenuitem +>Incrustation des outils</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Incrustation des outils </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F7</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Basculer dans la ligne de commande</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Bascule dans la ligne de commande </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Schéma</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Schéma </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F10</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Retour à la ligne dynamique</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Retour à la ligne dynamique </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Indicateurs de retour à la ligne dynamique</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Indicateurs de retour à la ligne dynamique </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Afficher / Cacher l'indicateur de retour à la ligne statique</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche / Cache l'indicateur de retour à la ligne statique </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F6</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Afficher / Cacher la bordure d'icônes</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche / Cache la bordure d'icônes </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F11</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Afficher / Cacher les numéros de ligne</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche / Cache les numéros de ligne </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Afficher / Cacher les repères sur les barres de défilement</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche / Cache les repères sur les barres de défilement </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F9</keycap +></keycombo +> </shortcut +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Afficher / Cacher les indicateurs de pliage</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche / Cache les indicateurs de pliage </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Pliage du code</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Pliage du code </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Définir l'encodage</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Définit l'encodage </para +></listitem> +</varlistentry> + + + +</variablelist> + +</sect2> + + + + +<!-- ======================= P R O J E C T ============================= --> + + +<sect2 id="menu-project"> +<title +>Le menu <guimenu +>Projet</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Nouveau projet...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Nouveau projet... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Ouvrir un projet...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ouvre un projet... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Projet(s) récemment ouvert(s)</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Projet(s) récemment ouvert(s) </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Langage actif</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Langage actif </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Importer un projet existant...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Importe un projet existant... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Nouvelle classe...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Nouvelle classe... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Diagramme d'héritage des classes</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Diagramme d'héritage des classes </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Ajouter une traduction...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ajoute une traduction... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Configuration de compilation</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Configuration de compilation </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Distribution et publication</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Distribution et publication </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Options du projet </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Fermer le projet</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme le projet </para +></listitem> +</varlistentry> + + + + +</variablelist> + +</sect2> + + +<!-- ======================= B U I L D ============================= --> + + +<sect2 id="menu-build"> +<title +>Le menu <guimenu +>Projet</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F8</keycap +></keycombo +> </shortcut +> <guimenu +>Construire</guimenu +> <guimenuitem +>Construire le projet</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Construit le projet </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>F7</keycap +></keycombo +> </shortcut +> <guimenu +>Construire</guimenu +> <guimenuitem +>Construire la cible active</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Construit la cible active </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Compiler le fichier</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Compile le fichier </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Exécuter le script « configure »</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Exécute le script « configure » </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Exécuter « automake » et ses amis</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Exécute « automake » et ses amis </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Installer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Installe </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Installer (en tant qu'utilisateur « root »)</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Installe (en tant qu'utilisateur « root ») </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Nettoyer le projet</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Nettoie le projet </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Purger</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Purge </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Maj;<keycap +>F9</keycap +></keycombo +> </shortcut +> <guimenu +>Construire</guimenu +> <guimenuitem +>Extraire et fusionner les messages</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Extrait et fusionne les messages </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Exécuter le programme</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Exécute le programme </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Construire la documentation de l'API</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Construit la documentation de l'API </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Nettoyer la documentation de l'API</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Nettoie la documentation de l'API </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +><keycap +>Échap</keycap +></keycombo +> </shortcut +> <guimenu +>Construire</guimenu +> <guimenuitem +>Arrêter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Arrête </para +></listitem> +</varlistentry> + + + + +</variablelist> + +</sect2> + + + +<!-- ======================= D E B U G ============================= --> + + +<sect2 id="menu-debug"> +<title +>Le menu <guimenu +>Projet</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Démarrer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Démarre </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Arrêter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Arrête </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Interrompre</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Interrompt </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Exécuter jusqu'au curseur</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Exécute jusqu'au curseur </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>À la ligne suivante</guimenuitem +> </menuchoice +></term> +<listitem +><para +>À la ligne suivante </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Instruction suivante</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Instruction suivante </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Aller à la ligne suivante</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Va à la ligne suivante </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Aller à l'instruction suivante</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Va à l'instruction suivante </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Aller à la ligne suivante en sortant</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Va à la ligne suivante en sortant </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Basculer le point d'arrêt</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Bascule le point d'arrêt </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Afficheurs</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Afficheurs </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Examiner un fichier « core »...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Examine un fichier « core »... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Attacher au processus</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Effectue l'attachement au processus </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Vérification des pertes de mémoire avec « Valgrind »</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Vérifie les pertes de mémoire avec « Valgrind » </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Profiler avec « KCachegrind »</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Profile avec « KCachegrind » </para +></listitem> +</varlistentry> + + + + +</variablelist> + +</sect2> + + + + + +<!-- ======================= B O O K M A R K S ============================= --> + + + +<sect2 id="menu-bookmarks"> +<title +>Le menu <guimenu +>Signets</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>B</keycap +></keycombo +> </shortcut +> <guimenu +>Signets</guimenu +> <guimenuitem +>Définir un signet</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ajoute la sélection actuelle à vos signets.</para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Signets</guimenu +> <guimenuitem +>Effacer tous les signets</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Efface tous les signets.</para +></listitem> +</varlistentry> +</variablelist> + +</sect2> + + + + +<!-- ======================= W I N D O W ============================= --> + + +<sect2 id="menu-window"> +<title +>Le menu <guimenu +>Fenêtre</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;<keycap +>W</keycap +></keycombo +></shortcut +> <guimenu +>Fenêtre</guimenu +> <guimenuitem +>Fermer les fenêtres sélectionnées...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme les fenêtres sélectionnées...</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>F4</keycap +></keycombo +></shortcut +> <guimenu +>Fenêtre</guimenu +> <guimenuitem +>Ferme</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme la fenêtre</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Fenêtre</guimenu +> <guimenuitem +>Tout fermer</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme tout</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Fenêtre</guimenu +> <guimenuitem +>Fermer toutes les autres</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ferme toutes les autres</para +></listitem> +</varlistentry> + + +</variablelist> + +</sect2> + + + + + + +<!-- ======================= T O O L S ============================= --> + + +<sect2 id="menu-tools"> +<title +>Le menu <guimenu +>Outils</guimenu +></title> + +<variablelist> +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Mode lecture seule</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Mode lecture seule </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Type de fichier</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Mode type de fichier </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Coloration syntaxique</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Mode coloration syntaxique </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Fin de ligne</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Fin de ligne </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Orthographe</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Orthographe </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>I</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Indenter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Indente </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>I</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Désindenter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Désindentation </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Nettoyer l'indentation</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Nettoie l'indentation </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>Tab</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Aligner</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Aligne </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>D</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Commenter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Commente </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>D</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Décommenter</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Décommente </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>U</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Majuscules</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Majuscules </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>U</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Minuscules</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Minuscules </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>U</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Mettre une majuscule à chaque mot</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Met une majuscule à chaque mot </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>J</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Fusionner les lignes</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Fusionne les lignes </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Effectuer les retours à la ligne dans le document</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Effectue les retours à la ligne dans le document </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Afficheur de différences...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Afficheur de différences... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Exécuter une commande...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Exécute une commande... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Choix d'un filtre par une commande...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Filtre la sélection via une commande externe à l'aide du <link linkend="KDevFilter" +>module externe « filter »</link +>. </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Déboguer l'expression rationnelle......</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Débogue l'expression rationnelle... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Afficheur de composants logiciels</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Afficheur de composants logiciels </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>C</keycap +></keycombo +> </shortcut +> <guimenu +>Tools</guimenu +> <guimenuitem +>Ouverture rapide de classe...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ouverture rapide de classe... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>M</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Ouverture rapide de méthode...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ouverture rapide de méthode... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>P</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Aperçu de la sortie Doxygen</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Aperçu de la sortie Doxygen </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;&Maj;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Outils</guimenu +> <guimenuitem +>Documenter la fonction actuelle</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Documenter la fonction actuelle </para +></listitem> +</varlistentry> + + + +</variablelist> + +</sect2> + + + + +<!-- ======================= S E T T I N G S ============================= --> + + +<sect2 id="menu-settings"> +<title +>Le menu <guimenu +>Configuration</guimenu +></title> + + +<variablelist> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Ctrl;<keycap +>M</keycap +></keycombo +></shortcut +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Afficher / Cacher la barre de menus</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Afficher / Cacher la barre de menus.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Barres d'outils</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Ouvre un sous-menu où vous pouvez choisir d'afficher ou de cacher les diverses barres d'outils.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Afficher la barre d'état</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche la barre d'état.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer les raccourcis clavier...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Configure les raccourcis clavier... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer les barres d'outils...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Configure les barres d'outils... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer les notifications...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Configure les notifications... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer l'éditeur...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Configure l'éditeur... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Configure KDevelop... </para +></listitem> +</varlistentry> + + + + +</variablelist> + +</sect2> + + +<!-- ======================= H E L P ============================= --> + + +<sect2 id="menu-help"> +<title +>Le menu <guimenu +>Aide</guimenu +></title> + +<variablelist> + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Manuel de KDevelop</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche ce document.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Maj;<keycap +>F1</keycap +></keycombo +></shortcut +> <guimenu +>Aide</guimenu +> <guimenuitem +>Qu'est-ce que c'est ?</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Trace un point d'interrogation (?) à côté du pointeur de la souris. Cliquez sur un élément de fenêtre tel que le bouton <guiicon +>Arrêter</guiicon +> affichera alors une brève description. </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Astuce du jour</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Astuce du jour </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>I</keycap +></keycombo +> </shortcut +> <guimenu +>Aide</guimenu +> <guimenuitem +>Chercher dans l'index de la documentation...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Cherche dans l'index de la documentation... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><shortcut +> <keycombo action="simul" +>&Alt;&Ctrl;<keycap +>S</keycap +></keycombo +> </shortcut +> <guimenu +>Aide</guimenu +> <guimenuitem +>Chercher dans la documentation...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Cherche dans la documentation... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Pages de manuel...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Pages de manuel... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Page info...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Page info... </para +></listitem> +</varlistentry> + + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Rapport de bogue...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Rapport de bogue.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>À propos de KDevelop...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Affiche de courtes informations à propos du numéro de version, des auteurs et de l'accord de licence de KDevelop.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>À propos de KDE...</guimenuitem +> </menuchoice +></term> +<listitem +><para +>Afficher des informations sur la version de &kde; que vous exécutez.</para +></listitem> +</varlistentry> + +</variablelist> + +</sect2> + + + +</sect1> + + + + +</chapter> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/credits.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/credits.docbook new file mode 100644 index 00000000000..a2221e827f0 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/credits.docbook @@ -0,0 +1,40 @@ +<chapter id="credits"> +<title +>Remerciements</title> + +<sect1 id="credits-contributions"> +<title +>Contributions</title> + +<para> +<itemizedlist> + <listitem +><para +>Le contenu initial de ce manuel a été écrit par Bernd Gehrmann <email +>bernd@tdevelop.org</email +> et Caleb Tennis <email +>caleb@aei-tech.com</email +>. </para +></listitem> + <listitem +><para +>Les chapitres <link linkend="automake-manager-summary" +>Résumé de &automanag;</link +> et <link linkend="automake-manager-operation" +>Fonctionnement du gestionnaire Automake</link +> ont été écrits par Ian Wadham, <email +>ianw@netspace.net.au</email +>). </para +></listitem> +</itemizedlist> +</para> + +</sect1 +> <!-- credits-contributions --> + +<!--CREDITS_FOR_TRANSLATORS--> + +</chapter +> <!-- credits --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/cvs.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/cvs.docbook new file mode 100644 index 00000000000..8b59d76b2b5 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/cvs.docbook @@ -0,0 +1,129 @@ +<chapter id="cvs"> +<title +>Utilisation de &CVS;</title> +<indexterm zone="cvs" +><primary +>CVS</primary +></indexterm> +<indexterm zone="cvs" +><primary +>contrôle de révision</primary +></indexterm> + +<sect1 id="cvs-basics"> +<title +>Bases de &CVS;</title> + +<para +>&CVS; est le système de contrôle de révision auquel beaucoup de projets « open source » - dont &kde; — font appel. Il stocke tous les codes sources dans un emplacement central, appelé le <emphasis +>référentiel</emphasis +>. À partir du référentiel, les développeurs peuvent extraire une version actuelle du projet ou des instantanés de celui-ci à des moments arbitraires. Contrairement à certains autres systèmes de contrôle de révision, il n'est pas nécessaire de <emphasis +>verrouiller</emphasis +> les fichiers sur lesquels on veut travailler. Ainsi, le développement peut être extrêmement parallélisé. </para> + +<para +>Chaque fois qu'un développeur a terminé une tâche, il <emphasis +>valide</emphasis +> (« commits ») son code (accompagné d'un message de journal). &CVS; prend les travaux pour fusionner les changements effectués par plusieurs développeurs. Il peut naturellement arriver que des développeurs travaillent sur le même morceau de code, ce qui a pour conséquence un ensemble conflictuel de changements (en pratique, cela se produit rarement et c'est souvent le signe d'un manque de communication). Dans ce cas, &CVS; rejette une validation. Un fichier peut être validé uniquement après que tous les conflits ont été résolus. </para> + +<para +>Jusqu'ici, ce document s'est borné à une description des fonctionnalités de base de &CVS; qu'on est susceptible de rencontrer. Cependant, &CVS; a beaucoup plus de cordes à son arc : on peut maintenir plusieurs branches d'un projet (&pex; &kde; 1.1.2 et &kde; 2 étaient des branches de l'arborescence de développement de &kde;), fusionner des changements d'une branche à une autre, demander des différences entre révisions, l'historique de révision des fichiers, &etc; </para> + +<para +>&CVS; est implémenté sous la forme d'un système client-serveur. En tant qu'utilisateur, toute la communication avec le référentiel passe par le programme en ligne de commande &cvs;. Une interface utilisateur de niveau plus élevé est disponible grâce à des interfaces comme &cervisia; (<ulink url="http://cervisia.sf.net" +></ulink +>) ou <application +>TkCVS</application +> (<ulink url="http://tkcvs.sf.net" +></ulink +>). Dans &tdevelop;, seule une petite partie de la fonctionnalité de &cvs; qui est importante pour votre travail quotidien peut être utilisée directement. </para> + +<para +>Une bonne connaissance de base de l'utilisation de &CVS; est supposée. En particulier, vous devrez savoir comment extraire un projet donné du référentiel. Nous recommandons l'ouvrage « Open Source Development With &CVS; », par Karl Fogel, qui est distribué librement (sauf en ce qui concerne les chapitres non techniques). Consultez <ulink url="http://cvsbook.red-bean.com/cvsbook.html" +></ulink +>. </para> + +</sect1 +> <!-- cvs-basics --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="cvs-commands"> +<title +>Commandes &CVS; dans &tdevelop;</title> + +<para +>Dans les vues des fichiers, les éléments de menu contextuel suivants sont disponibles : </para> + +<variablelist> +<varlistentry> +<term +>Ajouter au référentiel</term> +<listitem> +<para +>Prépare le fichier marqué pour son ajout au référentiel. Le fichier sera transféré au référentiel la prochaine fois que vous le validerez (ou le dossier qui le contient). </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Supprimer du référentiel</term> +<listitem> +<para +>Prépare un fichier pour sa suppression du référentiel. Comme cette action supprime aussi le fichier sur le système de fichier local, soyez prudent en utilisant cette fonctionnalité ! </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Mettre à jour</term> +<listitem> +<para +>Exécute <command +>cvs update</command +> pour fusionner tout changement d'autres utilisateurs dans votre dossier de travail. Quand vous employez cet élément de menu sur un dossier, la mise à jour s'effectue récursivement, sauf si vous avez désactivé cette fonction dans le fichier de configuration <filename +>.cvsrc</filename +>. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Valider</term> +<listitem> +<para +>Exécute <command +>cvs commit</command +> pour envoyer tout changement effectué localement sur le référentiel. Notez que vous devriez faire une mise à jour auparavant. Sinon, si un autre utilisateur a validé ses propres changements avant, &CVS; risque de vous retourner un message d'erreur. </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Toutes ces commandes sont invoquées en tant que sous-processus par &tdevelop;, sans autres options sur la ligne de commande ou variables d'environnement variables. Ce peut être un problème quand la connexion avec le serveur &CVS; passe par une connexion &ssh; et nécessite que vous saisissiez un mot de passe chaque fois que vous validez ou mettez à jour. C'est par exemple nécessaire quand votre projet est hébergé sur <filename +>sourceforge.net</filename +>. La FAQ de &CVS;/SSH que vous pouvez trouver dans la documentation de SourceForge décrit quelques contournements pour ce problème. </para> + +</sect1 +> <!-- cvs-basics --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="cvs-behind"> +<title +>Les coulisses</title> + +<sect2 id="cvs-behind-workdir"> +<title +>Ce que &CVS; enregistre dans le dossier de travail</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- cvs-behind-workdir --> + +</sect1 +> <!-- cvs-behind --> + +</chapter +> <!-- cvs --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/debugger.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/debugger.docbook new file mode 100644 index 00000000000..d9fb70def57 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/debugger.docbook @@ -0,0 +1,331 @@ +<chapter id="debugger"> +<title +>L'interface du débogueur</title> +<indexterm zone="debugger" +><primary +>débogueur</primary +></indexterm> + +<para +>Pour le C et le C++, &tdevelop; contient un débogueur interne directement intégré avec l'éditeur. Techniquement, il est implémenté comme une interface qui utilise le débogueur <application +>gdb</application +> de &GNU; via un tube. Le débogueur peut être démarré de plusieurs manières : </para> + +<itemizedlist> +<listitem> +<para +>Avec <menuchoice +><guimenu +>Déboguer</guimenu +><guimenuitem +>Démarrer</guimenuitem +></menuchoice +>, le programme principal de votre projet est chargé dans le débogueur. </para> +</listitem> + +<listitem> +<para +>À l'aide de <menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Démarrer (autre)</guimenuitem +> <guimenuitem +>Examiner un fichier « core »</guimenuitem +></menuchoice +>. Vous chargez un fichier « core » en mémoire, qui est généré par le noyau du système d'exploitation quand le programme a planté (la génération des fichiers « core » risque d'être hors service sur votre système, reportez-vous à <application +>ulimit(1)</application +>). C'est utile pour l'analyse post mortem d'un programme. </para> +</listitem> + +<listitem> +<para +>Avec <menuchoice +><guimenu +>Déboguer</guimenu +> <guimenuitem +>Démarrer (autre)</guimenuitem +> <guimenuitem +>Attacher au processus</guimenuitem +></menuchoice +>, vous invoquez le débogueur sur un programme déjà en cours d'exécution. Vous voyez apparaître une liste de processus dans laquelle vous pouvez sélectionner le processus que le débogueur devrait superviser. </para> +</listitem> + +<listitem> +<para +>Notez que déboguer n'est possible que si votre projet a été compilé qu'avec l'activation des informations de débogage compilées. Cette fonction peut être activée dans la boîte de dialogue <guibutton +>Options du compilateur</guibutton +>. Quand cette option est cochée, le compilateur génère des données additionnelles qui permettent au débogueur d'associer des noms de fichiers et des numéros de ligne avec des adresses dans l'exécutable. </para> +</listitem> +</itemizedlist> + +<para +>L'interface du débogueur offre plusieurs vues <quote +>dans</quote +> le processus : </para> + +<para +>Si vous essayez de déboguer un projet sans dégoguer les informations, vous obtenez le message <computeroutput +>Pas de source...</computeroutput +> dans la barre d'état.Si vous essayez de définir un point d'arrêt, il s'affichera sous la forme <computeroutput +>En attente (ajouter)</computeroutput +> dans la fenêtre du point d'arrêt (voir ci-dessous). </para> + +<variablelist> +<varlistentry> +<term +>Variables</term> +<listitem> +<indexterm zone="debugger" +><primary +>variables de surveillance</primary +></indexterm> +<para +>Cette fenêtre répertorie les valeurs de toutes les variables locales au stade d'exécution actuel du programme. Elle couvre les variables dans la totalité de la pile d'appels, &cad; la fonction où le processus a été interrompu, la fonction qui a appelé cette fonction, et ainsi de suite, jusqu'à la fonction <function +>main()</function +>. </para> + +<para +>Une autre branche dans les variables contient les variables de surveillance. Vous pouvez configurer vous-même les variables qui sont affichées ici. Les variables locales et globales peuvent être surveillées. Vous pouvez ajouter des variables soit en cliquant sur le bouton <guibutton +>Ajouter</guibutton +>, soit en appuyant sur <keycap +>Entrée</keycap +> quand l'élément <guilabel +>Surveiller</guilabel +> est sélectionné. Elles peuvent être supprimées à nouveau via le menu contexuel. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Pile principale</term> +<listitem> +<indexterm zone="debugger" +><primary +>pile principale</primary +></indexterm> +<para +>(... à écrire ...) </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Points d'arrêt</term> +<listitem> +<indexterm zone="debugger" +><primary +>points d'arrêt</primary +></indexterm> +<para +>Cette fenêtre vous permet de voir et de manipuler les points d'arrêt. Souvenez-vous que, comme &tdevelop; utilise <application +>GDB</application +>, pour comprendre pleinement les fonctionnalités de débogage de &tdevelop;, vous devriez avoir quelques notions sur le <ulink url="http://www.gnu.org/software/gdb" +>GDB</ulink +>. </para> + +<para +>Si vous souhaitez examiner le code source, les points d'arrêt sont définis dans <filename +>tdevelop/languages/cpp/debugger/breakpoint.h</filename +>. </para> + +<para +>Sur le bord gauche, la fenêtre comporte des boutons pour :</para> + +<itemizedlist> +<listitem +><para +>Ajouter un point d'arrêt vide</para +></listitem> +<listitem +><para +>Modifier le point d'arrêt sélectionné</para +></listitem> + <listitem +><para +>Supprimer le point d'arrêt sélectionné</para +></listitem> +<listitem +><para +>Supprimer tous les points d'arrêt</para +></listitem> +</itemizedlist> + +<para +>La partie principale de la fenêtre est un tableau de 7 colonnes. Chaque ligne du tableau est un point d'arrêt. Les colonnes sont :</para> + +<orderedlist> +<listitem +><para +>Case à cocher de sélection</para +></listitem> +<listitem +><para +>Type : un parmi : non valable, Fichier : ligne, Point de surveillance, Adresse, Fonction</para +></listitem> +<listitem +><para +>État. Les valeurs sont :</para> +<itemizedlist> + <listitem +><para +>Active</para +></listitem> + <listitem +><para +>Désactivé : chaque point d'arrêt peut être « activé » ou « désactivé ». Si désactivé, il n'a pas aucun effet su votre programme jusqu'à ce que vous l'activiez à nouveau.</para +></listitem> + <listitem +><para +>En attente (ajouter) : un point d'arrêt est marqué comme suit si aucune information de débogage n'est disponible. D'après la page info de GDB : <blockquote +><para +>Si un emplacement de point d'arrêt spécifié ne peut être trouvé, cela peut être dû au fait que l'emplacement est dans une bibliothèque partagée qui est encore à charger. Dans un tel cas, vous pouvez être amené à ce que GDB crée un point d'arrêt spécial (connu sous le nom « point d'arrêt en attente »), qui tente de se résoudre lui-même dans le futur dès qu'une bibliothèque partagée appropriée est chargée.</para +> </blockquote +> </para +></listitem> +</itemizedlist> +</listitem> +<listitem +><para +>En attente (effacer)</para +></listitem> +<listitem +><para +>En attente (modifier)</para +></listitem> +<listitem +><para +>Emplacement dans le nom de fichier du format : numéro de ligne</para +></listitem> +<listitem +><para +>Condition</para +></listitem> +<listitem +><para +>Ignorer le compteur : si c'est un nombre <varname +>COUNT</varname +> supérieur à zéro, les prochaines <varname +>COUNT</varname +> fois où le point d'arrêt est atteint, l'exécution de votre programme ne s'arrête pas ; autre que pour décrémenter l'ignorance du compteur, <application +>gdb</application +> ne prend aucune mesure.</para +></listitem> +<listitem +><para +>Trouvés : compte combien de fois un point d'arrêt a été trouvé.</para +></listitem> +</orderedlist> + + +</listitem> +</varlistentry> + +<varlistentry> +<term +>Désassembleur</term> +<listitem> +<indexterm zone="debugger" +><primary +>désassembleur</primary +></indexterm> +<para +>(... à écrire ...)</para> + +</listitem> +</varlistentry> +</variablelist> + + +<sect1 id="settingbreakpoints"> +<title +>Définition des points d'arrêt</title> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- settingbreakpoints --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id ="debuggeroptions"> +<title +>Options</title> + +<variablelist> +<varlistentry> +<term +>Afficher les noms désassemblés</term> +<listitem> +<indexterm zone="debugger" +><primary +>désassemblage des noms</primary +></indexterm> +<indexterm zone="debugger" +><primary +>désassemblage</primary +><secondary +>nom</secondary +></indexterm> + +<para +>En C++, les noms de fonction dans l'exécutable sont « désassemblés », &cad; qu'ils contiennent des informations sur les types d'arguments. C'est nécessaire pour pouvoir gérer la surcharge des fonctions. L'algorithme de désassemblage n'est pas standardisé et diffère même entre les différentes versions du compilateur C++ de &GNU;. </para> + +<para +>Dans la fenêtre de désassemblage, normalement, comme les noms désassemblés sont affichés, les signatures des fonctions apparaissent de la même manière que dans le code source et sont donc facilement lisibles. Autrement, vous pouvez décider de voir les noms désassemblés. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Essayer de définir des points d'arrêt au chargement d'une bibliothèque</term> +<listitem> +<indexterm zone="debugger" +><primary +>points d'arrêt paresseux</primary +></indexterm> +<indexterm zone="debugger" +><primary +>points d'arrêt</primary +><secondary +>paresseux</secondary +></indexterm> + +<para +>Le backend du débogueur <application +>gdb</application +> ne permet pas de définir des points d'arrêt à l'intérieur du code qui n'est pas actuellement chargé. Dans une application hautement modulaire, où souvent le code n'est chargé qu'à la demande sous la forme d'un module externe (à l'aide de la fonction libc <function +>dlopen(3)</function +>), ce peut être incommode. Par conséquent, &tdevelop; fournit sa propre prise en charge pour les points d'arrêt dans les bibliothèques partagées. Si vous cochez cette option, elle vous permet de définir des points d'arrêt dans les bibliothèques qui ne sont pas chargées. Puis, chaque fois que <application +>gdb</application +> notifie qu'une bibliothèque est partagée, &tdevelop; essaie de définir les points d'arrêt en attente. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Afficher la barre d'outils flottante</term> +<listitem> +<indexterm zone="debugger" +><primary +>barre d'outils du débogueur</primary +></indexterm> +<indexterm zone="debugger" +><primary +>barre d'outils</primary +><secondary +>débogueur</secondary +></indexterm> + +<para +>(... à écrire ...) </para> +</listitem> +</varlistentry> +</variablelist> + +</sect1 +> <!-- debuggeroptions --> + +</chapter +> <!-- debugger --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/documentation.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/documentation.docbook new file mode 100644 index 00000000000..264a352cd2a --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/documentation.docbook @@ -0,0 +1,73 @@ +<chapter id="documentation"> +<title +>Documentation</title> + +<para +>La documentation appartient malheureusement aux aspects les plus négligés en matière de programmation. Pourtant, une fois correctement configurée et maintenue, la documentation interne et externe fournit une aide des plus précieuses. </para> + +<para +>La documentation a des facettes multiples. Il y a <itemizedlist> + <listitem +><para +>la <emphasis +>documentation interne au projet</emphasis +>, composée principalement <itemizedlist> + <listitem +><para +>des <emphasis +>commentaires</emphasis +> dans les fichiers sources / d'en-têtes </para +></listitem> + <listitem +><para +>la <emphasis +>documentation de l'&API; interne</emphasis +> de votre projet, générée depuis le fichier de programme par des outils spéciaux, &pex; &doxygen; </para +></listitem> + </itemizedlist> + </para +></listitem> + <listitem +><para +>la <emphasis +>documentation externe au projet</emphasis +>, comprenant entre autres <itemizedlist> + <listitem +><para +>la <emphasis +>documentation de l'&API; externe</emphasis +> &pex; les bibliothèques système courantes (&kde;, &Qt;, &etc;) </para +></listitem> + <listitem +><para +>toute autre documentation (manuels de langages de programmation, informations générales sur le système, articles « how-to »,&etc;) </para +></listitem> + </itemizedlist> + </para +></listitem> +</itemizedlist> +</para> +<para +>Toute cette documentation devra être facile à maintenir et à portée de la main, à chaque fois que vous en avez besoin. &tdevelop; a des ressources simplement pour cela. </para> + +<!-- ### doc browser, notes on internal documentation, how to profit from Doxygen --> + +<sect1 id="docbrowser"> +<title +>Le navigateur de documentation</title> + + +<figure id="screenshot-doctreeview" float="1"> +<title +>Une copie d'écran de l'arborescence de la Documentation</title> +<mediaobject> +<imageobject +><imagedata fileref="doctreeview.png"/></imageobject> +</mediaobject> +</figure> + +</sect1 +> <!-- docbrowser --> + +</chapter +> <!-- documentation --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/editing.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/editing.docbook new file mode 100644 index 00000000000..f61aff382e9 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/editing.docbook @@ -0,0 +1,608 @@ +<chapter id="editing"> +<title +>Outils d'édition</title> + +<sect1 id="editing-snippets"> +<title +>Fragments de code</title> + +<itemizedlist> + <title +>Fonctionnalités (vue d'ensemble préliminaire)</title> + <listitem +><para +>« SnippetPart » ajoute une vue des outils qui par défaut s'inscruste à droite </para +></listitem> + <listitem +><para +>L'ajout, l'édition et la suppression de fragments est disponible via un menu qui apparaîtt </para +></listitem> + <listitem +><para +>Double-cliquer sur un fragment depuis une liste l'insère dans la vue active à la position actuelle du curseur </para +></listitem> + <listitem +><para +>Les infobulles affichent le contenu d'un fragment </para +></listitem> + <listitem +><para +>Comme les fragments sont stockés dans le répertoire personnel des utilisateurs, chacun peut avoir ses propres fragments </para +></listitem> + <listitem +><para +>Les fragments peuvent contenir des variables dans le style de $<varname +>VARNAME</varname +>$. Lors de l'emploi des fragments, l'utilisateur reçoit une invite à saisir une valeur de remplacement pour les variables </para +></listitem> +</itemizedlist> +</sect1 +> <!-- editing-snippets --> + +<sect1 id="keyboardmapping"> +<title +>Correspondance de clavier</title> +<indexterm zone="keyboardmapping" +><primary +>associations de touches</primary +></indexterm> + +<para +>Dans ce qui suit, nous listerons les associations de touches par défaut de l'éditeur par défaut. Vous pouvez les configurer à votre gré (comment ?) </para> + +<informaltable> +<tgroup cols="2"> +<tbody> + +<row +><entry +><para +><keycap +>Gauche </keycap +></para +></entry> +<entry +><para +>Se déplace d'un caractère vers la gauche </para +></entry +></row> + +<row +><entry +><para +><keycap +>Droite </keycap +></para +></entry> +<entry +><para +>Se déplace d'un caractère vers la droite </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl;<keycap +> Gauche </keycap +></keycombo +></para +></entry> +<entry +><para +>Se déplace d'un mot vers la gauche </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl;<keycap +> Droite </keycap +></keycombo +></para +></entry> +<entry +><para +>Se déplace d'un mot vers la droite </para +></entry +></row> + +<row +><entry +><para +><keycap +>Haut </keycap +></para +></entry> +<entry +><para +>Se déplace d'une ligne vers le haut </para +></entry +></row> + +<row +><entry +><para +><keycap +>Bas </keycap +></para +></entry> +<entry +><para +>Se déplace d'une ligne vers le bas </para +></entry +></row> + +<row +><entry +><para +><keycap +>Page Haut </keycap +></para +></entry> +<entry +><para +>Se déplace d'une page vers le haut </para +></entry +></row> + +<row +><entry +><para +><keycap +>Page Bas </keycap +></para +></entry> +<entry +><para +>Se déplace d'une page vers le bas </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl;<keycap +> Page Bas </keycap +></keycombo +></para +></entry> +<entry +><para +>Se déplace au début du fichier </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl; <keycap +> Page Bas </keycap +></keycombo +></para +></entry> +<entry +><para +>Se déplace à la fin du fichier </para +></entry +></row> + +<row +><entry +><para +><keycap +>Début </keycap +></para +></entry> +<entry +><para +>Se déplace au début de la ligne </para +></entry +></row> + +<row +><entry +><para +><keycap +>Fin </keycap +></para +></entry> +<entry +><para +>Se déplace à la fin de la ligne </para +></entry +></row> + +</tbody> +</tgroup> +</informaltable> + +<para +>Pour toutes les touches ci-dessus, on peut peut appuyer en plus sur la touche &Maj; pour faire une marque depuis la position actuelle du curseur jusqu'à celle d'après. </para> + +<informaltable> +<tgroup cols="2"> +<tbody> + +<row +><entry +><para +><keycap +>Correction </keycap +></para +></entry> +<entry +><para +>Supprime un caractère à gauche </para +></entry +></row> + +<row +><entry +><para +><keycap +>Suppression </keycap +></para +></entry> +<entry +><para +>Supprime le caractère sous le curseur </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl; <keycap +> C </keycap +></keycombo +></para +></entry> +<entry +><para +>Copie le texte sélectionné dans le presse-papiers </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl;<keycap +> V </keycap +></keycombo +></para +></entry> +<entry +><para +>Colle le texte sélectionné depuis le presse-papiers </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl;<keycap +> X </keycap +></keycombo +></para +></entry> +<entry +><para +>Supprime le texte sélectionné et le place dans le presse-papiers </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Ctrl;<keycap +> Z </keycap +></keycombo +></para +></entry> +<entry +><para +>Annuler </para +></entry +></row> + +<row +><entry +><para +><keycombo +>&Maj;&Ctrl;<keycap +> Z </keycap +></keycombo +></para +></entry> +<entry +><para +>Refaire </para +></entry +></row> + +</tbody> +</tgroup> +</informaltable> + +</sect1 +> <!-- keyboardmapping --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="editing-reporter"> +<title +>La liste des problèmes</title> + +<para +>(... à écrire ...) </para> +</sect1 +> <!-- editing-reporter --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="searchinggrepping"> +<title +>Recherche et « grep »</title> +<indexterm zone="searchinggrepping" +><primary +>rechercher</primary +></indexterm> +<indexterm zone="searchinggrepping" +><primary +>trouver</primary +></indexterm> + +<sect2 id="searching"> +<title +>Recherche de texte</title> + +<para +><keycombo +>&Ctrl;<keycap +>F</keycap +></keycombo +>- Chercher <keycombo +>&Ctrl;<keycap +>R</keycap +></keycombo +>- Remplacer </para> + +</sect2 +> <!-- searching --> + + +<sect2 id="isearch"> +<title +>ISearch</title> +<indexterm zone="isearch" +><primary +>isearch</primary +></indexterm> +<indexterm zone="isearch" +><primary +>recherche incrémentale</primary +></indexterm> +<indexterm zone="isearch" +><primary +>recherche</primary +><secondary +>incrémentale</secondary +></indexterm> + +<para +>La recherche conventionnelle avec <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher</guimenuitem +></menuchoice +> exige que vous indiquiez le terme complet à rechercher avant de de démarrer. Le plus souvent, il est beaucoup plus rapide de faire une recherche incrémentale. Si vous cliquez dans le champ d'édition étiqueté <guilabel +>ISearch</guilabel +> dans la barre d'outils, la recherche s'effectue à mesure que vous saisissez. Vous constaterez que souvent le terme souhaité est déjà trouvé après avoir saisi 3 ou 4 lettres. </para> + +</sect2 +> <!-- isearch --> + + +<sect2 id="grep"> +<title +>Grep</title> +<indexterm zone="grep" +><primary +>recherche</primary +><secondary +>dans les fichiers</secondary +></indexterm> + +<para +>Les deux mécanismes de recherche décrits ci-dessus se limitent à la recherche dans un fichier source. Un outil additionnel qui vous permet de faire une recherche à travers un nombre (éventuellement grand) de fichiers est disponible via l'élément <guimenuitem +>Chercher dans les fichiers...</guimenuitem +> dans le menu <guimenu +>Édition</guimenu +>. C'est essentiellement une interface pour le programme &grep;(1). </para> + +<para +>Dans la boîte de dialogue, vous pouvez spécifier quels sont les fichiers recherchés. Il y a un certain nombre de motifs jokers disponibles dans une zone de liste modifiable. De cette manière, vous pouvez facilement restreindre le mécanisme de recherche aux fichiers d'en-tête. En outre, vous spécifiez un dossier où démarrer la recherche. Si vous cochez la case <guibutton +>Récursif</guibutton +>, la recherche itère via tous les dossier dans la hiérarchie au-dessous de celle-ci. </para> + +<para +>Le terme à rechercher est en général une expression régulière qui suit la syntaxe POSIX. Par exemple, vous pouvez utiliser le terme <literal +>"\<K.*"</literal +> si vous voulez trouver tous les mots commençant par la lettre K. Les caractères suivants sont interprétés d'une manière spéciale : </para> + +<informaltable> +<tgroup cols="2"> +<tbody> + +<row +><entry> + <literal +>.</literal> +</entry +><entry +>Correspond à n'importe quel caractère </entry +></row> +<row +><entry> + <literal +>^</literal> +</entry +><entry +>Correspond au début d'une ligne </entry +></row> +<row +><entry> + <literal +>$</literal> +</entry +><entry +>Correspond à la fin d'une ligne </entry +></row> +<row +><entry> + <literal +>\<</literal> +</entry +><entry +>Correspond au début d'un mot </entry +></row> +<row +><entry> + <literal +>\></literal> +</entry +><entry +>Correspond à la fin d'un mot </entry +></row> +<row +><entry> + <literal +>?</literal> +</entry +><entry +>Le précédent élément correspond à moins d'une fois </entry +></row> +<row +><entry> + <literal +>*</literal> +</entry +><entry +>L'élément précédent correspond zéro ou plusieurs fois </entry +></row> +<row +><entry> + <literal +>+</literal> +</entry +><entry +>L'élément précédent correspond une ou plusieurs fois </entry +></row> +<row +><entry> + <literal +>{n}</literal> +</entry +><entry +>L'élément précédent correspond exactement n fois </entry +></row> +<row +><entry> + <literal +>{n,}</literal> +</entry +><entry +>L'élément précédent correspond n ou plusieurs fois </entry +></row> +<row +><entry> + <literal +>{,n}</literal> +</entry +><entry +>L'élément précédent correspond à moins de n fois </entry +></row> +<row +><entry> + <literal +>{n,m}</literal> +</entry +><entry +>L'élément précédent correspond au moins <literal +>n</literal +> fois mais moins de <literal +>m</literal +> fois </entry +></row> + +</tbody> +</tgroup> +</informaltable> + +<para +>Des références arrières à des expressions entre crochets sont également accessibles via la notation <literal +>\n</literal +>. </para> + +<para +>Pour les programmeurs C++, comme bonus spécial, il y a certains modèles de recherche disponibles pour des motifs typiques. Ceux-ci vous permettent de rechercher par exemple tous les exemples de fonctions membres d'un certain objet. </para> + +<para +>Une fois que commencez la recherche en cliquant sur le bouton <guibutton +>Rechercher</guibutton +>, elle sera effectuée par un processus externe asynchrone. Tous les éléments trouvés apparaîtront dans la vue appelée <guilabel +>Grep</guilabel +>. Vous pouvez ensuite passer aux éléments trouvés en cliquant dessus. Notez que « grep » explore les fichiers à mesure qu'ils sont stockés dans le système de fichiers. Si vous en avez modifié des versions dans votre éditeur, vous risquez d'avoir des discordances dans le numéro de ligne, ou bien certains éléments trouvés seront invalides. Vous pouvez éviter cela en enregistrant tous les fichiers au préalable. </para> + +</sect2 +> <!-- grep --> + +</sect1 +> <!-- searchinggrepping --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="code-completion"> +<title +>Complétement du code</title> + +<para +>(... à écrire ...) </para> +</sect1 +> <!-- code-completion --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="newfiles"> +<title +>Créer de nouveaux fichiers et de nouvelles classes</title> + +<para +>(... à écrire ...) </para> + +<sect2 id="newfiles-edittemplates"> +<title +>Édition des modèles</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- newfiles-edittemplates --> + +</sect1 +> <!-- newfiles --> + +</chapter +> <!-- editing --> +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/file-browsers.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/file-browsers.docbook new file mode 100644 index 00000000000..db5a4f01655 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/file-browsers.docbook @@ -0,0 +1,67 @@ +<chapter id="file-browsers"> +<title +>Les navigateurs de fichiers</title> + +<para +>Sur le côté gauche de la fenêtre principale, &tdevelop; peut afficher diverses sortes de listes et arborescences pour la sélection des fichiers : </para> + +<variablelist> +<varlistentry> +<term +>Arborescence des fichiers</term> +<listitem> +<para +>Elle affiche une vue arborescente de la hiérarchie des fichiers sous le dossier du projet. Si vous cliquez sur un fichier, il est chargé dans l'éditeur. Pour les fichiers qui ne contiennent pas de texte, &tdevelop; démarre une application qui peut gérer le type MIME respectif. </para> + +<para +>L'arborescence des fichiers est régulièrement mise à jour chaque fois que quelque chose change dans le système de fichiers. Par exemple, si vous créez de nouveaux fichiers ou dossiers (même en dehors de &tdevelop;), ceci est immédiatement répercuté dans la liste des fichiers. Sous &Linux;, cette fonctionnalité fait appel à la bibliothèque FAM. Avec d'autres systèmes d'exploitation ou sur NFS, les dossiers affichés sont scrutés à intervalles réguliers. </para> + +<para +>L'arborescence des fichiers cache les fichiers qui sont habituellement sans intérêt, comme les fichiers objets. Dans l'élément <guimenuitem +>Options du projet</guimenuitem +> sous <guibutton +>Vues des fichiers</guibutton +>, vous pouvez configurer (sous la forme d'une liste de jokers séparés par une virgule) les motifs qui sont utilisés pour filtrer les fichiers non pertinents. </para> + +<para +>De plus, vous pouvez décider de restreindre l'arborescence des fichiers pour afficher seulement les fichiers qui appartiennent au projet actuellement chargé. Vous pouvez le (dés)activer en cliquant avec le &BDS; sur l'élément racine de l'arborescence. </para> + +<figure id="screenshot-filetree" float="1"> +<title +>Une copie d'écran de l'arborescence des fichiers</title> +<mediaobject> +<imageobject +><imagedata fileref="filetree.png"/></imageobject> +<textobject +><phrase +>Une copie d'écran de l'arborescence des fichiers</phrase +></textobject> +</mediaobject> +</figure> + +</listitem> +</varlistentry> +<varlistentry> +<term +>Groupes de fichiers</term> +<listitem> +<para +>Cette option affiche les fichiers appartenant au projet, groupés par leur extension de nom de fichier. Comme dans l'arborescence des fichiers, vous pouvez modifier un fichier en cliquant dessus avec le &BGS;. </para> + +<para +>Les groupes affichés dans cette vue peuvent être configurés sous <guibutton +>Vues des fichiers</guibutton +> dans la boîte de dialogue <guimenuitem +>Options du projet</guimenuitem +>. Pour pouvoir personnaliser la vue selon vos besoins, il est utile de comprendre comment les fichiers sont répartis sur les groupes. Pour chaque fichier, &tdevelop; parcourt tous les groupes de haut en bas. Dans chaque groupe, il regarde si le nom du fichier correspond à un des motifs. S'il y a une correspondance, le fichier est affiché dans ce groupe et l'itération est interrompue. Ce comportement explique pourquoi il faudra placer davantage de motifs généraux sous ceux plus spécifiques. Par exemple, un astérisque pour le groupe <guilabel +>Autres</guilabel +> devra être le dernier motif. </para> + +</listitem> +</varlistentry> +</variablelist> + +</chapter +> <!-- file-browsers --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/getting-started.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/getting-started.docbook new file mode 100644 index 00000000000..b6eddd719ca --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/getting-started.docbook @@ -0,0 +1,4062 @@ + +<!-- +Please keep the formatting simple. +Do not indent XML constructs. +Keep lines at 80 characters length maximum. +--> + +<chapter id="getting-started"> + +<chapterinfo> +<authorgroup> +<author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> +<othercredit role="translator" +><firstname +>Joëlle</firstname +><surname +>Cornavin</surname +><affiliation +><address +><email +>jcornavi@club-internet.fr</email +></address +></affiliation +><contrib +>Traduction française </contrib +></othercredit +> <othercredit role="translator" +><firstname +>Ludovic</firstname +><surname +>Grossard</surname +><affiliation +><address +><email +>grossard@kde.org</email +></address +></affiliation +><contrib +>Traduction française </contrib +></othercredit +> +</authorgroup> +</chapterinfo> + +<title +>Premiers pas avec &tdevelop; — visite guidée</title> + +<para +>Maintenant que vous avez installé votre &EDI; &tdevelop;, comment allez-vous en faire bon usage ? Comme c'est une application complexe, la courbe d'apprentissage risque d'être quelque peu abrupte, en particulier si vous n'êtes pas déjà habitué à ce type d'&EDI; (environnement de développement intégré).</para> + +<para +>Nous essaierons d'adoucir un peu cette courbe en étudiant pas à pas les constituants essentiels d'une application KDE simple en C++. Ainsi, nous jetterons un coup d'Å“il (superficiel) aux aspects suivants :</para> + +<simplelist> +<member +><link linkend="gettingstarted-overview" +>Un premier aperçu — les éléments de l'interface utilisateur de l'&EDI; &tdevelop;.</link +></member> +<member +><link linkend="gettingstarted-configure" +>Un peu de configuration initiale.</link +></member> +<member +><link linkend="gettingstarted-new" +>Comment créer un nouveau projet.</link> +</member> +<member +><link linkend="gettingstarted-edit" +>Quelques astuces sur la manipulation des documents.</link +></member> +<member +><link linkend="gettingstarted-compile" +>Comment compiler l'application dans ce projet.</link +></member> +<member +><link linkend="gettingstarted-extend" +>Comment ajouter des classes et d'autres détails à votre projet.</link +></member> +<member +><link linkend="gettingstarted-debug" +>Que faire pour déboguer l'application.</link +></member> +<member +><link linkend="gettingstarted-doc" +>Quelques outils de base pour construire un programme ou une documentation utilisateur.</link +></member> +<member +><link linkend="gettingstarted-keys" +>Et pour finir, les raccourcis clavier</link +></member> +</simplelist> + +<para +>Avant de commencer, une notion importante devra être éclaircie.</para> + +<formalpara> +<title +>Qu'espérer ?</title> +<para +>Comme indiqué, &tdevelop; est un <emphasis +>environnement de développement intégré</emphasis +>. Cela signifie en substance que &tdevelop; n'est pas un outil de développement en soi, mais plutôt une interface graphique permettant d'accéder aisément à une vaste palette d'outils de développement, dont une grande partie nécessiterait réellement l'exécution de commandes clavier complexes à partir d'un terminal en mode texte.</para> +</formalpara> + +<para +>Bien que &tdevelop; facilite beaucoup de ces tâches de programmation, une grande partie de la complexité de cet ensemble d'outils demeure cependant, ce qui signifie qu'afin d'appréhender complètement l'&EDI; &tdevelop;, il vous faudra encore une bonne compréhension de ces outils fonctionnant en réalité en arrière-plan.</para> + +<para +>Par conséquent, nous ne pouvons pas vous apprendre comment construire des logiciels, mais plutôt vous présenter un peu la manière dont &tdevelop; a été conçu pour faciliter un tel processus de construction. Si vous souhaitez en savoir plus sur la finalité d'un environnement de développement intégré, jetez un coup d'Å“il à la vue d'ensemble historique <link linkend="unixdev" +>Développement sous &UNIX;</link +> et dedans, tout particulièrement au chapitre <link linkend="unixdev-ide" +>Intégrer des concepts et des outils</link +>.</para> + +<note> +<para +>Les exposés suivants s'appliquent au cas par défaut, où &tdevelop; démarre en <guilabel +>mode fenêtre IDEAl simplifié</guilabel +>. Si vous êtes déjà passé à un autre mode d'interface utilisateur, il se peut qu'il n'y ait pas certains éléments comme décrit ou qu'ils se comportent de manière légèrement différente. Si vous n'êtes pas sûr du mode d'interface utilisateur qu'utilise votre &tdevelop; actuellement, vérifiez avec la boîte de dialogue <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +> <guimenuitem +>Interface utilisateur</guimenuitem +></menuchoice +>.</para> +</note> + +<sect1 id="gettingstarted-overview"> +<title +>Un tout premier coup d'Å“il à &tdevelop;</title> + +<para +>Voici en gros ce que vous verrez lorsque vous aurez démarré &tdevelop; pour la première fois. Vous trouverez des informations préliminaires sur :</para> + +<simplelist> +<member +><link linkend="gettingstarted-overview-basic" +>Qu'y a-t-il en surface ?</link +></member> +<member +><link linkend="gettingstarted-overview-help" +>Comment obtenir de l'aide.</link +></member> +<member +><link linkend="gettingstarted-overview-menu" +>Qu'y a-t-il dans les menus ?</link +></member> +<member +><link linkend="gettingstarted-overview-tools" +>À quoi servent ces vues des outils ?</link +></member> +</simplelist> + +<sect2 id="gettingstarted-overview-basic"> +<title +>En surface</title> + +<para +>Quand vous démarrez &tdevelop; pour la première fois, vous obtenez un affichage similaire à celui-ci :</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="empty-ide.png" format="PNG"/> +</imageobject> +<caption> +<para +>La disposition initiale de &tdevelop;</para> +<para +>(En fait, la fenêtre initiale de &tdevelop; sera plus grande mais les éléments que vous voyez sont les mêmes.)</para> +</caption> +</mediaobject> +</screenshot> + +<formalpara> +<title +>Zone d'espace de travail et onglets des vues des outils</title> +<para +>Dans ce cas initial, &tdevelop; utilise ce qu'on appelle le <link linkend="uimodes-survey" +>mode d'interface utilisateur IDEAl</link +>. Une zone d'espace de travail d'une taille maximale possible est entourée à gauche, en bas et à droite par une série de boutons qui agissent de la même manière que des onglets sur un affichage à onglets. Si vous cliquez sur un de ces onglets, une <emphasis +>fenêtre des vues des outils</emphasis +> s'ouvre, qui vous permet de travailler sur une tâche précise.</para> +</formalpara> + +<formalpara> +<title +>Barres de menus et barres d'outils</title> +<para +>Dans la partie supérieure, se trouve l'habituelle barre de menus, suivie de plusieurs lignes de barres d'outils, dont certaines sont au départ vides. Elles se peupleront dès l'instant où il y aura un projet ouvert pour un travail réel.</para> +</formalpara> + +<formalpara> +<title +>Barre d'état</title> +<para +>Enfin, il y a une barre d'état au bas de la fenêtre, affichant de courtes informations sur plusieurs tâches.</para> +</formalpara> +</sect2> + +<sect2 id="gettingstarted-overview-help"> +<title +>Comment obtenir de l'aide</title> + +<para +>Outre le menu <guimenu +>Aide</guimenu +> qui offre des réponses à des questions données, la barre d'état et deux sortes d'infobulles fournissent quelques brèves informations.</para> + +<formalpara> +<title +>Que fait exactement cet élément de menu ?</title> +<para +>Lorsque vous placez le curseur de la souris sur un élément de menu, vous voyez habituellement de courtes informations s'afficher dans la barre d'état. Même si le plus souvent celles-ci répètent juste le nom de la sélection, elles fourniront dans certains cas des informations complémentaires sur l'objectif de la commande du menu.</para> +</formalpara> + +<formalpara> +<title +>Quel est le nom de cet élément ?</title> +<para +>Sur de nombreux éléments, une infobulle contenant le nom abrégé de la fonction apparaît lorsque vous placez le curseur dessus pendant quelques secondes. Cette fonction est très utile pour s'orienter rapidement sur les onglets de barres d'outils ou les vues des outils dans le mode IDEAl, lorsque l'&EDI; a été configuré pour afficher des icônes uniquement sur ces boutons.</para> +</formalpara> + +<formalpara> +<title +>Que fait exactement cet élément ?</title> +<para +>D'autres informations sont disponibles grâce à l'aide étendue sous forme d'infobulles pour de nombreux éléments de l'&EDI;. Sélectionnez <menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Qu'est-ce que c'est ?</guimenuitem +></menuchoice +> ou appuyez sur <keycombo +><keycap +>&Maj;</keycap +><keycap +>F1</keycap +></keycombo +> puis, avec le curseur du point d'interrogation, sélectionnez l'élément sur lequel vous voulez en savoir plus. Vous pouvez également ouvrir n'importe quel menu de cette manière et cliquer sur un élément de menu particulier (actif ainsi que ceux qui sont grisés car désactivés) pour voir s'il y a d'autres informations disponibles.</para> +</formalpara> +</sect2> + +<sect2 id="gettingstarted-overview-menu"> +<title +>Qu'y a-t-il dans les menus ?</title> + +<para +>Il y a dix menus qu'il est possible de sélectionner sur la barre de menus. La plupart d'entre eux se peuplent entièrement dès lors qu'un projet est ouvert pour le travail réel, tandis que d'autres nécessitent au moins qu'un document soit ouvert dans une fenêtre d'édition. En bref, ils permettent les types d'actions suivants.</para> + +<note> +<para +>Ce n'est qu'une vue d'ensemble préliminaire. Pour obtenir une description détaillée, reportez-vous à la <link linkend="commands" +>référence des commandes</link +>.</para> +</note> + +<variablelist> +<varlistentry> +<term +><guimenu +>Fichier</guimenu +></term> +<listitem> +<formalpara> +<title +>Actions habituelles</title> +<para +>Il est parfaitement standard :il permet de créer, ouvrir, enregistrer, imprimer et fermer des fichiers de documents, ainsi que de quitter l'application &tdevelop; comme d'habitude.</para> +</formalpara> + +<formalpara> +<title +>Tout annuler</title> +<para +>Cet élément permet d'annuler tous les changements récents encore non enregistrés en rechargeant le fichier depuis le disque. Il fonctionne sur tout fichier que vous modifiez, mais non sur ceux qui font partie d'un projet.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Édition</guimenu +></term> +<listitem> +<para +>Ce menu n'est utile que si un document est ouvert.</para> + +<formalpara> +<title +>Actions habituelles</title> +<para +>Il prévoit les actions habituelles annuler/refaire et copier/coller. De plus, il permet de sélectionner des blocs de texte de diverses manières.</para> +</formalpara> + +<formalpara> +<title +>Recherche et remplacement</title> +<para +>Il y a deux fonctions de recherche très puissantes disponibles, <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher dans les fichiers...</guimenuitem +></menuchoice +> et <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher / Sélectionner / Remplacer...</guimenuitem +></menuchoice +>. Celles-ci permettent, en plus des actions de recherche et remplacement habituelles limitées au document en cours, de mener des actions de recherche ou de recherche et remplacement globales en une fois.</para> +</formalpara> + +<formalpara> +<title +>Édition de texte avancée</title> +<para +>Il y a des ressources pour reformater le document en cours et compléter automatiquement les textes saisis partiellement de différentes manières.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Affichage</guimenu +></term> +<listitem> +<para +>Comme le menu <guimenu +>Édition</guimenu +>, ce menu n'est utile que s'il y a un projet ouvert. Dans ce cas, les actions suivantes seront disponibles (entre autres) :</para> + +<formalpara> +<title +>Historique de navigation</title> +<para +>Avancez et reculez dans les documents, &etc; que vous avez visités.</para> +</formalpara> + +<formalpara> +<title +>Suivi des erreurs</title> +<para +>Naviguez jusqu'aux lignes de source des erreurs rencontrées dans le processus de compilation / construction le plus récent.</para> +</formalpara> + +<formalpara> +<title +>Actions liées à l'éditeur</title> +<para +>Certains éléments du menu <guimenu +>Affichage</guimenu +> contrôlent l'apparence et l'affichage de l'éditeur que vous utilisez. Dans le cas du composant &kate; (éditeur de texte avancé intégré), les contrôles suivants seront disponibles :</para> +</formalpara> + +<itemizedlist> +<listitem> +<para +>Contrôle le comportement du retour à la ligne dans la fenêtre du document.</para> +</listitem> +<listitem> +<para +>Affiche ou masque plusieurs affichages de bordure dans les fenêtres des documents : numéros de ligne, icônes et, en outre, des marques de signets dans la barre de défilement.</para> +</listitem> +<listitem> +<para +>Contrôle de l'affichage des sections repliées (cachées temporairement) dans un texte source.</para> +</listitem> +</itemizedlist> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Projet</guimenu +></term> +<listitem> +<para +>Tout le fonctionnement de &tdevelop; est basé sur des <emphasis +>projets</emphasis +>, dont la mission essentielle est de collecter des fichiers source, construire des fichiers de gestion et d'autres informations dans un seul dossier de projet. Dans ce menu, vous décidez quel est le projet à utiliser, quelles sont ses propriétés et toute autre action de gestion. En particulier :</para> + +<formalpara> +<title +>Ouverture d'un projet</title> +<para +>Permet de créer de nouveaux projets, d'ouvrir des projets existants et d'en importer d'autres environnements.</para> +</formalpara> + +<formalpara> +<title +>Options d'un projet</title> +<para +>Permet de définir un ensemble complet des différentes propriétés d'un projet.</para> +</formalpara> + +<formalpara> +<title +>Gestion des classes</title> +<para +>Ajoute de nouvelles au projet et traverse l'arbre d'héritage d'une classe.</para> +</formalpara> + +<formalpara> +<title +>Distribution du projet</title> +<para +>Aide à construire les paquetages de distribution du projet.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Construire</guimenu +></term> +<listitem> +<para +>Ce menu a trait à tout ce qui concerne la compilation et la documentation du projet. Donc, il n'est utile que quand un projet est réellement ouvert. Dans ce cas, il prévoit les actions suivantes :</para> + +<formalpara> +<title +>Compiler, lier, exécuter</title> +<para +>Permet de compiler et de lier le projet entier ou des parties de ce dernier, ainsi que de lancer l'application depuis l'&EDI;.</para> +</formalpara> + +<formalpara> +<title +>Préparer les opérations de construction</title> +<para +>Ceci dépend en fait du système « make » que vous employez pour ce projet. Dans le cas de projets avec « automake », il permet de lancer les commandes <filename +>Makefile.cvs</filename +> et <filename +>configure</filename +> propres. Il y a aussi des dispositions pour supprimer les fichiers traduits du projets à diverses stades d'intensité.</para> +</formalpara> + +<formalpara> +<title +>Installer l'application</title> +<para +>Permet d'installer l'application à la fois dans les dossiers locaux et dans les dossiers système accessibles uniquement à l'utilisateur « root ».</para> +</formalpara> + +<formalpara> +<title +>Documentation de l'API</title> +<para +>Construit ou supprime une documentation d'API basée sur « doxygen », comme défini dans les options du projet.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Déboguer</guimenu +></term> +<listitem> +<para +>Bien que ce menu soit rempli une fois qu'un projet est actif, il n'est bien sûr utile que si le projet réel a été compilé au préalable avec des informations de débgogage (ce comportement est essentiellement configuré dans <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet</guimenuitem +></menuchoice +>). Les actions suivantes sont disponibles dans ce cas :</para> + +<formalpara> +<title +>Actions habituelles du débogueur</title> +<para +>La première section dans le menu <guimenu +>Déboguer</guimenu +> fournit une interface graphique au débogueur symbolique GDB de &GNU;. Elle permet de démarrer et arrêter votre application dans le débogueur et de le parcourir de diverses manières.</para> +</formalpara> + +<formalpara> +<title +>Points d'arrêt</title> +<para +>&tdevelop; fournit plusieurs moyens pour définir des points d'arrêt dans les sources de votre application. L'un passe par l'emploi de l'élément de menu<guimenuitem +>Basculer le point d'arrêt</guimenuitem +>.</para> +</formalpara> + +<formalpara> +<title +>Débogage avancé</title> +<para +>D'autres éléments du menu <guimenu +>Déboguer</guimenu +> permettent une analyse plus sophistiquée du programme. Appuyez sur <keycombo +><keycap +>&Maj;</keycap +><keycap +>F1</keycap +></keycombo +> pour obtenir plus d'informations sur leur objectif.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Scripts</guimenu +></term> +<listitem> +<para +>Vous pouvez appeler divers scripts à partir de ce menu pour effectuer aisément des actions fastidieuses sur le texte dans la fenêtre d'éditeur actuellement sélectionnée. Les actions disponibles reposent sur le script sélectionné, toutefois. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Fenêtre</guimenu +></term> +<listitem> +<para +>Ce menu est tout à fait standard. Vous pouvez non seulement sélectionner n'importe quelle fenêtre de document ouvert, mais aussi fermer un ou plusieurs documents ici. Vous pouvez même sélectionner un ensemble de fenêtres de documents à fermer en une seule fois.</para> + +<para +>Selon le module externe d'éditeur que vous utilisez, il peut y avoir d'autres éléments de menu également. ainsi; le module externe de l'éditeur Kate permet de plus de diviser la fenêtre de l'éditeur horizontalement aussi bien que verticalement.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Outils</guimenu +></term> +<listitem> +<para +>&tdevelop; est extrêmement personnalisable. Vous pouvez choisir votre éditeur favori pour vos documents aussi bien que prévoir des modules externes et enfichés pour étendre les fonctions de base de l'&EDI;. Le menu <guimenu +>Outils</guimenu +> reflète la majeure partie de cette configuration.</para> + +<formalpara> +<title +>Édition avancée</title> +<para +>La partie supérieure des éléments du menu <guimenu +>Outils</guimenu +> sera fournie par le module externe de l'éditeur en service. Vous pouvez choisir votre éditeur de texte favori via <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +> <guilabel +>Éditeur</guilabel +></menuchoice +>. Une fois qu'un fichier de document modifiable est sélectionné, la partie supérieure du menu <guimenu +>Outils</guimenu +> fournira les commandes d'édition avancée propres au composant d'édition en service.</para> +</formalpara> + +<formalpara> +<title +>Gestion côté web</title> +<para +>Dans le cas où la fenêtre de document active contient une page HTML (&pex; affichée à partir d'une sélection <guilabel +>Documentation</guilabel +>), le menu <guimenu +>Outils</guimenu +> affichera des éléments de menu additionnels qui offrent divers moyens de gérer les pages web. </para> +</formalpara> + +<formalpara> +<title +>Autres outils</title> +<para +>D'habitude il existe un groupe d'autres éléments, selon les outils disponibles actuellement. Appuyez sur <keycombo +><keycap +>&Maj;</keycap +> <keycap +>F1</keycap +></keycombo +> pour obtenir plus d'informations sur leurs objectifs.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Configuration</guimenu +></term> +<listitem> +<para +>Ce menu permet d'afficher et de cacher les barres de menus, les barres d'outils et la barre d'état. De plus, vous pouvez configurer des raccourcis, des barres d'outils, desnotifications, l'éditeur et le comportement général de &tdevelop;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenu +>Aide</guimenu +></term> +<listitem> +<para +>Ici vous pouvez ouvrir ce manuel KDevelop, effectuer des consultations par termes dans divers fichiers de documentation, ouvrir des pages de man (le format du manuel UNIX traditionnel) et les pages info (le format du manuel GNU). En outre, vous pouvez signaler des bogues ici ou avoir quelques notions sur votre version actuelle de KDevelop et ses auteurs.</para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2 id="gettingstarted-overview-tools"> +<title +>À quoi servent ces outils ?</title> + +<para +>Dans le mode d'interface utilisateur IDEAl, l'espace de travail sera entourée de trois zones de boutons, ce qu'on appelle les <emphasis +>onglets des vues d'outils</emphasis +>. Ils fournissent l'accès aux <emphasis +>fenêtres de vues d'outils</emphasis +> qui accomplissent les tâches principales pendant le développement de logiciel. Chacune de ces trois zones des vues d'outils sert un but différent.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Côté gauche</title> +<para +>Fournit un accès aux outils de navigation et de sélection.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Bas</title> +<para +>Ces vues affichent les messages produits par divers outils.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Côté droit</title> +<para +>Fournit un accès à la documentation et aux outils de gestion des sources.</para> +</formalpara> +</listitem> +</itemizedlist> + +<para +>Le nombre des onglets de vues d'outils affichés change dès lors qu'un projet est ouvert pour un travail réel. D'autres outils permettant de travailler sur ce projet seront disponibles ensuite. Le nombre réel des vues d'outils repose sur les <link linkend="plugin-tools" +>outils modules externes</link +> actuellement disponibles pour &tdevelop;. Vous en saurez plus sur ce sujet dans le chapitre <link linkend="setup" +>Configuring KDevelop</link +>.</para> + +<para +>Actuellement, puisqu'il n'y a aucun projet ouvert et le nombre par défaut d'outils de modules externes chargés, vous trouverez les vues des outils suivants. Cliquer sur un onglet ouvrira et fermera respectivement sa fenêtre de vues d'outils.</para> + +<variablelist> +<varlistentry> +<term +>Navigation et sélection</term> +<listitem> +<formalpara> +<title +>Sélecteur de fichiers</title> +<para +>Fournit un panneau permettant de naviguer dans l'arborescence des répertoires et de sélectionner des fichiers pour travailler tout comme dans &konqueror;. Un clic sur un fichier l'ouvre dans une fenêtre d'édition appropriée dans l'espace de travail. Un clic droit dans la zone du sélecteur de fichiers fera s'ouvrir un menu de navigation et de manipulation de fichiers.</para> +</formalpara> + +<formalpara> +<title +>Liste des fichiers</title> +<para +>Liste les fichiers actuellement ouverts. Un clic sur un fichier sélectionne habituellement sa fenêtre d'édition dans l'espace de la zone de travail. Utilisez cette fonction pour naviguer rapidement dans un grand nombre de fichiers ouverts. De plus cette vue offre un moyen d'organiser les fichiers ouverts dans différentes <emphasis +>sessions</emphasis +>. Ceci est particulièrement utile dans des projets très gros et complexes pour aider le développeur à se concentrer sur différentes tâches. Un clic droit sur un fichier fera s'ouvrir un menu de manipulation de fichiers.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Affichages des messages</term> +<listitem> +<formalpara> +<title +>Application</title> +<para +>Affiche la sortie d'une application démarrée depuis &tdevelop;.</para> +</formalpara> + +<formalpara> +<title +>Diff</title> +<para +>Utilisé pour afficher le contenu des fichiers correctifs. Affiche la sortie à partir de l'outil d'affichage de différences démarré depuis le menu <menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Afficheur de différences...</guimenuitem +></menuchoice +>.</para> +</formalpara> + +<formalpara> +<title +>Messages</title> +<para +>Affiche les messages produits oar les outils construits depuis &tdevelop;, habituellement à partir du menu <guimenu +>Construire</guimenu +>.</para> +</formalpara> + +<formalpara> +<title +>Chercher dans les fichiers</title> +<para +>Affiche la liste des éléments trouvés par l'opération de recherche globale démarrée à partir du menu <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher dans les fichiers...</guimenuitem +></menuchoice +>. Un clic sur une ligne ici ouvrira automatiquement ce fichier à la position spécifiée dans une fenêtre d'édition.</para> +</formalpara> + +<formalpara> +<title +>Remplacer</title> +<para +>Liste les résultats de l'opération de rechercher-et-remplacer globale émis à partir du menu <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Rechercher / Sélectionner / Remplacer...</guimenuitem +></menuchoice +>. Dans cette vue, vous pouvez décider sur chaque élément trouvé si vous souhaitez réellement qu'il soit remplacé ou non.</para> +</formalpara> +<note> +<para +>Cette fonction de recherche-et-remplacer n'est réellement disponible qu'une fois qu'un projet a été chargé dans &tdevelop;. Sinon, l'outil de remplacement global dans le menu <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher / Sélectionner / Remplacer...</guimenuitem +> </menuchoice +> sera en fait désactivé.</para> +</note> + +<formalpara> +<title +>Konsole</title> +<para +>Ouvre une <application +>Konsole</application +> &kde; comme une fenêtre d'émulateur de terminal dans laquelle vous pouvez utiliser les commandes clavier dans une interface en lgne de commande &UNIX; traditionnelle.</para> +</formalpara> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Documentation et manipulation des sources</term> +<listitem> +<formalpara> +<title +>Documentation</title> +<para +>&tdevelop; offre l'accès à un ensemble complet de documentation via cet outil. Vous pouvez ici accéder aux fichiers des documents, habituellement en ligne à partir d'emplacements distants, d'une manière structurée. Et il y a plusieurs moyens possibles d'accéder directement à des informations très intéressantes à partir des manuels &kde; ou &Qt;.</para> +</formalpara> + +<para +>Consultez les chapitres <link linkend="documentation" +>Documentation</link +> et <link linkend="setup-docu" +>Configurer la documentation</link +> pour plus de détails.</para> + +<formalpara> +<title +>Fragments de code</title> +<para +>Cet outil permet de mémoriser de façon permanente des textes sélectionnés pour un usage ultérieur dans d'autres cycles dédition. C'est un outil très flexible, puisque tout fragment de texte mémorisé ici peut contenir un ensemble de variables qui obtiennent leurs valeurs réelles à l'instant où vous insérez un fragment de ce type dans un autre fragment de texte.</para> +</formalpara> +<para +>D'autres informations à ce sujet sont disponibles dans les chapitres <link linkend="editing-snippets" +>Fragments de code</link +> et <link linkend="setup-snippets" +>Configuration de l'outil « Fragments de code »</link +>.</para> +</listitem> +</varlistentry> +</variablelist> +</sect2> +</sect1> + +<sect1 id="gettingstarted-configure"> +<title +>Un peu de configuration</title> + +<para +>Avoir de pouvoir réellement démarrer un premier exemple de projet, nous devrions adapter le comportement de &tdevelop; à nos besoins. Bien que la plupart des réglages par défaut soient appropriés pour l'instant, il y a quelques aspects qui devront être ajustés.</para> + +<note> +<para +>Si vous voulez en savoir plus sur la configuration de &tdevelop;, jetez un coup d'Å“il au chapitre <link linkend="setup" +>Configuration de KDevelop</link +>.</para> +</note> + +<sect2 id="gettingstarted-configure-general"> +<title +>Quelques réglages généraux</title> + +<para +>Pour configurer &tdevelop;, cliquez sur le menu <menuchoice +><guimenu +>Configuration</guimenu +></menuchoice +> et sélectionnez <menuchoice +><guimenuitem +>Configurer KDevelop...</guimenuitem +></menuchoice +>. S'ouvre la boîte de dialogue <guilabel +>Configurer KDevelop</guilabel +>, affichant la page <guilabel +>Général</guilabel +> suivante sur la droite.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-general.png" format="PNG"/> +</imageobject> +<caption> +<para +>La boîte de dialogue de configuration générale de &tdevelop;</para> +</caption> +</mediaobject> +</screenshot> + +<para +>La plupart des réglages par défaut conviendront. Mais vous serez probablement amené à en changer deux ou trois.</para> + +<formalpara> +<title +>Dossier par défaut des projets</title> +<para +>Au premier démarrage de &tdevelop; il sera très probablement prédéfini dans votre répertoire personnel. La plupart des utilisateurs préfère un dossier de projets consacré au développement de logiciels. Saisissez dans la zone de texte votre répertoire de développement parent préféré. Vous pouvez le choisir à partir de l'arborescence des répertoires si vous cliquez sur le bouton <guilabel +>Ouvrir le sélecteur de fichiers</guilabel +> portant une icône de dossier à sa droite.</para> +</formalpara> + +<para +>Dans nos exemples, nous supposerons (quelque peu artificiel) un utilisateur appelé <filename class="directory" +>devel</filename +>. Ainsi, remplacez ce « devel » par votre nom d'utilisateur. Notre utilisateur « devel » utilisera le dossier parent <filename class="directory" +>/home/devel/projects</filename +> pour le développement proprement dit. Là encore, remplacez <filename class="directory" +>projects</filename +> par le nom de votre dossier de développement. </para> + +<para +>&tdevelop; installera par défaut un sous-dossier distinct sous son parent pour chaque nouveau projet que vous créez. Ainsi &pex;, tous les fichiers d'un projet nommé « Bonjour » dans notre cas, seront placés dans le dossier <filename class="directory" +>/home/devel/projects/bonjour</filename +>.</para> + +<para +>Vous pouvez naturellement annuler les réglages de ce dossier si nécessaire. Consultez le chapitre <link linkend="applicationwizard" +>&appwizard;</link +> pour plus d'informations à ce sujet.</para> + +<formalpara> +<title +>Sortie du compilateur</title> +<para +>Chaque fois que &tdevelop; compile un source quelconque, il affiche les messages des outils de construction <application +>make</application +>, etc, dans la fenêtre <guilabel +>Messages</guilabel +> dans la partie inférieure de la zone d'espace de travail. Habituellement, ces messages seront extrêmement délayés. Pour garder une meilleure vue d'ensemble de ce qui se produit, &tdevelop; a quelque moyen de raccourcir ces messages intégrés.</para> +</formalpara> + +<para +>Selon la version de &tdevelop; que vous utilisez, la sélection <guilabel +>Sortie du compilateurt</guilabel +> peut être présélectionnée sur « Longue », ce qui provoquera l'affichage de tout le contenu des messages. Vous serez probablement amené à changer ce réglage pour l'option beaucoup plus pratique « Très courte ». Choisissez simplement ce réglage à partir de la zone de liste déroulante.</para> + +<caution> +<para +>Soyez conscient que seules les informations <emphasis +>les plus élémentaires</emphasis +> seront affichées dans la fenêtre <guilabel +>Messages</guilabel +> de cette manière. En cas d'erreurs pendant l'exécution d'une construction par exemple, vous serez probablement amené à consulter plus, si ce n'est la totalité, des messages de texte. Ils ne sont pas perdus, cependant. Cliquez simplement sur la fenêtre <guilabel +>Messages</guilabel +> et sélectionnez par exemple « Sortie du compilateur longue » à partir du menu qui apparaît.</para> +</caution> +</sect2> + +<sect2 id="gettingstarted-configure-search"> +<title +>Initialisation des index de recherche de documentation</title> + +<para +>Il existe un autre élément, pas si évident, qui devra de préférence être initialisé avant de commencer le travail de développement proprement dit. Ceci est dû parce que vous serez amené amené à exécuter une recherche de documentation régulièrement pendant le développement. &tdevelop; exige que certains index de recherche soient créés avant de pouvoir effectuer de telles opérations de recherche. Ainsi, initialisons-les avant de tenter nos premières étapes vers le fonctionnement réel de &tdevelop;.</para> + +<para +>Ouvrez la vue des outils <guilabel +>Documentation</guilabel +> du côté droit de la fenêtre principale de &tdevelop;. Ouvrez la page de dialogue <guilabel +>Recherche</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="documents-search.png" format="PNG"/> +</imageobject> +<caption +><para +>Où générer les index de recherche.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cliquez maintenant sur le bouton <guibutton +>Mettre à jour la configuration</guibutton +> pour vous assurer que les outils de recherche sont correctement installés. Une boîte de dialogue devra apparaître, indiquant « Fichier de configuration mis à jour ». Cliquez sur <guibutton +>OK</guibutton +> pour la faire disparaître.</para> + +<para +>Ensuite, &tdevelop; sera prêt à analyser la documentation dont il a connaissance et à construire quelques index de recherche utiles à partir de celle-ci. Cliquez sur le bouton <guibutton +>Mettre à jour l'index</guibutton +> à droite. Maintenant, la boîte de dialogue <guilabel +>Générer l'index de recherche</guilabel +> s'ouvre, affichant la progression des opérations de construction de l'index.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-docu-indexgen.png" format="PNG"/> +</imageobject> +<caption +><para +>&tdevelop; génère les index de recherche de documentation.</para +></caption> +</mediaobject> +</screenshot> + +<para +>L'opération prendra un peu de temps, selon la taille de la documentation et la puissance de votre machine. Finalement, le bouton <guibutton +>Annuler</guibutton +> laissera la place à <guibutton +>OK</guibutton +>. Cliquez simplement sur ce bouton pour continuer.</para> + +<note> +<itemizedlist> +<listitem> +<para +>Cela fermera en principe la boîte de dialogue. Dans certains cas, il se peut que l'application <application +>htdig</application +> que &tdevelop; utilise pour effectuer ses recherches de texte ne soit pas correctement installée. Consultez le chapitre <link linkend="setup-docu-textsearch" +>Configuration des recherches de texte</link +> pour obtenir de l'aide dans ce cas.</para> +</listitem> +<listitem> +<para +>Pour être en mesure de consulter la documentation de l'API propre à &kde; et à &Qt;, il est obligatoire que les <emphasis +>KDELibs Apidocs</emphasis +> soient présentes lorsque est installé. Si vous rencontrez des problèmes en construisant les indexe ou que vous exécutez les <link linkend="gettingstarted-edit-defs" +>exemples de consultation par identifiants</link +> plus loin dans ce chapitre, assurez-vous que cette documentation existe et est accessible à &tdevelop;. Reportez-vous à <link linkend="tdevelop-install" +>Installation de KDevelop</link +> pour plus de détails.</para> +</listitem> +</itemizedlist> +</note> +</sect2> +</sect1> + + +<sect1 id="gettingstarted-new"> +<title +>Démarrer un nouveau projet</title> + +<para +>Presque toutes les applications se composent de douzaines, de centaines, voire de milliers de fichiers qui doivent être structurés et maintenables. Pour y parvenir, &tdevelop; organise les tâches de développement de logiciels dans des <emphasis +>projets</emphasis +>. Ainsi, la première étape pratique pour développer des logiciels dans &tdevelop; consiste habituellement à créer un nouveau projet.</para> + +<para +>Heureusement, cela ne pose pas de problème. &tdevelop; fournit ce qu'on appelle l'outil &appwizard; pour ce faire. (consultez le chapitre <link linkend="applicationwizard" +>Premiers pas — l'&appwizard;</link +> pour en savoir plus.)</para> + +<para +>Nous allons à présent démarrer un projet d'application &kde; simple pour illustrer la facilité de l'opération et montrer quels sont les fichiers et outils que &tdevelop; aura mis à disposition. De ce fait, noue jetterons un coup d'Å“il aux points suivants :</para> + +<simplelist> +<member +><link linkend="gettingstarted-new-setup" +>Comment créer un nouveau projet avec l'aide de l'&appwizard;.</link +></member> +<member +><link linkend="gettingstarted-new-files" +>Quels sont les fichiers que l'&appwizard; a configuré initialement.</link +></member> +<member +><link linkend="gettingstarted-new-toolviews" +>Qu'en est-il de la vue des outils additionnels affichés avec le projet ?</link +></member> +</simplelist> + +<sect2 id="gettingstarted-new-setup"> +<title +>Comment créer un nouveau projet</title> + +<para +>Créons un projet &kde; « Bonjour monde » plutôt simple. Il suffit de suivre ces étapes.</para> + +<procedure> +<step> +<para +>Pour démarrer l'&appwizard; cliquez sur le menu <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Nouveau projet...</guimenuitem +></menuchoice +>.</para> +</step> + +<step> +<para +>La boîte de dialogue <guilabel +>Créer un nouveau projet</guilabel +> apparaît. Dans la fenêtre supérieure gauche <guilabel +>Tous les projets</guilabel +> sont listés un certain nombre de langages de programmation.</para> + +<substeps> +<step> +<para +>Nous voulons construire un application &kde; en C++ comme d'habitude, donc cliquez sur l'étiquette <guilabel +>+</guilabel +> à gauche de l'étiquette <guilabel +>C++</guilabel +> pour ouvrir cette branche.</para> +</step> + +<step> +<para +>Une série de cibles d'applications possibles s'affiche. Nous allons construire une application &kde;. Ouvrez donc la sous-branche suivante via l'étiquette <guilabel +>+</guilabel +> à côté de <guilabel +>KDE</guilabel +>.</para> +</step> + +<step> +<para +>S'affiche alors à une série de <emphasis +>modèles de projets</emphasis +>. Naviguez jusqu'à la fin de cette branche et cliquez sur <guilabel +>Application KDE simple</guilabel +>.</para> + +<para +>Un aperçu et une courte description de l'applicatopn que ce modèle de projet produira apparaît dans les deux fenêtres à droite.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-new-project.png" format="PNG"/> +</imageobject> +<caption> +<para +>Sélection d'un modèle de projet « Hello World »</para> +</caption> +</mediaobject +></screenshot> +</step> + +<step> +<para +>Notre application nécessitera un nom. Cherchez la zone <guilabel +>Propriétés</guilabel +> au bas de la boîte de dialogue et saisissez un nom approprié dans le champ d'entrée <guilabel +>Nom de l'application</guilabel +>.</para> + +<para +>Nous utilisons « Hello » dans notre exemple, mais vous pouvez employer ce que vous souhaitez, pourvu que le nom soit composé de lettres, de chiffres et de caractères de soulignement uniquement. Vous constaterez que l'&appwizard; rejette tout autre caractère.</para> +</step> + +<step> +<para +>Assurez-vous que la zone de texte <guilabel +>Emplacement</guilabel +> sous le champ d'entrée affiche le dossier de plus haut de votre projet comme configuré dans le chapitre <link linkend="gettingstarted-configure" +>Un peu de configuration</link +> ci-dessus. Dans le cas contraire, saisissez un nom de dossier approprié ou choisissez-en un dans la liste des dossiers fournie par le bouton à droite portant l'icône d'un dossier.</para> + +<para +>Si tout s'est bien passé, la ligne <guilabel +>Emplacement cible</guilabel +> en bas affichera le chemin du dossier que votre nouveau projet emploiera. au cas ou un suffixe « (invalid) » serait annexé, essayez un autre nom pour votre projet et / ou assurez-vous que le dossier de plus haut niveau du projet saisi dans la zone de texte <guilabel +>Emplacement</guilabel +> existe bien et qu'il est modifiable.</para> +</step> + +<step> +<para +>Une fois que tout est correct, le bouton <guibutton +>Suivant</guibutton +> sur la ligne du bas de la boîte de dialogue est activé. Cliquez sur ce dernier pour continuer.</para> +</step> +</substeps> +</step> + +<step> +<para +>Cette action vousconduit à la boîte de dialogue <guilabel +>Options du projet</guilabel +>. Assurez-vous que les zones de texte <guilabel +>Auteur</guilabel +> et <guilabel +>Adresse électronique</guilabel +> sont correctement remplies. Habituellement, ce seront vos réglages utilisateur &kde; par défaut comme indiqué dans la boîte de dialogue <guilabel +>Compte utilisateur et mot de passe</guilabel +> du Centre de configuration de &kde;. Sinon, changez-les pour les réglages que vous préférez pour votre application.</para> + +<screenshot id="gettingstarted-new-setup-options"> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-hello-options.png" format="PNG"/> +</imageobject> +<caption> +<para +>Saisissez votre nom et (éventuellement) votre adresse électronique.</para> +</caption> +</mediaobject> +</screenshot> + +<note> +<para +>Vous devez fournir un nom d'<guilabel +>auteur</guilabel +> au moins. C'est obligatoire pour la configuration des fichiers de l'application.</para> +</note> + +<para +>Si tout est correct, le bouton <guibutton +>Suivant</guibutton +> est activé. Cliquez sur ce dernier pour continuer.</para> +</step> + +<step> +<para +>Les boîtes de dialogue <guilabel +>Version Control System</guilabel +>, <guilabel +>Template for .h Files</guilabel +>, and <guilabel +>Template for .cpp Files</guilabel +> suivantes ne nous intéressent pas pour le moment. Ignorez-les en cliquant sur les boutons <guibutton +>Suivant</guibutton +> et, pour finir, sur le bouton <guibutton +>Terminer</guibutton +>.</para> +</step> +</procedure> + +<para +>C'est tout ! L'a&appwizard; prend le relais et construit une série de fichiers initiaux dans le dossier <guilabel +>Emplacement cible</guilabel +> que vous avez fourni dans l'étape 2c ci-dessus.</para> + +<para +>Une fois cette phase de création terminée, &tdevelop; ouvre une fenêtre d'édition pour le fichier d'implémentation de la <emphasis +>fenêtre principale de l'application</emphasis +> (c'est-à -dire <filename +>bonjour.cpp</filename +> dans notre exemple), donc vous pouvez continuer sans problème.</para> +</sect2> + +<sect2 id="gettingstarted-new-files"> +<title +>Fichiers initiaux du projet</title> + +<para +>Même si notre exemple de projet Bonjour est tout à fait simple, l'&appwizard; a bien créé un ensemble complet de fichiers de gestion de sources et de projet. Vous les listerez très facilement en ouvrant la vue des outils <guilabel +>Arborescence des fichiers</guilabel +> sur la partie inférieure gauche. S'ouvre une liste de fichiers similaire à celle ci-dessous.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-hello-new.png" format="PNG"/> +</imageobject> +<caption> +<para +>Fichiers initiaux dans notre projet « Bonjour tout le monde »</para> +</caption> +</mediaobject> +</screenshot> + +<para +>Pour mettre en évidence le principal groupe de fichiers que l'&appwizard; a produit, nous avons ouvert la majeure partie des branches des dossiers dans la fenêtre de vue des outils <guilabel +>Arborescence des fichiers</guilabel +> située à gauche. Cliquez simplement sur les noms des branches dans l'arborescence pour constater par vous-même.</para> + +<para +>De plus, juste à titre de démonstration, nous avons également ouvert la majeure partie des branches de la fenêtre de vue des outils <guilabel +>Gestionnaire « automake »</guilabel +> à droite, où sont listées certaines des sources du projet, également.</para> + +<sect3 id="gettingstarted-new-files-copyright"> +<title +>Aspects liés aux droits d'auteur</title> + +<para +>Toutes les applications se conformant à &GNU; doivent être protégées par des droits d'auteur. Il y a deux niveaux qui requièrent des notices de droits d'auteur, les <emphasis +>fichiers sources individuels</emphasis +> et le <emphasis +>niveau d'application exécutable</emphasis +> (run-time application). L'&appwizard; a déjà placé les informations relatives aux droits d'auteur et à la licence dans les fichiers de projet.</para> + +<formalpara> +<title +>Droits d'auteur au niveau des fichiers sources</title> +<para +>Vous rappelez-vous de la boîte de dialogue <link linkend="gettingstarted-new-setup-options" +><guilabel +>Options du projet</guilabel +></link +> dans la configuration du projet ? Vous avez dû y saisir votre nom (celui du développeur) et éventuellement une adresse électronique. Reportez-vous maintenant au début de la fenêtre d'édition de <guilabel +>bonjour.cpp</guilabel +> actuellement affichée dans la zone d'espace de travail. L'&appwizard; a saisi ces instructions au début de l'en-tête relative à la licence de chaque fichier source qu'il a créé.</para> +</formalpara> + +<programlisting +>/*************************************************************************** + * Copyright (C) 2006 by Jean Utilisateur * + * jean@utilisateur.com * + * * + * This program is free software; you can redistribute it and/or modify * +</programlisting> + +<para +>Vous trouverez exactement les mêmes en-têtes de texte dans chaque fichier source que vous créerez au sein de &tdevelop; (à condition que vous utilisiez les outils intégrés lors de la création des fichiers). &tdevelop; se souvient de ces réglages dans certains modèles de fichiers que vous pouvez trouver dans le dossier <filename class="directory" +>templates</filename +>.</para> + +<formalpara> +<title +>Droits d'auteurs relatifs à l'exécution de l'application</title> +<para +>Une fois que votre application &kde; tourne, l'utilisateur peut afficher certaines données <guilabel +>À propos</guilabel +>, habituellement à partir du menu <guimenu +>Aide</guimenu +>. L'&appwizard; a également veillé à cet aspect. Si vous jetez un coup d'Å“il au fichier <filename +>main.cpp</filename +>, vous trouverez un élément similaires à celui ci-dessous.</para> +</formalpara> + +<programlisting +>int main(int argc, char **argv) +{ + KAboutData about("bonjour", I18N_NOOP("Bonjour"), version, description, + KAboutData::License_GPL, "(C) 2006 Jean Utilisateur", 0, 0, + "jean@utilisateur.com"); + about.addAuthor( "Jean Utilisateur", 0, "joe@user.com" ); +</programlisting> + +<para +>Ce code affiche le nom (« Jean Utilisateur » dans notre cas) et l'adresse électronique du développeur principal dans la page de droits d'auteur <guilabel +>À propos</guilabel +> et liste ses nom et adresse sur la page <guilabel +>Auteurs</guilabel +> également.</para> + +<important> +<para +>Chaque fois que vous apportez des changements notables à un projet existant, veillez à saisir vos nom et adresse sur les notices de droits d'auteur sur tous les fichiers que vousavez changés et sur l'affichage des droits d'auteur de l'exécutable également. Ne soyez pas timide, vous aidez considérablement la communauté <foreignphrase +>open souce</foreignphrase +> en faisant cela..</para> +</important> +</sect3> + +<sect3 id="gettingstarted-new-files-source"> +<title +>Fichiers sources initiaux</title> + +<para +>L'&appwizard; a placé les fichiers sources dans le sous-dossier <filename class="directory" +>src</filename +> du dossier du projet. Vous y trouverez les fichiers <filename +>main.cpp</filename +>, <filename +>bonjour.h</filename +> et <filename +>bonjour.cpp</filename +> comme vous vous y attendiez certainement.</para> + +<para +>Il y a quelques fichiers supplémentaires que l'on trouve dans une application &kde; classique, à savoir</para> + +<itemizedlist> +<listitem> +<para +><filename +>bonjour.desktop</filename +> contient des métadonnées utilisées par &tdevelop; pour maintenir et démarrer l'application.</para> +</listitem> + +<listitem> +<para +><filename +>hi16-app-bonjour.png</filename +> et <filename +>hi32-app-bonjour.png</filename +> contiennent quelques icônes initiales par défaut que &tdevelop; emploiera pour l'affichage de l'application.</para> +</listitem> + +<listitem> +<para +>Pour finir, <filename +>bonjourui.rc</filename +> contient une description de l'interface utilisateur de l'application, actuellement les menus que fournira l'application.</para> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-new-files-doc"> +<title +>Documentation intiale de l'application</title> + +<para +>Dans le sous-dossier <filename class="directory" +>doc/en</filename +> du projet, vous trouverez le fichier <filename +>index.docbook</filename +>. C'est un modèle par défaut à partir duquel vous pouvez commencer à écrire une documentation utilisateur appropriée</para> +</sect3> + +<sect3 id="gettingstarted-new-files-project"> +<title +>Fichiers du projet et auxiliaires</title> + +<para +>Vous aurez noté que les fichiers que nous avons introduits jusqu'ici sont listés en gras dans la vue des outils <guilabel +>Arborescence des fichiers</guilabel +>, contrairement à la plupart des autres fichiers. Ce comportement illustre les tâches sensiblement différentes pour lesquelles ces fichiers sont prévus. Le contenu de ces fichiers représentés en gras influencent directement l'application. Les fichiers sources produiront le code à exécuter, d'autres généreront les données ou la documentation nécessaire. Comme ces fichiers doivent être maintenus et traités avec méthode lors des étapes de construction par le projet, ils sont appelés <emphasis +>fichiers de projet</emphasis +>.</para> + +<para +>Si vous jetez un coup d'Å“il à la fenêtre <guilabel +>Gestionnaire « Automake »</guilabel +> inférieure à droite de la zone d'espace de travail, vous trouverez également la liste de tous les fichiers de projet. L'outil &automanag; utilise ces connaissances pour veiller au contrôle de construction comme nous le verrons dans un instant.</para> + +<para +>Les autres fichiers, représentés autrement qu'en gras sont de nature plus auxiliaire. Ils appartiennent à plusieurs classes distinctives comme suit :</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Contrôle de construction d'un projet</title> +<para +>Ces fichiers contrôlent les processus de compilation, d'installation, de construction de la documentation, &etc;. Si le projet emploie le mécanisme <application +>autotools</application +> de &GNU; comme le fait notre exemple, vous trouverez un fichier <filename +>Makefile.am</filename +> dans chaque dossier de projet. Il s'agit d'une sorte de « fichier core » de base qui contiennent des commandes de contrôle de construction et sera traité en liaison avec divers fichiers <filename +>configure</filename +> pendant les étapes de construction. Un tel processus de construction produit un <filename +>Makefile</filename +> final dans chaque dossier. Et, à partir de là , à son tour l'utilitaire <application +>make</application +> construira enfin les exécutables (binaires) de l'application.</para> +</formalpara> + +<para +>Ces fichiers <filename +>Makefile.am</filename +> doivent être maintenus tout au long du processus de développement. Par chance, &tdevelop; vous libère de la majeure partie de ce fardeau grâce à l'outil &automanag;, qui est avant tout une interface graphique pour maintenir le contenu de <filename +>Makefile.am</filename +>.</para> + +<para +>D'autres fichiers de contrôle de contrôle de la construction du projet actuellement répertoriés sont <filename +>configure.in.in</filename +> et <filename +>subdirs</filename +> dans le dossier racine du projet. Ils seront traités par certaines des fichiers dans le dossier d'administration <filename class="directory" +>admin</filename +> propre à &kde; pour produire plus de fichiers de type <filename +>configure</filename +> et <filename +>Makefile</filename +> et enfin, les exécutables de l'application.</para> +</listitem> + +<listitem> +<formalpara> +<title +>Fichiers de contrôle de &tdevelop;</title> +<para +>&tdevelop; a besoin de certaines données de contrôle et d'administration qui lui sont propres. Ils sont situés dans le dossier racine du projet, dans notre exemple <filename +>bonjour.tdevelop</filename +>, <filename +>bonjour.tdevelop.pcs</filename +> et <filename +>bonjour.kdevses</filename +>.</para> +</formalpara> + +<para +>Le fichier <filename +>xxx.tdevelop</filename +> (où « xxx » désigne le nom du projet) est d'une importance toute particulière dans chaque projet. C'est le <emphasis +>fichier de projet KDevelop 3</emphasis +> principal, nécessaire si vous voulez par la suite charger ce projet dans l'&EDI;.</para> + +<warning> +<para +>Il ne faut jamais modifier, renommer ou même supprimer aucun de ces fichiers de contrôle &tdevelop; ! L'&EDI; risquerait fort de ne plus fonctionner correctement sur votre projet par la suite.</para> +</warning> +</listitem> + +<listitem> +<formalpara> +<title +>Fichiers de description de projet GNU</title> +<para +>Certains fichiers dans le dossier racine du projet sont obligatoires dans toute application se conformant à &GNU;. Ce sont : <filename +>AUTHORS</filename +>, <filename +>ChangeLog</filename +>, <filename +>INSTALL</filename +>, <filename +>COPYING</filename +> (qui contient la GNU GENERAL PUBLIC LICENSE), <filename +>INSTALL</filename +>, <filename +>NEWS</filename +>, <filename +>README</filename +> et <filename +>TODO</filename +>.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Autres fichiers</title> +<para +>Quelques fichiers supplémentaires, non encore mentionnés, sont :</para> +</formalpara> + +<itemizedlist> +<listitem> +<para +><filename +>Doxyfile</filename +> contrôle la création de la documentation de l'interface de programmation interne de l'&API; propre au projet.</para> +</listitem> + +<listitem> +<para +>Le dossier <filename class="directory" +>templates</filename +> contient les modèles de fichiers que l'&EDI; utilise comme souches pour créer de nouveaux fichiers sources. Vous pouvez à tout moment modifier ces modèles. Le nouveau contenu sera répercuté dans les fichiers sources suivants que vous créez des types liés.</para> + +<para +>Comme vous pouvez &pex; être amené à réaligner les étoiles situées à droite dans les lignes relatives aux droits d'auteur que l'&appwizard; a insérées dans les modèles de fichiers <filename +>cpp</filename +> et <filename +>h</filename +>, les fichiers créés à partir de ces modèles sembleront moins incongrus.</para> +</listitem> + +<listitem> +<para +>Le dossier <filename class="directory" +>po</filename +> servira à des fins de localisation. Il fait essentiellement partie des fichiers de projet (contient un <filename +>Makefile.am</filename +>) mais sera principalement utilisé pour exécuter la traduction. Il n'est pas d'un intérêt majeur pour le développeur de l'application, cependant.</para> +</listitem> + +<listitem> +<para +>Enfin, le dossier <filename class="directory" +>admin</filename +> est en particulier nécessaire dans les applications orientées &kde;. Comme il fournit un ensemble complet de fichiers nécessaires pour maintenir les sources et les exécutables de l'application, ils s'intégreront sans problème dans l'environnement &kde;.</para> +</listitem> +</itemizedlist> + +</listitem> +</itemizedlist> +</sect3> +</sect2> + +<sect2 id="gettingstarted-new-toolviews"> +<title +>Vues des outils supplémentaires</title> + +<para +>Comme vous l'avez remarqué, dès l'instant où l'&appwizard; a rendu le nouveau projet ; plusieurs vues d'outils supplémentaires ont été mises à disposition. Ceux-ci ne se justifient que pendant le développement du projet et, en bref, fournissent la fonctionnalité suivante.</para> + +<note> +<para +>Les vues d'outils réellement visibles sont fonction des modules externes actuellement chargés dans &tdevelop;. Il y a des moyens de contrôler ce comportement. Consultez le chapitre <link linkend="setup-plugins" +>Outils modules externes</link +> pour connaître les instructions.</para> +</note> + +<sect3 id="gettingstarted-new-toolviews-left"> +<title +>Outils de navigation et de sélection (côté gauche)</title> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Signets</title> +<para +>Vous pouvez marquer une ligne de fichier texte afin de revenir rapidement à sa position depuis n'importe où. &tdevelop; mémorisera tous ces <emphasis +>signets</emphasis +>, même si vous fermez la fenêtre d'édition après. La vue des outils <guilabel +>Signets</guilabel +> liste tous ces signets par nom de fichier et numéro de ligne. Il ne vous reste qu'à cliquer sur un élément de ce type pour ouvrir la fenêtre d'édition et positionner le curseur sur cette ligne.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Classes</title> +<para +>Liste les classes, méthodes, &etc; connues dans le projet. Un clic sur l'élément ouvre les fichier d'en-tête ou source approprié dans une fenêtre dédition et positionne le curseur à la déclaration ou la définition respective.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Groupes de fichiers</title> +<para +>Trie les fichiers dans les projets en divers groupes d'utilitaires, &cad; les sources, l'interface utilisateur, les icônes, les traductions et autres. Un clic sur un élément ouvre ce fichier dans une fenêtre d'édition.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Variables</title> +<para +>Utilisé par l'outil de débogage pour afficher, évaluer et surveiller les variables pendant les exécutions.</para> +</formalpara> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-new-toolviews-bottom"> +<title +>Messages (en bas)</title> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Valgrind</title> +<para +><application +>Valgrind</application +> est un analyseur de programme exécutables. Cette vue d'outils liste les résultats d'une telle exécution d'analyse. Elle sert &pex; à rechercher des fuites mémoire.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Problèmes de sécurité</title> +<para +>Il existe un outil de module externe <guilabel +>Contrôleur de sécurité</guilabel +> pour &tdevelop;. Il analyse le fichier source en cours d'édition pour rechercher des problèmes de sécurité courants qui peuvent se produire dans l'application et informe l'utilisateur dans la fenêtre de vue des outils.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Points d'arrêt</title> +<para +>Cette vue des outils permet de définir, effacer et gérer explicitement les points d'arrêt dans les fichiers sources de l'application. Elle est utilisée en liaison avec le débogueur.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>CTags</title> +<para +>Permet de créer une base de données ou des index d'identifiants utilisant l'application <application +>CTags</application +> bien connue. Cette base de données de marqueurs peut alors être utilisée à partir de cette fenêtre de vue d'outils pour effectuer n'importe quelle consultation par identifiant nécessaire dans les sources du projet. Un clic sur une ligne d'élément ainsi trouvé ouvre une fenêtre d'édition et positionne le curseur sur l'identifiant approprié à cet endroit.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Problèmes</title> +<para +>&tdevelop; garde la trace des problèmes de programmation communs dans le fichier source modifié et avertit l'utilisateur dans cette fenêtre de vue des outils.</para> +</formalpara> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-new-toolviews-right"> +<title +>Gestion des sources (côté droit)</title> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Gestionnaire Automake</title> +<para +>L'outil &automanag; est essentiellement une interface graphique pour maintenir le contenu des fichiers <filename +>Makefile.am</filename +> situés dans chaque dossier du projet. Cette vue d'outils utilise deux fenêtres pour contrôler son travail. La fenêtre supérieure reflète une partie des sous-dossiers du projet, à savoir ceux qui contiennent explicitement les <emphasis +>fichiers de projet</emphasis +>. Chaque sous-dossier de ce type doit contenir un fichier <filename +>Makefile.am</filename +> est nommé un <emphasis +>sous-projet</emphasis +> dans le contexte du &automanag;.</para> +</formalpara> + +<para +>Un clic sur l'élément d'un sous-projet ouvre un affichage approprié des fichiers de projet dans ce sous-projet dans la fenêtre inférieure. Les fichiers listés ici seront groupés en fonction de leur fonctionnalité <filename +>Makefile.am</filename +> dans ce sous-projet.</para> + +<para +>Le &automanag; est un outil très puissant permettant de gérer le projet et ses sous-projets ainsi que les rôles que les fichiers du projet jouent dans la construction de l'application. Nous jetterons un bref coup d'Å“il à quelques détails majeurs <link linkend="gettingstarted-extend-automake" +>ci-dessous</link +>. Consultez le chapitre <link linkend="project-management" +>Construction et gestion de projets</link +> pour une description plus exhaustive.</para> +</listitem> +</itemizedlist> +</sect3> +</sect2> +</sect1> + + +<sect1 id="gettingstarted-edit"> +<title +>Quelques astuces pour travailler avec des documents</title> + +<para +>Dans notre exemple de projet, comme l'&appwizard; a laissé le fichier <filename +>bonjour.cpp</filename +> ouvert dans une fenêtre d'édition, vous pouvez immédiatement commencer à travailler. Maintenant, comme nous pouvons parfaitement partir du principe que vous êtes très à l'aise avec l'utilisation d'un éditeur, nous n'avons pas besoin d'en dire plus à ce propos ici. Mais il y a certaines aspects pratiques de &tdevelop; avec la manière de travailler avec de telles fenêtres d'édition à onglet et les documents sur lesquels vous travaillez. Nous jetterons un bref coup d'Å“il à certains d'entre eux, à savoir :</para> + +<simplelist> +<member +><link linkend="gettingstarted-edit-headers" +>Comment basculer facilement entre les fichiers d'en-tête et d'implémentation.</link +></member> +<member +><link linkend="gettingstarted-edit-defs" +>Comment accéder facilement aux déclarations et aux définitions.</link +></member> +<member +><link linkend="gettingstarted-edit-arrange" +>Comment adapter les fenêtres d'édition à vos besoins actuels.</link +></member> +<member +><link linkend="gettingstarted-edit-problems" +>Comment garder un Å“il sur les problèmes courants.</link +></member> +</simplelist> + +<sect2 id="gettingstarted-edit-headers"> +<title +>Basculer entre les fichiers d'en-tête et d'implémentation</title> + +<para +>&tdevelop; fournit un moyen rapide et facile de passer d'un fichier d'implémentation donné (<filename +>.cpp</filename +>) à un fichier d'en-tête correspondant (<filename +>.h</filename +>) et vice versa. Il suffit d'un clic droit dans la fenêtre d'édition vers laquelle vous voulez basculer. Un menu similaire à celui qui suit apparaîtra.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-switch-header.png" format="PNG"/> +</imageobject> +<caption +><para +>Comment basculer entre les fichiers d'implémentation et d'en-tête.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cherchez l'élément <guimenuitem +>Basculer entre les fichiers d'en-tête et les fichiers d'implémentation </guimenuitem +> et sélectionnez-le. &tdevelop; consultera le fichier d'en-tête ou d'implémentation correspondant et l'ouvrira dans une autre fenêtre dédition. Dans notre exemple, si vous avez cliqué dans le source <filename +>bonjour.cpp</filename +>, le fichier <filename +>bonjour.h</filename +> sera affiché et le curseur affiché ici.</para> + +<para +>Mieux encore. Si vous cliquez avec le &BDS; dans le texte d'une implémentation de classe, &tdevelop; positionnera le curseur sur la ligne de déclaration correspondante dans le fichier d'en-tête. Et vice versa, en cliquant avec le &BDS; sur une ligne de déclatration vous amènera à la l'implémentation de classe correspondante.</para> + +<para +>Si la fenêtre d'édition contenant le fichier vers lequel basculer existe déjà , &tdevelop; activera évidemment cette dernière et repositionnera le curseur ici si nécessaire.</para> +</sect2> + +<sect2 id="gettingstarted-edit-defs"> +<title +>Comment accéder aux déclarations et aux définitions</title> + +<para +>Mais si vous travaillez sur un fichier source et que vous voulez consulter la déclaration ou la définition d'un identifiant que vous venez d'y trouver ? Eh bien, il n'y a aucun problème pour le faire. Il suffit avant tout de cliquer avec le &BDS; sur l'identifiant en question.</para> + +<para +>Deux cas différents sont à prendre en compte, à savoir :</para> +<simplelist> +<member +><link linkend="gettingstarted-edit-defs-external" +>Accéder aux identifiant s définis extérieurement</link +> et</member> +<member +><link linkend="gettingstarted-edit-defs-project" +>traiter les éléments de texte internes du projet</link +>.</member> +</simplelist> + +<sect3 id="gettingstarted-edit-defs-external"> +<title +>Déclarations et définitions externes</title> + +<para +>Dans un cas très courant, vous êtes amené à consulter un identifiant qui a été défini extérieurement par rapport à votre projet. Dans les projets &kde;, de tels identifiants sont très probablement documentés dans diverses bibliothèques &kde; ou &Qt;. Si &kde;et &tdevelop; ont été installés correctement, &tdevelop; pourra accéder à ce qu'on appelle la documentation de l'API et chercher des identifiants de ce type.</para> + +<para +>Examinons un exemple. Dans la fenêtre d'édition <filename +>bonjour.cpp</filename +>, cherchez les lignes suivantes.</para> + +<programlisting +>Bonjour::Bonjour() + : KMainWindow( 0, "Bonjour" ) +{ +</programlisting> + +<para +>Cliquez avec le &BDS; sur <classname +>KMainWindow</classname +>. Un menu apparaît. Sélectionnez dedans l'élément <guimenuitem +>Chercher dans la documentation : KMainWindow</guimenuitem +> et relâchez le bouton de la souris. Maintenant, la vue des outils <guilabel +>Documentation</guilabel +> est ouverte, affichant l'élément <classname +>KMainWindow</classname +> en tant qu'élément de recherche sur la sous-page <guilabel +>Chercher</guilabel +>. Au bout d'un instant, une autre fenêtre d'édition s'ouvre dans la zone d'espace de travail, affichant la page de référence de l'API KDE de la classe <classname +>KMainWindow</classname +>.</para> + +<para +>Voici quelle en sera l'apparence globale. (Nous avons délibérément ouvert la page<guilabel +>Documentation</guilabel +>, <guilabel +>Recherche</guilabel +> déjà pour illustrer le résultat de la sélection du menu.)</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-search-doc.png" format="PNG"/> +</imageobject> +<caption +><para +>Comment consulter un identifiant documenté extérieurement.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Vous pourriez également sélectionner <guimenuitem +>Trouver de la documentation : KMainWindow</guimenuitem +>. Dans ce cas, la sous-page <guilabel +>Recherche de documentation</guilabel +> de la vue des outils <guilabel +>Documentation</guilabel +> apparaît, offrant habituellement une sélection de pages contenant le terme à rechercher. (Dans notre exemple, ce sera probablement les classes <classname +>KMainWindow</classname +> et <classname +>KMainWindowInterface</classname +>. Sélectionnez celle qui vous intéresse et la documentation correspondante sera affichée dans une fenêtre d'édition.</para> + +<note> +<para +>Si cela ne fonctionne pas, il n'y a probablement pas encore de d'index de documents. Avez-vous initialisé les index comme illustré <link linkend="gettingstarted-configure-search" +>ci-dessus</link +> ? Dans le cas contraire, faites-le puis revenez en arrière et réessayez.</para> +</note> +</sect3> + +<sect3 id="gettingstarted-edit-defs-project"> +<title +>Déclarations et définitions internes du projet</title> + +<para +>De telles fonctions de recherche dans la documentation externe ont leurs limites, cependant. Naturellement, on ne peut pas consulter un identifiant de façon externe s'il est seulement défini et utilisé dans le projet actuel. Mais il existe une aide. &tdevelop; peut employer des index construits par l'application <application +>CTags</application +> pour rechercher les sources dans votre projet.</para> + +<para +>Avoir de pouvoir l'utiliser dans notre exemple de projet « Bonjour », nous devons toutefois d'abord générer un index approprié. Ce sera réalisé par la vue des outils <guilabel +>CTags</guilabel +> au bas de la zone d'espace de travail.</para> + +<para +>Lorsque vous cliquez sur l'onglet <guibutton +>CTags</guibutton +>, une fenêtre de dialogue s'ouvre, où vous trouverez le bouton suivant dans le coin inférieur droit.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-ctags-regenerate.png" format="PNG"/> +</imageobject> +<caption +><para +>Construire un index CTags avec le bouton <guibutton +>Régénérer</guibutton +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cliquez sur le bouton <guibutton +>Régénérer</guibutton +> et attendez quelques secondes. L'élément <guilabel +>Aucune base de données de CTags trouvée</guilabel +> sera alors remplacé par la date actuelle. Vous êtes à présent prêt à effectuer des consultations par identifiant dans votre projet source.</para> + +<tip> +<para +>La date située à côté du bouton <guilabel +>Régénérer</guilabel +> est là pour vous rappeler des éventuels index trop anciens. Chaque fois que vous êtes dans l'impossibilité évidente d'effectuer une consultation par identifiant dans votre projet, pensez à régénérer l'index. Dans les gros projets, cette opération risque de prendre beaucoup de temps, mais vous devriez prendre l'habitude de régénérer l'index régulièrement après des changements importants dans le fichier source.</para> +</tip> + +<para +>Pour effectuer une consultation par identifiant dans les sources de votre projet, il y a plusieurs possibilités.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Utiliser la vue des outils CTags</title> +<para +>C'est le plus simple. Commencez simplement par saisir un nom d'identifiant qui vous intéresse dans le champ d'entrée <guilabel +>Consultation par identifiant</guilabel +> dans le bas à gauche. &tdevelop; essaiera de compléter le mot que vous avez saisi jusqu'ici et affichera toutes les occurrences de ces identifiants commençant par cette séquence de caractères.</para> +</formalpara> + +<para +>Si par exemple vous souhaitez savoir Ià où l'identifiant « Bonjour » a été utilisé dans notre exemple de projet, saisissez un « H » dans le champ d'entrée <guilabel +>Consultation par identifiant</guilabel +>. &tdevelop; se met immédiatement au travail et vous présente un résultat comme celui-ci :</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-ctags-lookup.png" format="PNG"/> +</imageobject> +<caption +><para +>Comment effectuer une consultation par identifiant dans la vue des outils <guilabel +>CTags</guilabel +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Si vous cliquez sur un des éléments listés, &tdevelop; ouvre une fenêtre d'édition contenant ce fichier et la position du curseur apparaît sur l'emplacement approprié.</para> +</listitem> + +<listitem> +<formalpara> +<title +>Utiliser un menu contextuel dans un fichier source</title> +<para +>Cette fonction est pratique lorsque vous travaillez sur un certain fichier source. Supposons que vous examiniez le fichier <filename +>main.cpp</filename +> de notre exemple de projet « Bonjour ». Vous y trouvez la ligne suivante</para> +</formalpara> +<programlisting +>Bonjour *mainWin = 0; +</programlisting> +<para +>et vous vous demandez pour quoi le mot « Bonjour » a été utilisé dans le programme. Pour le découvrir, il surffit d'un clic droit sur cet identifiant « Bonjour ». Un menu apparaît en réponse à ce clic droit de la souris, comportant les lignes suivantes près du bas.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-ctags-menu.png" format="PNG"/> +</imageobject> +<caption +><para +>Obtention des informations <application +>CTags</application +> sur un identifiant interne d'un projet.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cliquez sur celle qui vous intéresse, par exemple <guilabel +>CTags - Aller à la définition : Bonjour</guilabel +>, et &tdevelop; ouvre immédiatement la fenêtre d'édition <filename +>bonjour.cpp</filename +> et positionne le curseur juste devant cette définition de classe :</para> +<programlisting +>Bonjour::Bonjour() + : KMainWindow( 0, "Bonjour" ) +{ +</programlisting> +</listitem> + +<listitem> +<formalpara> +<title +>Faire une recherche globale</title> +<para +>Cette fonction est particulièrement utile pour consulter un texte arbitraire dans le source de votre projet. Il y a deux possibilités pour démarrer une recherche globale depuis &tdevelop;.</para> +</formalpara> +<itemizedlist> +<listitem> +<para +>Démarrer une recherche globale à partir du menu <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher dans les fichiers...</guimenuitem +></menuchoice +>. Ou</para> +</listitem> +<listitem> +<para +>Utiliser directement le menu contextuel à l'aide d'un clic droit de la souris dans la fenêtre d'édition.</para> +</listitem> +</itemizedlist> + +<para +>Nous illustrerons la seconde possibilité avecnotre exemple de projet « Bonjour ». Le résultat de l'appel de menu sera essentiellement le même. Supposons que vous examiniez le fichier source <filename +>bonjour.cpp</filename +> et que votre curseur soit positionné sur la première occurrence de « Bonjour » présente. Maintenant, vous vous demandez où ce mot « Bonjour » a été employé dans le source du projet, et combien d'occurrences il y a. C'est le cas typique où utiliser les fonctions de recherche globale de &tdevelop;.</para> + +<para +>À présent, si on laisse encore le curseur quelque part sur ce « Bonjour » dans le texte source, cliquez avec le &BDS;. Le menu contextuel maintenant bien connu apparaît, où vous devrez sélectionner la ligne <guilabel +>Grep : Bonjour</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-find-menu.png" format="PNG"/> +</imageobject> +<caption +><para +>Lancement d'une recherche globale depuis une fenêtre d'édition.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cette fonction fait s'ouvrir la boîte de dialogue <guilabel +>Find in Files</guilabel +> suivante (exactement la même que si vous aviez utilisé le menu <menuchoice +><guimenu +>Édition</guimenu +> <guimenuitem +>Chercher dans les fichiers...</guimenuitem +></menuchoice +>).</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="find-in-files.png" format="PNG"/> +</imageobject> +<caption +><para +>Une interface polyvalente pour effectuer des recherches globales dans le projet.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Comme vous le constatez, c'est un outil très souple pour lancer des recherches avec <application +>find</application +> et <application +>grep</application +> tout au long de votre projet. Nous n'entrerons pas plus avant dans les détails ici, mais vous pouvez être amené à expérimenter cette fonction par vous-même. Pour le moment, notre « Bonjour » devra être présélectionné dans le champ <guilabel +>Motif</guilabel +>. Dans le cas contraire, il suffit de le saisir puis de cliquer sur le bouton <guibutton +>Chercher</guibutton +> en bas à droite.</para> + +<para +>Maintenant la vue des outils <guilabel +>Chercher dans les fichiers</guilabel +> s'ouvre en bas, affichant les noms de fichiers et les lignes de toutes les occurrences littérales de « Bonjour » dans notre exemple de projet. Comme d'habitude, si vous cliquez sur un élément, &tdevelop; vous amènera exactement à cette position dans une fenêtre d'édition dans la zone d'espace de travail.</para> + +<para +>Il y a deux lignes particulièrement intéressantes dans la fenêtre de vue des outils.</para> +<itemizedlist> +<listitem> +<para +>En haut à droite, vous trouverez les séquence de commandes que &tdevelop; a réellement utilisées pour effectuer la recherche. Ce sera utile pour un contrôle plus précis du résultat de la recherche.</para> +</listitem> + +<listitem> +<para +>En bas, le n ombre d'occurrences trouvées lors de l'exécution de cette recherche sera répertorié. Dans notre exemple, on devrait lire « *** 11 matches found *** ».</para> +</listitem> +</itemizedlist> + +<para +>&tdevelop; se souviendra de ces résultats de recherche tout au long la session s'exécutant actuellement. Si vous lancez une autre recherche globale, ses résultats s'affficheront dans une fenêtre à onglets dans la fenêtre de vue des outils <guilabel +>Chercher dans les fichiers</guilabel +>.</para> +</listitem> +</itemizedlist> +</sect3> +</sect2> + +<sect2 id="gettingstarted-edit-arrange"> +<title +>Agencement des fenêtres d'édition</title> + +<para +>Lorsque vous travaillez avec de gros projets complexes, vous finissez souvent par avoir vraiment beaucoup de fenêtres d'édition résidant sur la barre d'onglets. Ce comportement rend nécessaires des fonctions pour nettoyer, ordonner et grouper tous ces onglets d'éditeur. &tdevelop; fournit plusieurs moyens pour cela. Nous jetterons un bref coup d'Å“il à certaines d'entre elles.</para> +<simplelist> +<member +><link linkend="gettingstarted-edit-arrange-clean" +>Comme supprimer les onglets non nécessaires.</link +></member> +<member +><link linkend="gettingstarted-edit-arrange-tabs" +>Comment réorganiser les onglets.</link +></member> +<member +><link linkend="gettingstarted-edit-arrange-split" +>Comment visualiser plusieurs fichiers simultanément dans la zone d'espace de travail.</link +></member> +<member +><link +linkend="gettingstarted-edit-arrange-sourceheader" +>Comment modifier des fichiers sources et d'en-tête C++ simultanément</link +></member> +<member +><link linkend="gettingstarted-edit-arrange-group" +>Comment grouper les fichiers sources en sessions de développement.</link +></member> +</simplelist> + +<sect3 id="gettingstarted-edit-arrange-clean"> +<title +>Nettoyage de la rangée des onglets</title> + +<para +>Si la grande quantité d'onglets de fenêtres d'édition devient extrêmement mal organisée, vous pouvez généralement être amené à fermer ces onglets dont vous n'avez plus du tout besoin. &tdevelop; offre plusieurs fonctions pour ce faire, le moyen habituel de fermer en bloc les fenêtres d'édition ouvertes et une approche plus spécifique où vous pouvez expressément décider lesquelles fermer et lesquelles laisser ouvertes.</para> + +<formalpara> +<title +>Fermer plusieurs onglets à la fois</title> +<para +>C'est une sorte d'approche en bloc pour fermer les onglets ouverts sans nécessité que vous pouvez trouver dans d'autres applications &kde; également. Vous pouvez utiliser le menu <guimenu +>Fenêtre</guimenu +> ou cliquer avec le &BDS; sur un onglet pour soit</para> +</formalpara> +<itemizedlist> +<listitem> +<para +>fermer la fenêtre d'édition actuellement sélectionnée,</para> +</listitem> +<listitem> +<para +>fermer toutes les fenêtres d'édition ouvertes, soit</para> +</listitem> +<listitem> +<para +>fermer toutes les fenêtres d'édition ouvertes (disponibles depuis le menu <guimenu +>Fenêtre</guimenu +> uniquement).</para> +</listitem> +</itemizedlist> + +<formalpara> +<title +>Fermer les ensembles sélectionnés d'onglets</title> +<para +>L'approche pas à pas consistant à fermer les onglets de fenêtres d'édition individuels peut devenir malaisé s'il y a un grand nombre d'onglets dont vous voulez encore garder plusieurs d'entre eux ouverts. Au lieu de faire une recherche et de fermer un onglet de fenêtre d'édition après l'autre, &tdevelop; propose un moyen de sélectionner les candidats à partir d'une liste et de fermer ceux-ci, et seulement ceux-ci, d'un seul clic de souris.</para> +</formalpara> + +<para +>Illustrons ce comportement dans un exemple simple. Dans notre exemple de projet « Bonjour », supposons qu'il y a avait plusieurs fichiers ouverts pour modification : <filename +>bonjour.cpp</filename +>, <filename +>bonjour.h</filename +>, <filename +>bonjour.rc</filename +>, <filename +>bonjour.desktop</filename +> et <filename +>main.cpp</filename +>. Maintenant, vous souhaitez les fermer tous, sauf <filename +>bonjour.cpp</filename +> et <filename +>bonjour.h</filename +>. Le moyen le plus facile de le faire consiste à utiliser la vue des outils <guilabel +>Liste des fichiers</guilabel +>. du fait que cette liste de fichiers ouverts est en ordre alphabétique, vous pouvez plus facilement trouver ceux que vous voulez voir fermés. Procédez comme suit :</para> + +<procedure> +<step> +<para +>Ouvrez le menu <guilabel +>Liste des fichiers</guilabel +> et, en maintenant enfoncée la touche <keycap +>Ctrl</keycap +>, cliquez sur les fichiers que vous voulez voir fermés dans la liste.</para> +</step> +<step> +<para +>Ensuite, en laissant le pointeur de la souris sur un nom de fichier dans la liste, cliquez avec le &BDS;.</para> +</step> +<step> +<para +>Depuis le menu <guimenu +>Liste des fichiers</guimenu +> qui apparaît, sélectionnez <guimenuitem +>Fermer la sélection</guimenuitem +>.</para> +</step> +</procedure> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="file-list-close-selected.png" format="PNG"/> +</imageobject> +<caption +><para +>Comment fermer les fenêtres d'édition sélectionnées en une étape.</para +></caption> +</mediaobject> +</screenshot> +<para +>C'est tout. &tdevelop; aura fermé toutes les fenêtres d'édition selon vos souhaits, et vous êtes prêt à continuer avec une barre d'outils propre à nouveau.</para> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-tabs"> +<title +>Comment réorganiser les onglets des fenêtres d'édition</title> + +<para +>Même si seules les fenêtres d'édition réellement nécessaires sont ouvertes, vous pouvez encore être amené à avoir leurs onglets onglets d'une manière logique. &tdevelop; fournit quelques moyens communs pour le faire, en bref :</para> + +<formalpara> +<title +>Installation de base — Où positionner les nouveaux onglets</title> + +<para +>Par défaut, lorsque vous ouvre une nouvelle fenêtre d'édition, son onglet sera inséré à droite de l'onglet de fenêtre d'édition actuellement utilisé. Ce comportement peut être modifié de façon que le nouvel onglet s'ouvre le plus à droite sur la barre d'onglets.</para> +</formalpara> +<para +>Vous devez changer un paramètre d'interface utilisateur de base dans &tdevelop; pour activer ce comportement.</para> +<procedure> +<step> +<para +>Sélectionnez <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +></menuchoice +></para> +</step> +<step> +<para +>Dans la barre d'icônes à gauche sur la page de dialogue qui apparaît, cliquez sur l'icône <guilabel +>Interface utilisateur</guilabel +>. La page de dialogue<guilabel +>Interface utilisateur</guilabel +> s'affiche maintenant.</para> +</step> +<step> +<para +>Dans le coin inférieur gauche, se trouve la section étiquetée <guilabel +>Navigation par onglets</guilabel +>. Supprimer la coche sur la ligne <guilabel +>Ouvrir les nouveaux onglets après l'onglet actuel</guilabel +>.</para> +</step> +<step> +<para +>Fermez &tdevelop; et redémarrez-le. Maintenant, les nouveaux onglets de la fenêtre d'édition s'ouvriront à l'extrémité la plus à droite de la rangée des onglets actuels.</para> +</step> +</procedure> + +<para +>Malheureusement, ce réglage ne peut pas être modifié à la volée pendant une session de développement. Décidez du comportement que vous préférez pour le long terme et tenez-vous en à celui-ci, au moins jusqu'au prochain démarrage de &tdevelop;.</para> + +<formalpara> +<title +>Comment réorganiser les onglets</title> +<para +>Comme les tâches de développement varient dans le temps, la nécessité de réorganiser les fenêtres d'édition à onglets se fera jour plus ou moins souvent. &tdevelop; s'en charge très aisément.</para> +</formalpara> +<para +>Cliquez simplement sur l'onglet que vous souhaitez déplacer avec le &BCS; et déplacez la souris à une courte distance. Le curseur se changera en un motif en croix fléchée. Vous pouvez maintenant faire glisser cet onglet en maintenant enfoncé le &BCS; jusqu'à ce qu'il s'insère à l'endroit où vous voulez qu'il soit.</para> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-split"> +<title +>Visualiser plusieurs fichiers simultanément</title> + +<para +>Au premier affichage, il y a toujours tout au plus une seule fenêtre d'édition ouverte pour travailler sur un fichier source. Bien que vous puissiez rapidement changer de fenêtres à onglets, il y a des fois où vous serez amené à avoir plusieurs fichiers ouverts à la fois, &pex; à des fins de référence ou pour mieux maîtriser des tâches complexes. Pour y parvenir, &tdevelop; offre un moyen de scinder la zone d'espace de travail en différentes sections visibles simultanément, qui peuvent chacune contenir une série de fenêtres à onglets.</para> + +<para +>Il y a deux commandes de division que vous pouvez atteindre l'une et l'autre via le menu <guimenu +>Fenêtre</guimenu +> ou un clic avec le &BDS; soit dans une fenêtre à onglets soit sur l'onglet de la fenêtre elle-même. Nous allons illustrer ce comportement de division à nouveau avec notre exemple de projet « Bonjour ».</para> + +<para +>Supposons qu'il y ait deux fichiers source ouverts sur la barre d'onglets, <filename +>bonjour.cpp</filename +> et <filename +>bonjour.h</filename +>. À présent, en travaillant sur le source <filename +>bonjour.cpp</filename +>, comme vous devez souvent vous référer aux déclarations dans le fichier d'en-tête <filename +>bonjour.h</filename +>, vous serez amené à garder les deux fichiers ouverts simultanément.</para> + +<para +>Pour ce faire, cliquez avec le &BDS; sur l'onglet, par exemple <filename +>bonjour.h</filename +>. Le menu suivant s'ouvre alors.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-workspace.png" format="PNG"/> +</imageobject> +<caption +><para +>Comment scinder la zone d'espace de travail actuelle en deux parties.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Sélectionnez l'élément <guimenuitem +>Scinder horizontalement</guimenuitem +>. Cette action divisera la zone d'espace de travail actuelle au milieu et déplacera la fenêtre d'édition à onglets contenant le fichier <filename +>bonjour.h</filename +> dans la partie inférieure.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-windows.png"/> +</imageobject> +<caption +><para +>L'espace de travail a été divisé horizontalement.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Notez la ligne de séparateur en pointillés entre les deux fenêtres. Vous pouvez la faire glisser à l'aide de la souris et ajuster la hauteur des fenêtres d'édition selon vos besoins.</para> + +<para +>Il y a plusieurs points à noter.</para> +<itemizedlist> +<listitem> +<para +>Les zones d'espace de travail sont entièrement fonctionnels en elles-mêmes. Cela signifie que de nouvelles fenêtres à onglet s'ouvriront dans l'espace de travail qui contient la fenêtre d'édition actuellement active. Et vous pouvez scinder n'importe quelle sous-zone à nouveau à votre gré, gardant ainsi autant de fenêtres ouvertes simultanément qu'il vous en faut.</para> +</listitem> + +<listitem> +<para +>Toute division déplacera la fenêtre d'édition actuellement active entrera dans la nouvelle sous-zone d'espace de travail, soit vers le bas soit vers la droite. Les autres fenêtres à onglets restent toutes là où elles étaient. Vous ne pouvez pas directement déplacer des fenêtres à onglets entre des zones divisées, à la place vous devez explicitement fermer la fenêtre dans une zone d'espace de travail et la rouvrir dans une autres pour regrouper.</para> +</listitem> + +<listitem> +<para +>De plus, il n'existe pas de moyen direct de fermer une zone divisée à nouveau. Elle se ferme automatiquement, une fois que la dernière fenêtre à onglets se trouvant dedans a été fermée.</para> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-sourceheader"> +<title +>Modifier des fichiers sources et d'en-tête C++ simultanément</title> + +<para +>Il y a une application ingénieuse de la fonctionnalité de division de l'espace de travail mentionnée ci-dessus intégrée à &tdevelop;. Elle permet de garder automatiquement un source <filename +>.cpp</filename +> et son fichier <filename +>.h</filename +> d'accompagnement ouverts côte à côte dans la zone d'espace de travail. Et, optionnellement, elle permet de travailler sur les fichiers de façon synchronisée, de telle sorte que si vous sélectionnez une déclaration dans le fichier d'en-tête, &tdevelop; naviguera jusqu'à la définition respective dans le fichier source et vice versa.</para> + +<para +>Cette fonctionnalité est cependant désactivée par défaut. Si vous voulez l'utilisez dans votre projet, il faut l'activer.</para> + +<para +>Sélectionnez <menuchoice +><guibutton +>Projet</guibutton +> <guimenuitem +>Options du projet</guimenuitem +></menuchoice +>. La boîte de dialogue <guilabel +>Options du projet</guilabel +> apparaît. Dans la barre d'icônes à gauche ici, sélectionnez <guiicon +>Prise en charge du C++</guiicon +> et plus tard l'onglet <guilabel +>Navigation</guilabel +> sur la page de dialogue qui s'affiche sur le côté droit.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-source-header.png" format="PNG"/> +</imageobject> +<caption +><para +>Faire s'afficher les fichiers sources et d'en-tête C++ côte à côte.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cochez à présent la case <guilabel +>Activer la division des fichiers d'en-tête / source</guilabel +>. Cette action activera <guilabel +>Synchronisation automatique</guilabel +> et <guilabel +>Vertical</guilabel +> par défaut. Gardez ces réglages pour l'instant et cliquez sur <guibutton +>OK</guibutton +>.</para> + +<para +>Pour illustrer cette fonctionnalités, fermons maintenant dans notre exemple de projet à la fois les fenêtres d'édition <filename +>bonjour.cpp</filename +> et <filename +>bonjour.h</filename +>, si nécessaire. Sélectionnez ensuite <filename +>bonjour.cpp</filename +> à nouveau à partir du sous-dossier <filename class="directory" +>src</filename +> du projet. La fenêtre d'édition s'ouvrira comme d'habitude. Mais si vous ouvrez à présent le <filename +>bonjour.h</filename +> lui appartenant, &tdevelop; divisera automatiquement l'espace de travail et ouvrira cette fenêtre dédition du fichier d'en-tête juste au-dessous de la fenêtre <filename +>bonjour.cpp</filename +></para> + +<para +>Il y a même plus, comme nous l'avons déjà mentionné. Dans l'éditeur <filename +>bonjour.cpp</filename +>, cherchez &pex; cette ligne de la définition du constructeur :</para> +<programlisting +>Bonjour::Bonjour() +</programlisting> +<para +>et placez le curseur dessus. Puis observez la fenêtre <filename +>bonjour.h</filename +> au-dessous et notez comment &tdevelop; a navigué vers la ligne de déclaration du constructeur par défaut.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-source-header-navigate.png" format="PNG"/> +</imageobject> +<caption +><para +>&tdevelop; a navigué automatiquement vers la déclaration du constructeur.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Cela fonctionne vice versa également. Chaque fois que vous placez le curseur à un endroit quelconque dans une structure (<foreignphrase +>construct</foreignphrase +>) dans une fenêtre d'édition, &tdevelop; naviguera vers une structure correspondante dans l'autre.</para> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-group"> +<title +>Grouper des fichiers sources en sessions de développement</title> + +<para +>Lorsque votre projet grossit et que les tâches de développement deviennent de plus en plus complexes et vous forcent à basculer souvent entre des ensembles de fichiers différents, mais distincts, il est temps d'organiser votre travail de développement en sessions distinctes. La vue des outils <guilabel +>Liste des fichiers</guilabel +> de &tdevelop; vous permet simplement de le faire.</para> + +<para +>En haut de la fenêtre de vue des outils <guilabel +>Liste des fichiers</guilabel +>, il y a une barre d'outils où vous pouvez créer, enregistrer, sélectionner et supprimer de telles sessions. Ou, en alternative, utilisez le sous-menu <menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Affichage des sessions</guimenuitem +></menuchoice +>.</para> + +<para +>Nous illustrerons cette fonction à nouveau avec notre exemple de projet « Bonjour ». Supposons que vous souhaitiez toujours ouvrir les fichiers <filename +>bonjour.cpp</filename +>, <filename +>bonjour.h</filename +> et <filename +>main.cpp</filename +> tous à la fois, quelle que soit la tâche de développement que vous veniez d'effectuer dans le projet. Pour y parvenir, vous devez d'abord créer une nouvelle session de développement nommée, par exemple « sources ».</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="file-list-session-create.png" format="PNG"/> +</imageobject> +<caption +><para +>Utiliser les sessions de développement pour mémoriser des groupes de fichiers.</para +></caption> +</mediaobject> +</screenshot> + +<para +>C'est une approche à étapes multiples comme suit.</para> +<procedure> +<step> +<para +>Créer une nouvelle session</para> +<substeps> +<step> +<para +>Cliquez sur l'icône <guiicon +>Nouvelle session</guiicon +> en haut à gauche dans la fenêtre de vue des outils <guilabel +>Liste des fichiers</guilabel +>.</para> +</step> +<step> +<para +>Une boîte de dialogue apparaît. Dans le champ d'entrée <guilabel +>Saisissez le nom de la session</guilabel +>, donnez à votre nouvelle session un nom, &pex; « sources ».</para> +</step> +<step> +<para +>Fermez la boîte de dialogue avec <guibutton +>OK</guibutton +>. La nouvelle session sera maintenant listée dans la zone de liste déroulante située sur la barre d'outils.</para> +</step> +</substeps> +</step> +<step> +<para +>Cette nouvelle session sera initialement vide. Vous devez la peupler avec les fichiers que que vous voulez garder ici.</para> +<substeps> +<step> +<para +>Ouvrez tous les fichiers que vous voulez groupés dans cette session de développement. Dans notre exemple, nous avons décidé d'y maintenir <filename +>bonjour.cpp</filename +>, <filename +>bonjour.h</filename +> et <filename +>main.cpp</filename +> comme prévu.</para> +</step> +<step> +<para +>Une fois que votre fichier est complet, cliquez sur l'icône <guiicon +>Enregistrer la session</guiicon +> dans la barre d'outils. Ne sautez pas cette étape, &tdevelop; oubliera la liste des fichiers sinon.</para> +</step> +</substeps> +</step> +</procedure> + +<para +>C'est tout. Chaque fois que vous sélectionnez la session <guilabel +>sources</guilabel +> à partir de la zone de liste déroulante <guilabel +>Ouvrir la session</guilabel +>, &tdevelop; ferme toutes les fenêtres d'édition actuellement ouvertes et ouvre celles qui sont mémorisées (<filename +>bonjour.cpp</filename +>, <filename +>bonjour.h</filename +> et <filename +>main.cpp</filename +> dans notre exemple) à la place.</para> + +<para +>Vous pouvez définir autant de sessions que vous le souhaitez dans le contexte de votre projet. Si vous voulez changer le contenu de la session, actualisez simplement la liste des fichiers mémorisés d'un clic sur <guiicon +>Enregistrer la session</guiicon +>. Et si vous souhaitez vous débarrasser d'une session, sélectionnez-la dans la zone de liste déroulante, puis cliquez sur l'icône <guiicon +>Supprimer la session</guiicon +> à droite de la barre d'outils.</para> + +<para +>Il y a encore mieux. Vous pouvez forcer &tdevelop; à ouvrir une session donnée par défaut lorsqu'il charge le projet. Sélectionnez simplement la session dans la zone de liste déroulante sur la page de configuration des options du projet <menuchoice +><guimenu +>Projects</guimenu +> <guimenuitem +>Options du projet</guimenuitem +> <guimenuitem +>Liste des fichiers</guimenuitem +></menuchoice +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="file-list-session-default.png" format="PNG"/> +</imageobject> +<caption +><para +>Laissons le soin à &tdevelop; d'ouvrir une session spécifique lorsque le projet est chargé.</para +></caption> +</mediaobject> +</screenshot> +</sect3> +</sect2> + +<sect2 id="gettingstarted-edit-problems"> +<title +>Garder un Å“il sur les problèmes courants</title> + +<para +>Lorsque vous ouvrez une fenêtre d'édition contenant un fichier source, &tdevelop; analyse la syntaxe de son contenu. Cette fonction permet au <emphasis +>rapporteur de problèmes</emphasis +> intégré d'analyser le texte du source pour chercher des erreurs communes dont il a connaissance. Et il peut alerter l'utilisateur à propos des différents endroits qui ont été marqués en vue d'un traitement spécial</para> + +<para +>Illustrons cette fonction avec notre exemple de projet « Bonjour ».</para> + +<itemizedlist> +<listitem> +<para +>Ouvre une fenêtre d'édition avec le fichier source <filename +>main.cpp</filename +>.</para> +</listitem> + +<listitem> +<para +>Assurez-vous qu'il contienne toujours la ligne suivante quelque part vers la fin :</para> +<programlisting +>/// @todo do something with the command line args here +</programlisting> +<para +>Celle-ci a été insérée par l'&appwizard; lorsque vous avez créé le projet « Bonjour » dans le chapitre <link linkend="gettingstarted-new" +>Démarrer un nouveau projet</link +> ci-dessus.</para> +</listitem> + +<listitem> +<para +>Ouvrez à présent la vue des outils <guilabel +>Problèmes</guilabel +> dans la rangée des onglets en bas. Si tout s'est bien passé, il affiche actuellement ce « À faire » :</para> +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="problem-report-todo.png"/> +</imageobject> +<caption +><para +>&tdevelop; attire l'attention sur une ligne de code source contenant une marque « À faire ».</para +></caption> +</mediaobject> +</screenshot> +</listitem> +</itemizedlist> + +<para +>Le format de la commande <computeroutput +>/// @todo</computeroutput +> pour un traitement spécial par le documenteur de code <application +>Doxygen</application +>, que nous étudierons brièvement dans la section <link linkend="gettingstarted-doc" +>Documentation</link +> ci-dessous. Il n'est pas obligatoire d'utiliser ce format, les marques de commentaires les plus courantes <computeroutput +>TODO</computeroutput +> et <computeroutput +>FIXME</computeroutput +> seront reconnues également.</para> + +<para +>Si vous insérez &pex; les lignes de commentaires <computeroutput +>TODO</computeroutput +> et <computeroutput +>FIXME</computeroutput +> suivantes dans notre exemple de fichier <filename +>bonjour.cpp</filename +></para> +<programlisting +>Bonjour::Bonjour() + : KMainWindow( 0, "Bonjour" ) +{ + // set the shell's ui resource file + // TODO check the user interface + setXMLFile("bonjour.rc"); + + // FIXME change to a better suited greeting + new QLabel( "Bonjour tout le monde", this, "bonjour label" ); +} +</programlisting> +<para +>vous les trouverez listés dans la vue des outils <guilabel +>Problèmes</guilabel +> également :</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="problem-report-marks.png" format="PNG"/> +</imageobject> +<caption +><para +>Le rapporteur de problèmes listant les lignes qui requièrent de l'attention dans le fichier en cours d'édition.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Notez que les autres onglets dans la fenêtre de la vue des outils du rapporteur de <guilabel +>problèmes</guilabel +>, spécialement <guilabel +>Corrigez_moi</guilabel +> et <guilabel +>TODO</guilabel +>. Si vous les ouvrez, vous trouverez toutes les lignes marquées <computeroutput +>FIXME</computeroutput +> et <computeroutput +>TODO</computeroutput +> que &tdevelop; a trouvées jusqu'ici dans cette session. Par exemple, les alertes <computeroutput +>TODO</computeroutput +> apparaissent de la manière suivante :</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="problem-report-all-todos.png" format="PNG"/> +</imageobject> +<caption +><para +>Le rapporteur de problèmes a collecté les alertes <computeroutput +>TODO</computeroutput +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>L'onglet <guilabel +>Erreurs</guilabel +> ne listera cependant pas chaque erreur de codage que vous faites. Ce sera le travail d'autres outils dans le processus de construction &pex;. Mais vous trouverez ici des alertes de certaines erreurs de programmation communes qui passeraient volontiers inaperçues et seraient probablement détectées avec difficulté pendant une session de débogage complexe.</para> + +<para +>Comme vous constaterez que la fonction de rapporteur de problèmes de &tdevelop; est un outil très utile, vérifiez la vue des outils <guilabel +>Problèmes</guilabel +> régulièrement dans le processus de développement.</para> +</sect2> +</sect1> + +<sect1 id="gettingstarted-compile"> +<title +>Comment compiler un projet</title> + +<para +>Compiler un projet dans &tdevelop; requiert plusieurs étapes de configuration puis la construction de l'application. Toutes sont disponibles via le menu <guimenu +>Construire</guimenu +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-menu.png" format="PNG"/> +</imageobject> +<caption +><para +>Construire un projet requiert plusieurs étapes.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Nous nous intéressons à présent à la section supérieure uniquement de ce menu. Les entrées ici sont triées dans l'ordre de leur importance. Ainsi, la commande le plus souvent nécessaire est en haut, l'élément <guimenuitem +>Construire le projet</guimenuitem +>, qui amènera tout le projet à être initialisé, compilé et lié selon les besoins. D'autres éléments sont là pour compiler les portions du projet sélectionné ou un seul projet seulement, pour effectuer plusieurs séquences d'initialisation ou pour installer les exécutables de l'application achevés.</para> + +<para +>Pour l'instant, concentrons-nous sur plusieurs fonctions que fournit &tdevelop; pour la configuration du projet, l'initialisation, la construction et l'exécution d'une application. En général, ceci comprend :</para> + +<simplelist> +<member +><link linkend="gettingstarted-compile-basic" +>D'étudier brièvement le cyle de construction de base.</link +></member> +<member +><link linkend="gettingstarted-compile-setup" +>D'étudier certains moyens pour configurer un projet.</link +></member> +</simplelist> + +<sect2 id="gettingstarted-compile-basic"> +<title +>Le cycle de construction de base</title> + +<para +>Dès l'instant où vous avez créé un nouveau projet, vous êtes généralement amené à vérifier si tout s'est bien passé jusqu'ici. Ceci impliques une première construction et un lancement test de l'application que nous allons effectuer maintenant. Afin de compiler initialement un projet, il y a plusieurs étapes à effectuer, que nous allons rapidement examiner.</para> +<simplelist> +<member +><link linkend="gettingstarted-compile-basic-init" +>Comment initialiser le projet pour une première construction.</link +></member> +<member +><link linkend="gettingstarted-compile-basic-config" +>Comment effectuer la configuration initiale.</link +></member> +<member +><link linkend="gettingstarted-compile-basic-build" +>Comment construire le projet.</link +></member> +<member +><link linkend="gettingstarted-compile-basic-run" +>Comment lancer l'application depuis &tdevelop;.</link +></member> +</simplelist> + +<note> +<para +>Cette étude implique que votre projet soit basé sur la suite Autotools de &GNU; qui a activé l'outil &automanag; dans &tdevelop; comme le fait notre exemple de projet « Bonjour ». Si vous avez créé un autre projet type, &pex; pour le gestionnaire de projet <application +>QMake</application +> basé sur &Qt;, vous disposerez d'autres fonctions dans les menus ou peut-être aucune d'entre elles. Vous devrez consulter la documentation du fournisseur respectif sur la gestion des projets et la construction des applications dans ces cas-là .</para> +</note> + +<sect3 id="gettingstarted-compile-basic-init"> +<title +>Initilaiser le projet pour la construction</title> + +<para +>Lorsque l'&appwizard; a créée notre exemple de projet « Bonjour », il l'a laissé dans une sorte d'état brut, « vierge ». La chaîne autotools de &GNU; impose plusieurs étapes d'initialisation à effectuer avant que l'application puisse être réellement compilé et lié. Si vous essayez de construire un projet dans un état aussi brut, &pex; en sélectionnant le menu <menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Construire le projet</guimenuitem +></menuchoice +> ou en appyant sur la touche de fonction <keycap +>F8</keycap +>, vous obtiendrez la mise en garde suivante.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="raw-project-warning.png" format="PNG"/> +</imageobject> +<caption +><para +>Essayer de construire un projet basé sur « automake » brut.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Vous pouvez cliquer sur le bouton <guibutton +>Les exécuter</guibutton +>, auquel cas &tdevelop; essaiera de lancer automatiquement toutes les étapes requises avant de compiler et lier l'application. Mais comme nous étudierons ces étapes initiales dans l'ordre, annulez la boîte de dialogue en cliquant sur <guibutton +>Ne pas exécuter</guibutton +>. </para> + +<para +>Comme déjà mentionné, la compilation et la liaison de l'application est effectuée via le menu <guimenu +>Construire</guimenu +>. Appelez-le et sélectionnez <guimenuitem +>Exécuter « automake » et ses amis</guimenuitem +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-menu-automake.png" format="PNG"/> +</imageobject> +<caption +><para +>Lancer l'exécution de l'initialisation de base.</para +></caption> +</mediaobject> +</screenshot> + +<para +>&tdevelop; va maintenant ouvrir la fenêtre de la vue des outils <guilabel +>Messages</guilabel +> en bas et de lister une série de messages produits par plusieurs outils « make ». Si tout s'est bien passé, la dernière ligne lira <quote +><computeroutput +>*** Success ***</computeroutput +></quote +>.</para> + +<para +>Si vous remontez, vous trouverez la ligne de commande que &tdevelop; a émis pour appeler les outils au-dessous de la surface :</para> + +<programlisting +>cd '/home/devel/projects/bonjour' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -f Makefile.cvs +</programlisting> + +<para +>Celle-ci indique essentiellement que &tdevelop; a d'abord basculé vers le dossier racine de notre exemple de projet. Puis il a configuré un environnement dédié, recommandant le système « make » des révisions d'outils <application +>autoconf</application +> et <application +>automake</application +> utilisées pour cette initialisation. Et finalement, il a conseillé l'outil « make » (<application +>gmake</application +> de &GNU; dans ce cas) pour traiter le fichier « make » <filename +>Makefile.cvs</filename +>.</para> + +<para +>Ce fichier « make » a été automatiquement configuré lorsque vous avez créé le projet « Bonjour ». Il contient toutes les commandes nécessaiires pour initialiser correctement le projet, ainsi l'application résultante s'exécutera sous &kde;. En particulier, sera créé le fichier de script <filename +>configure</filename +> nécessaire pour exécuter la prochaine étape de configuration.</para> +</sect3> + +<sect3 id="gettingstarted-compile-basic-config"> +<title +>Configuration initiale de « Bonjour »</title> + +<para +>Configurer signifie ajuster le processus de construction aux particularités du matériel et des logiciels de votre système. C'est une exigence fondamentale dans les processus de construction basés sur le schéma de la suite « Autotools » de &GNU; comme vous le savez probablement.</para> + +<para +>Vous pouvez commander une séquence de configuration une fois que l'initialisation de base d'« automake » s'est terminée avec succès du fait que, seul après cette exécution initiale les fichiers <filename +>configure</filename +> nécessaires seront disponibles. Ceci fait, sélectionnez l'élément de menu <menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Exécuter le script « configure »</guimenuitem +></menuchoice +> pour lancer une séquence de configuration.</para> + +<para +>&tdevelop; a ouvert la fenêtre de la vue des outils <guilabel +>Messages</guilabel +> à nouveau si nécessaire et listé les messages de l'exécution de « configure ». Si tout s'est bien passé, les messages de fin seront « <computeroutput +>Good - your configure finished. Start make now</computeroutput +> » (qui seront émis par « configure ») suivis du message « <computeroutput +>*** Success ***</computeroutput +> » de &tdevelop;.</para> + +<para id="gettingstarted-compile-basic-config-cmd" +>Au début de la fenêtre <guilabel +>Messages</guilabel +>, vous trouverez à nouveau la ligne de commande que &tdevelop; a employé pour lancer l'exécution de cette configuration :</para> + +<programlisting +>mkdir '/home/devel/projects/bonjour/debug' && \ +cd '/home/devel/projects/bonjour/debug' && \ +CXXFLAGS="-O0 -g3" "/home/devel/projects/bonjour/configure" --enable-debug=full +</programlisting> + +<para +>Vous pouvez indiquer plusieurs détails intéressants à partir de ces commandes.</para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> +<entry> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-debug-tree.png"/> +</imageobject> +</mediaobject> +</entry> +<entry> +<itemizedlist> +<listitem> +<para +>D'abord, &tdevelop; utilise un sous-dossier dédié dans l'arborscences des dossiers du projet pour le processus de construction. Ce dossier de construction <filename class="directory" +>debug</filename +> (affiché à gauche) reflète la structure de base du projet et contient certains ensembles de fichiers relatifs à la construction, tels que plusieurs fichiers basés sur <filename +>configure</filename +> et, en outre, un <filename +>Makefile</filename +> dans chaque sous-dossier.</para> +</listitem> +<listitem> +<para +>Dans la section <link linkend="gettingstarted-compile-setup" +>Configurer le projet</link +> brièvement décrite ci-dessous, nous jetterons un bref coup d'Å“il aux motivations expliquant pourquoi &tdevelop; utilise des dossiers de construction séparés dans des cas comme celui-ci. Pour le moment, il suffit de savoir que &tdevelop; a créé ce dossier <filename class="directory" +>debug</filename +> — si nécessaire — avant l'appel de « configure » et que le script <filename +>configure</filename +> a créé la sous-structure et tous les <filename +>Makefiles</filename +> dedans.</para> +</listitem> +<listitem> +<para +>Ensuite, depuis le dossier de construction <filename class="directory" +>debug</filename +>, &tdevelop; a appelé le script <filename +>configure</filename +> dans le dosser racine de notre projet en utilisant un environnement dédié, où les drapeaux <computeroutput +>CXXFLAGS="-O0 -g3"</computeroutput +> signaleront plus tard au compilateur &gcc; qu'il ne devra pas optimiser les binaires résultant ni inclure les informations de débogage complètes avec ceux-ci.</para> +</listitem> +<listitem> +<para +>Pour finir, le script <filename +>configure</filename +> a été appelé avec l'option <computeroutput +>--enable-debug=full</computeroutput +> qui lui donne pour instruction de créer chaque <filename +>Makefile</filename +> pour que la compilation et la liaison ultérieures aient toutes les informations de débogage nécessaires intégrées et utilisables.</para> +</listitem> +</itemizedlist> +</entry> +</row +></tbody +></tgroup> +</informaltable> + +<para +>Tous ces réglages sont configurables pour chaque projet. Vous en saurez plus à ce sujet dans le chapitre <link linkend="project-management" +>Gestions de projets</link +>.</para> +</sect3> + +<sect3 id="gettingstarted-compile-basic-build"> +<title +>Construire le projet</title> + +<para +>Une fois arrivé à ce stade, vous serez prêt à réelllement construire, &cad; compiler et lier l'application. Si l'on observe le menu <guimenu +>Construire</guimenu +>, il y a trois options de compilations de ce types dans lesquelles choisir.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-commands.png" format="PNG"/> +</imageobject> +<caption +><para +>Commandes de &tdevelop; pour construire des binaires (exécutables).</para +></caption> +</mediaobject> +</screenshot> + +<para +>De bas en haut, ce sont :</para> +<itemizedlist> +<listitem> +<para +><guimenuitem +>Compiler le fichier</guimenuitem +> — Cette option compilera le fichier source dans la fenêtre d'édition actuellement ouverte, Utilisée la plupart du temps pour des contrôles d'erreur rapides.</para> +</listitem> +<listitem> +<para +><guimenuitem +>Construire la cible active</guimenuitem +> — Cette option est principalement utilisée en liaison avec le <link linkend="gettingstarted-extend-automake" +>Gestionnaire « automake »</link +> que nous verrons brièvement ci-dessous.</para> +</listitem> +<listitem> +<para +><guimenuitem +>Construire le projet</guimenuitem +> — Maintenant, c'est celle à laquelle nous nous intéressons actuellement. Elle itère sur l'ensemble du projet, compilant et liant tous les fichiers autant que nécessaire.</para> +</listitem> +</itemizedlist> + +<para +>Il pourrait être intéressant d'observer ce qui se passe dans le dossier <filename class="directory" +>Déboguer</filename +> créé lors du lancement précédent de <filename +>configure</filename +>. Donc gardez-le ouvert avec tous les sous-dossiers dépliés exactement comme représenté ci-dessus. Puis sélectionnez <menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Construire le projet</guimenuitem +></menuchoice +> (ou appuyez sur la touche <keycap +>F8</keycap +>) pour lancer la séquence de construction. Comme précédemment, la fenêtre de la vue des outils <guilabel +>Messages</guilabel +> s'ouvrira en bas et listera le résultat de l'exécution de cette construction. Et de plus, certains fichiers apparaîtront sur le sous-arbre <filename class="directory" +>Déboguer</filename +>.</para> + +<para id="gettingstarted-compile-basic-build-cmd" +>Comme il n'y a pas beaucoup de fichiers sources dans n otre exemple de projet « Bonjour », la fenêtre <guilabel +>Messages</guilabel +> ne contiendra que quelques lignes. Au début de celles-ci là aussi, cherchez la ligne de commande que &tdevelop; a émise sur le terminal sous-jacent.</para> + +<programlisting +>cd '/home/devel/projects/bonjour/debug' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k +</programlisting> + +<para +>Sans grande surprise, &tdevelop; a basculé vers la racine du sous-arbre <filename class="directory" +>Déboguer</filename +> afin d'exécuter le <filename +>Makefile</filename +> situé ici. Un sous-environnement dédié a été configuré à nouveau comme avant dans l'<link linkend="gettingstarted-compile-basic-init" +>étape d'initialisation</link +> dans laquelle ensuite l'outil <application +>gmake</application +> a été appelé.</para> + +<para +>Notez que l'option <computeroutput +>-k</computeroutput +> dans l'appel <application +>gmake</application +>. Elle force le processus de construction à continuer jusqu'à sa fin, même si des erreurs se produisent. Ceci est judicieux puisque &tdevelop; listera tous les messages d'erreur dans la fenêtre <guilabel +>Messages</guilabel +>. S'il y en a, utilisez les avantages d'un &EDI;: Cliquez juste sur le message d'erreur dans la fenêtre <guilabel +>Messages</guilabel +> et &tdevelop; vous amènera exactement à la position où l'erreur s'est produite dans le fichier source.</para> + +<para +>Et que s'est-il passé à l'intérieur du sous-arbre <filename class="directory" +>Déboguer</filename +> ? Pas grand chose. Quelques lignes se sont affichées sur les branches <filename class="directory" +>doc/en</filename +> et <filename class="directory" +>src</filename +>, plus particulièrement le fichier <filename +>bonjour</filename +> dans <filename class="directory" +>/home/devel/projects/bonjour/debug/src/</filename +>. Celui-ci, finalement, est l'exécutable de l'application que nous cherchions. Tout ce qui reste à faire dans notre contrôle initial de projet est d'exécuter ce <filename +>bonjour</filename +>.</para> +</sect3> + +<sect3 id="gettingstarted-compile-basic-run"> +<title +>Exécuter l'application</title> + +<para +>Il n'y a pas d'étapes supplémentaires impliquées pour lancer cette nouvelle application « Bonjour ». Sélectionnez <menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Exécuter le programme</guimenuitem +></menuchoice +>, appuyez sur <keycombo +><keycap +>Maj</keycap +> <keycap +>F9</keycap +></keycombo +> ou utilisez le bouton <guibutton +>Exécuter le programme</guibutton +> sur la <guilabel +>barre d'outils de construction</guilabel +> affichée ci-dessous.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="run-button.png"/> +</imageobject> +<caption +><para +>Exécuter une application à partir de la <guilabel +>barre d'outils de construction</guilabel +>.</para> +</caption> +</mediaobject> +</screenshot> + +<para +>C'est tout. &tdevelop; va maintenant démarrer la nouvelle application dans la fenêtre de terminal dédié qui s'ouvre en tant que vue des outils <guilabel +>Application</guilabel +> en bas. Ici; la commande &tdevelop; émise pour exécuter le programme sera affichée sur la ligne du haut :</para> + +<programlisting +>./bonjour +</programlisting> + +<para +>montrant que l'&EDI; a une notion à propos de l'endroit où réside l'exécutable qu'il lancera. Cette notion peut être largement configurée. Vous en saurez plus à ce sujet dans le chapitre <link linkend="project-management" +>Gestion des projets</link +>.</para> + +<para +>La ligne <computeroutput +>./bonjour</computeroutput +> sera très probablement suivie d'un message d'avertissment. Ignorez-le pour le moment. Il n'empêche pas notre application <application +>Bonjour</application +> de tourner.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="hello-world-app.png" format="PNG"/> +</imageobject> +<caption> +<para +>Notre application <application +>Bonjour</application +> initiale.</para> +</caption> +</mediaobject> +</screenshot> + +<para +>Fermez la fenêtre de l'application <application +>Bonjour</application +> comme d'habitude. Si aucune erreur ne s'est produite, &tdevelop; signalera ceci sous la forme « <computeroutput +>*** Exited normally ***</computeroutput +> » dans la fenêtre de la vue des outils <guilabel +>Application</guilabel +>.</para> +</sect3> +</sect2> + +<sect2 id="gettingstarted-compile-setup"> +<title +>Configurer le projet</title> + +<para +>Dans &tdevelop; il y a de nombreux moyens permettant de gérer votre projet. Ce comportement est configurable pour chaque projet et du plus grand intérêt pour le développeur avancé. Néanmoins, il y a quelques paramètres propres au projet que vous devriez connaître dès le départ. </para> + +<simplelist> +<member +><link linkend="gettingstarted-compile-setup-build" +>Quelle est l'utilité des configurations de construction ?</link +></member> + +<member +><link linkend="gettingstarted-compile-setup-config" +>Où définir le comportement du script <filename +>configure</filename +>.</link +></member> + +<member +><link linkend="gettingstarted-compile-setup-make" +>Quelques considérations sur la manière dont <application +>make</application +> devra s'exécuter.</link +></member> + +<member +><link linkend="gettingstarted-compile-setup-run" +>Où devra être l'exécutable et comment devra-t-il être appelé ?</link +></member> +</simplelist> + +<sect3 id="gettingstarted-compile-setup-build"> +<title +>Configurations de construction</title> + +<para +>Lorsque nous avons lancé une première exécution du script <filename +>configure</filename +> dans la section <link linkend="gettingstarted-compile-basic-config" +>Configuration initiale de « Bonjour »</link +> ci-dessus, nous avons noté que &tdevelop; a configuré un sous-dossier <filename class="directory" +>debug</filename +> dédié dans ce but. Dans cette section, nous verrons brièvement certaines conséquences de cette fonctionnalité.</para> + +<para +>Avant toute chose, &tdevelop; n'emploie pas nécessairement les sous-dossiers de construction dédiés séparément du source. Les préparations pour utiliser des configurations de constructions dédiées sont effectuées à l'aide de modèles sont l'&appwizard; se sert lorsqu'on crée un nouveau projet.</para> + +<para +>Pour découvrie quelles sont les configurations de construction disponibles, jetez un coup d'Å“il au menu <menuchoice +><guimenu +>Projet</guimenu +> <guisubmenu +>Configuration de la construction</guisubmenu +></menuchoice +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-configurations.png" format="PNG"/> +</imageobject> +<caption +><para +>Il existe diverses configurations de construction disponibles pour ce projet.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Dans ce cas, comme notre exemple de projet « Bonjour », il y a trois configurations de construction différentes disponibles. Dans d'autres cas, il peut — initialement — y avoir uniquement une seule configuration de construction de ce type, à savoir <guimenuitem +>par défaut</guimenuitem +>.</para> + +<para +>La configuration de construction actuellement utilisée porte une coche à sa gauche. Afin de basculer vers une autre configuration de construction, sélectionnez simplement son élément de menu.</para> + +<para +>Maintenant, jetons un bref coup d'Å“il à ce que fournissent ces configurations de construction.</para> + +<variablelist id="gettingstarted-compile-setup-build-configs"> +<varlistentry> +<term +><guimenuitem +>débogage</guimenuitem +></term> +<listitem> +<para +>Vous devriez utiliser cette configuration à titre de configuration de construction standard pendant le processus de développement. La construction se produit séparément à partit des dossiers sources dans le sous-dossier <filename class="directory" +>debug</filename +> dédié, &cad; que tous les fichier d'objet, auxiliaires et exécutables seront placés dans les sous-dossiers ici au lieu de leurs contre-parties dans la racine du projet. Le script <filename +>configure</filename +> se verra attribuer l'option <computeroutput +>--enable-debug=full</computeroutput +> et le <computeroutput +>CXXFLAGS="-O0 -g3"</computeroutput +> signalera au compilateur &gcc; de ne pas optimiser le code et d'insérer les informations exhaustives de débogage dans les binaires résultants.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>optimisée</guimenuitem +></term> +<listitem> +<para +>Cette configuration est utilisée pour construire une application finale en C++. La construction se produit séparément des dossiers sources dans le sous-dossier <filename class="directory" +>optimisée</filename +> dédié. Aucun argument spécifique au script <filename +>configure</filename +> ne sera présélectionné, néanmoins le <computeroutput +>CXXFLAGS="-O2 -g0"</computeroutput +> signalera au compilateur &gcc; compiler d'optimiser le code et de ne pas insérer d'informations de débogage dans les binaires résultants.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>par défaut</guimenuitem +></term> +<listitem> +<para +>Le terme « par défaut » désigne la configuration standard lorsque vous construisez une application à partir de la console en utilisant &pex; les outils de construction orientés ligne de commande <application +>configure</application +> et <application +>make</application +>/<application +>gmake</application +> de &GNU;. Aucun autre dossier de construction dédié que <guimenuitem +>débogage</guimenuitem +> ou <guimenuitem +>optimisée</guimenuitem +> ne sera utilisé. L'application sera par défaut construite dans les dossiers sources à la place. Il n'y a pas de commutateurs de configuration spéciaux prédéfinis. La construction et le lancement de l'application utiliseront les réglages par défaut des outils sous-jacents (&pex; &gcc;, etc.).</para> + +<warning> +<para +>Réfléchissez bien avant de vous décider à utiliser l'environnement de construction <guimenuitem +> par défaut</guimenuitem +> !</para> + +<para +>Il ne peut pas être employé en parallèle avec les configurations <guimenuitem +>débogage</guimenuitem +> ou <guimenuitem +>optimisée</guimenuitem +>. <emphasis +>Toute opération de construction utilisant <guimenuitem +>par défaut</guimenuitem +> rendra les deux autres environnements de construction inutilisables.</emphasis +> Ce comportement est causé par certaines particularités du processus de construction <filename +>Makefile</filename +> utilisant le mécanisme <application +>automake</application +>/<application +>autoconf</application +>, dont il n'est pas facile de venir à bout.</para> +</warning> +</listitem> +</varlistentry> +</variablelist> + +<para +>À présent, pourquoi voudrait-on utiliser différentes configurations de construction, lorsqu'elles s'avèrent même ne pas être compatibles entre elles ? La réponse est — cela simplifie les cycles édition-compilation-débogage. Les instructions de débogage supplémentaires insérées dans les binaires ainsi que tous ces changements de structure subtiles apportés au code du programme pendant les optimisations affecteront le comportement au moment de l'exécution de l'application résultante. ainsi dans de nombreux cas, vous pouvez être amené à tester si elle se comporte encore correctement dans des conditions plus adaptées.</para> + +<para +>C'est là où les configurations de construction de &tdevelop; interviennent. Du fait que les fichiers objet et exécutables de construction de chaque dossier de construction dédié et es commandes sont gardées séparément les uns des autres, seuls les changements du source doivent être gérés lorsque vous basculez entre ces configurations de construction.</para> + +<para +>Ainsi, au lieu de nettoyer et de recompiler tout de zéro avec d'autres options, il vous suffit de basculer depuis la configuration de construction <guimenuitem +>débogage</guimenuitem +> vers <guimenuitem +>optimisée</guimenuitem +>, faire se compiler les changements du source, puis tester à nouveau l'application dans ces circonstances. Si quoi que ce soit d'inapproprié apparaît, revenez simplement en arrière vers <guimenuitem +>débogage</guimenuitem +> et continuez immédiatement votre travail à cet endroit.</para> + +<para +>Une dernière remarque — de nombreux paramètres de configuration de construction sont configurables. Vous pouvez même définir vos propres configurations de construction si votre processus de développement en requiert. Nous examinerons brièvement ces possibilités dans la section suivante.</para> +</sect3> + +<sect3 id="gettingstarted-compile-setup-config"> +<title +>Options de configuration d'un projet</title> + +<para +>Configurer l'application correctement est vital dans la chaîne de construction de la suite « autotools » de &GNU;. Cette opération est habituellement guidée par les définitions des options dans le script <filename +>configure</filename +> et/ou les réglages des drapeaux spécifiques dans l'environnement avant d'exécuter <filename +>configure</filename +> comme &pex; le <computeroutput +>CXXFLAGS</computeroutput +> dans nos exposés précédents.</para> + +<para +>Vous pouvez définir la plupart des options de configuration pour un projet donné depuis l'interface graphique de &tdevelop;. Sélectionnez <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet</guimenuitem +></menuchoice +> puis depuis la barre d'icônes sur la gauche de la boîte de dialogue de l'icône <guiicon +>Options de « configure »</guiicon +>. La boîte de dialogue <guilabel +>Options de « configure »</guilabel +> comprenant plusieurs fenêtre à onglets s'affichera sur le côté droit.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-configure.png" format="PNG"/> +</imageobject> +<caption +><para +>La plupart des options de « configure » peuvent être définies ici.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Comme vous le voyez, il y a beaucoup d'options susceptibles d'être configurées dans cette boîte de dialogue. Pour l'instant, nous n'en examinerons que quelques-unes en ce qui concerne notre exemple de projet « Bonjour ». Pour des instructions détaillées, consultez le chapitre <link linkend="projects-configure" +>Configurer des projets</link +>. Si vous voulez en savoir plus sur la signification des divers drapeaux qui peuvent être définis, consultez <command +>info make</command +> depuis la console (ou <command +>info:make</command +> depuis &konqueror;) et là , la section <menuchoice +><guimenu +>Implicit Rules</guimenu +> <guimenuitem +>Implicit Variables</guimenuitem +></menuchoice +>.</para> + +<para +>Il y a plusieurs fenêtres de configuration de boîtes de dialogue à onglets dont la première, <guilabel +>Général</guilabel +> se rapporte aux paramètres d'utilisation courante, alors que les autres sont plutôt propres au compilateur. Dans tous les cas, cependant, le contenu réel de ces boîtes de dialogue sera administré par la configuration de construction donnée.</para> + +<para +>Sélectionnez la configuration de construction dont les paramètres de configuration doivent être définis depuis la zone de liste modifiable <guilabel +>Configuration</guilabel +> en haut de la boîte de dialogue <guilabel +>Options de « configure »</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-buildconfig.png" format="PNG"/> +</imageobject> +<caption +><para +>Sélectionnez la configuration de construction dont les les paramètres sont à définir.</para +></caption> +</mediaobject> +</screenshot> + +<para +>À présent, sélectionnez une configuration de ocnstruction à partir de cette zone de liste modifiable et notez comment le contenu, &pex; des zones de texte <guilabel +>Arguments du script « configure »</guilabel +> et <guilabel +>Dossier de construction</guilabel +> changent en fonction des paramètres que nous avons mentionnés dans la <link linkend="gettingstarted-compile-setup-build-configs" +>liste des confogurations de construction</link +> ci-dessus.</para> + +<sect4 id="gettingstarted-compile-setup-config-general"> +<title +>Paramètres généraux de de la configuration</title> + +<para +>Sur la page de dialogue <guilabel +>Général</guilabel +>, on peut définir ces options de configuration :</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Arguments du script « configure »</title> +<para +>Ce sont les options que &tdevelop; affecte à l'appel du script <filename +>configure</filename +> dans le processus de construction. Voir l'<link linkend="gettingstarted-compile-basic-config-cmd" +>exemple</link +> dans la section « Configuration initiale de « Bonjour » » ci-dessus.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Dossier de construction</title> +<para +>C'est le sous-dossier dans la racine du projet actuel, où &tdevelop; placera tous les fichiers créés au cours du processus de construction. Dans l'idéal, celui-ci devra correspondre au nom de la configuration de construction en cours d'utilisation, mais vous êtes libre d'employer le nom de votre choix, pourvu qu'il soit différent de tout autre dossier de configuration de construction.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Dossier racine des sources</title> +<para +>Vous n'en pas souvent besoin. Ce paramètre est réglé par défaut sur le dossier racine du projet et ne doit être redéfini que si les sources de votre projet sont situées dans un autre endroit.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Drapeaux du préprocesseur C/C++ (CPPFLAGS)</title> +<para +>Placez les instructions spécifiques pour le préprocesseur ici. &tdevelop; utilisera ce paramètres pour configurer un environnement temporaire avant d'appeler l'outil de construction proprement dit. Là aussi, consultez l'<link linkend="gettingstarted-compile-basic-config-cmd" +>exemple</link +> dans la section « Configuration initiale de « Bonjour » » ci-dessus pour savoir comment faire.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Drapeaux de l'éditeur de liens (LDFLAGS)</title> +<para +>Ce sont des informations supplémentaires pour l'outil d'édition de liens <application +>ld</application +> où il devra rechercher les bibliothèques additionnelles. Il est utilisé pour construire l'environnement de construction temporaire également.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Variables d'environnement</title> +<para +>Ici vous pouvez décider de configurer des variables supplémentaires dans l'environnement de construction temporaire que &tdevelop; installera avant d'appeler l'outil de construction respectif. Là encore, vous devez définir ces variables d'environnement pour chaque configuration de construction là où elles doivent être employées.</para> +</formalpara> +</listitem> +</itemizedlist> +</sect4> + +<sect4 id="gettingstarted-compile-setup-config-spec"> +<title +>Paramètres propres au compilateur</title> + +<para +>Les autres onglets sur la page de dialogue <guilabel +>Options du script « configure »</guilabel +> sont des réglages propres au compilateur. Comme ils sont structurés de la même manière, il suffit de jeter un petit coup d'd'Å“il à la page <guilabel +>C++</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-cpp.png" format="PNG"/> +</imageobject> +<caption +><para +>Sélectionnez le compilateur et l'environnement de travail que &tdevelop; utilisera ici.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Voici ce que vous pouvez configurer à partir d'ici :</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Compilateur C++</title> +<para +>Sélectionnez le compilateur C++ que &tdevelop; devra utiliser régulièrement à partir de cette zone de liste modifiable. Elle ne liste toutefois que les compilateurs dont &tdevelop; a réellement connaissance.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Commande système du compilateur (CXX)</title> +<para +>Seulement pour les experts. Ce paramètre n'est nécessaire que si le compilateur C++ n'est pas standard. Placez le nom par lequel il est appelé ici.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Drapeaux du compilateur (CXXFLAGS)</title> +<para +>Ici vous pouvez saisir n'importe quelle option supplémentaire que &tdevelop; passera (via le <filename +>Makefile</filename +>) au compilateur. Certaines valeurs des option seront prédéfinies en fonction de la configuration de construction sélectionnée dans la zone de liste modifiable <guilabel +>Configuration</guilabel +>.</para> +</formalpara> + +<para +>Notez que beaucoup d'options communes du compilateur peuvent être sélectionnés à partir d'une boîte de dialogue qui s'ouvre lorsque vous cliquez sur le bouton <guibutton +>...</guibutton +> à droite de la zone de texte.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-cppoptions.png" format="PNG"/> +</imageobject> +<caption +><para +>Utilisez cette boîte de dialogue pour définir le comportement du compilateur C++ de &GNU;.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Nous avons délibérément choisi l'onglet <guilabel +>Optimisation</guilabel +> ici. Notez comment l'option <guilabel +>Aucune optimisation</guilabel +> a été présélectionnée (en fonction de l'option <computeroutput +>-O0</computeroutput +> prédéfinie dans la configuration de construction <computeroutput +>débogage</computeroutput +>).</para> + +<para +>Malheureusement, vous ne pouvez pas actuellement sélectionner toutes les options à partir de cette boîte de dialogue. L'option <computeroutput +>-g3</computeroutput +>, &pex;, utilisée par la configuration de construction <computeroutput +>debug</computeroutput +> devra être changée à la main si jamais elle était nécessaire.</para> +</listitem> +</itemizedlist> +</sect4> +</sect3> + +<sect3 id="gettingstarted-compile-setup-make"> +<title +>Comment « make » devra construire le programme</title> + +<para +>Vous pouvez également configurer la manière dont &tdevelop; appellera l'outil <application +>make</application +> dans la construction du projet. Sélectionnez <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet</guimenuitem +></menuchoice +> puis l'icône <guiicon +>Options de « make »</guiicon +> sur le côté gauche de la fenêtre de dialogue. La page de dialogue <guilabel +>Options de « make »</guilabel +> sera alors affichée sur la droite.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-make.png" format="PNG"/> +</imageobject> +<caption +><para +>Définissez comment &tdevelop; appellera l'outil <application +>make</application +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Il n'y a pas grand chose à faire ici pour l'instant. Le seul paramètre digne d'intérêt dans la plupart des cas sera le commutateur <guilabel +>Arrêter dès la première erreur</guilabel +>. Vous le trouverez désactivé dans la majorité des projets. Ce comportement correspond à l'option <computeroutput +>-k</computeroutput +> dans l'appel de <application +>gmake</application +> que nous avons trouvé dans la <link linkend="gettingstarted-compile-basic-build-cmd" +>construction initiale</link +> de notre exemple de projet « Bonjour ».</para> + +<para +>Ceci prend tout son sens dans un &EDI; comme &tdevelop; qui journalisera tout message d'erreur pendant la construction. Après le processus de construction, vous pouvez facilement naviguer jusqu'à un message d'erreur quelconque dans la fenêtre de la vue des outils <guilabel +>Messages</guilabel +>. Cliquez sur <menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Erreur suivante</guimenuitem +></menuchoice +> et <menuchoice +><guimenu +>Affichage</guimenu +> <guimenuitem +>Erreur précédente</guimenuitem +></menuchoice +> ou appuyez respectivement sur les touches <keycap +>F4</keycap +> et <keycombo +><keycap +>Maj</keycap +> <keycap +>F4</keycap +></keycombo +> pour cela. &tdevelop; activera automatiquement la fenêtre d'édition du fichier source en question et placera le curseur sur la ligne contenant l'erreur.</para> + +<para +>Si par ailleurs, vous souhaitez plutôt arrêter la construction à chaque fois qu'une erreur se produit, cochez l'option <guilabel +>Arrêter dès la première erreur</guilabel +> dans cette boîte de dialogue. &tdevelop; appellera alors <application +>gmake</application +> sans l'option <computeroutput +>-k</computeroutput +>.</para> +</sect3> + +<sect3 id="gettingstarted-compile-setup-run"> +<title +>Comment lancer l'exécutable</title> + +<para +>Une fois que la construction est achevée, vous pouvez facilement lancer l'application depuis &tdevelop;. Utilisez soit <menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Exécuter le programme</guimenuitem +></menuchoice +>, les touches <keycombo +><keycap +>Maj</keycap +> <keycap +>F9</keycap +></keycombo +>, soit le bouton <guibutton +>Exécuter le programme</guibutton +> dans la <guilabel +>barre d'outils de construction</guilabel +> de &tdevelop;.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="run-button.png" format="PNG"/> +</imageobject> +<caption +><para +>Exécutez le programme à partir d'ici.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Mais où est situé l'exécutable qui devra être lancé ? Comment fait-on pour ajouter des options &tdevelop; à l'appel ? Ou encore, comment puis-je faire s'exécuter l'application dans un terminal indépendant pour en tester le comportement interactif en mode console ?</para> + +<para +>Tous ces aspects peuvent être résolus en configurant certaines options d'exécution orientées projet dans &tdevelop;. Cliquez sur <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet</guimenuitem +></menuchoice +> puis sur l'icône <guiicon +>Options d'exécution</guiicon +> depuis la barre d'icône située sur le côté gauche de la fenêtre de dialogue. La page de dialogue <guilabel +>Options d'exécution</guilabel +> s'affichera à droite.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-run.png" format="PNG"/> +</imageobject> +<caption +><para +>Définissez où et comment votre programme devra être exécuté.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Maintenant, il y a énormément de paramètres à configurer à partir de cette boîte de dialogue. Pour l'essentiel, il existe quatre groupes d'éléments de configuration.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Dossier</title> +<para +>Ce paramètre indique à &tdevelop; où il devra en principe supposer que se trouve l'exécutable à appeler. Vous avez trois possibilités parmi lesquelles choisir.</para> +</formalpara> + +<para +>Notez cependant que seuls les dossiers racine sont définis ici. &tdevelop; cherche habituellement l'exécutable dans un sous-dossier indiqué dans le prochain groupe de configuration.</para> + +<itemizedlist> +<listitem> +<para +>Lancez depuis le dossier dans lequel l'exécutable a été construit la dernière fois. C'est le réglage par défaut. Vous pouvez le conserver pour l'instant.</para> +</listitem> + +<listitem> +<para +>Lancez à partir du dossier de construction en fonction de la <link linkend="gettingstarted-compile-setup-build" +>configuration de construction</link +> actuellement sélectionnée. Le nom de ce dossier a été établi dans la page de dialogue <link linkend="gettingstarted-compile-setup-config-general" +>Configuration générale</link +>.</para> + +<para +>Il s'agit du dossier racine où &tdevelop; trouvera l'exécutable. Il change automatiquement avec la sélection que vous avez effectuée dans le menu <menuchoice +><guimenu +>Projet</guimenu +> <guisubmenu +>Configurations de construction</guisubmenu +></menuchoice +>. Essayez.</para> + +<para +>En dehors de toujours lancer l'exécutable construit le plus récemment selon le réglage ci-dessus, ceci permet de changer de programme à exécuter en sélectionnant simplement une autre configuration de construction à partir du menu <guimenu +>Projet</guimenu +>.</para> +</listitem> + +<listitem> +<para +>Lancez l'exécutable trouvé dans un dossier personnalisé fixe. Là encore, il s'agit de la racine uniquement à partir de laquelle l'exécutable réel doit être trouvé.</para> + +<para +>Utilisez ce paramètre si vous voulez &pex; exécuter le programme réellement installé au lieu de la version située dans les dossiers du projet.</para> +</listitem> +</itemizedlist> +</listitem> + +<listitem> +<formalpara> +<title +>Programme</title> +<para +>Ce paramètre indique à &tdevelop; la position relative et le nom du programme qu'il devra réellement appeler. Celle-ci est relative au dossier racine définie dans le groupe de configuration ci-dessus. En outre, vous pouvez définir tout argument que &tdevelop; passera au programme lorsqu'il est effectivement appelé.</para> +</formalpara> + +<note> +<para +>Si vous laissez la zone de texte <guilabel +>Programme principal</guilabel +> vide, les réglages de la <emphasis +>cible active</emphasis +> du &automanag; seront utilisés. Bien que ce soit un paramètre réservés aux experts, laisser par inadvertance ce champ d'entrée vierge est une source de problème courante. Vérifiez ce réglage s'il apparaît que &tdevelop; n'appelle pas l'exécutable que vous souhaitiez.</para> +</note> +</listitem> + +<listitem> +<formalpara> +<title +>Variables d'environnement</title> +<para +>&tdevelop; configurera un environnement de shell dédié dans lequel exécuter le programme. Définissez toute variable d'environnement supplémentaire dans ce groupe de configuration.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Divers</title> +<para +>Deux cases à cocher supplémentaire sont situées au bas de cette page de dialogue.</para> +</formalpara> + +<itemizedlist> +<listitem> +<para +><guilabel +>Compiler automatiquement avant l'exécution</guilabel +> est bien utile la plupart du temps. &tdevelop; examinera le projet pour vérifier les changements et effectuer les étapes de configuration et de construction nécessaires à votre place chaque fois que vous lui demander de lancer le programme.</para> + +<para +>Décochez cette case si vous voulez exécuter la version du programme antérieure à la dernière modification.</para> +</listitem> + +<listitem> +<para +><guilabel +>Lancer dans un terminal externe</guilabel +> vous intéressera si vous souhaitez tester le comportement des entrées / sorties des programmes non graphiques dans un terminal. Cette case n'étant pas cochée par défaut, &tdevelop; démarre le programme dans une fenêtre qui lui est propre sans les fonctions d'E/S du terminal.</para> +</listitem> +</itemizedlist> +</listitem> +</itemizedlist> +</sect3> +</sect2 +> +</sect1> + +<sect1 id="gettingstarted-extend"> +<title +>Comment étendre un projet — le &automanag;</title> + +<para +>(- à écrire -)</para> + +<sect2 id="gettingstarted-extend-automake"> +<title +>Un bref coup d'Å“il au mécanisme « Automake »</title> + +<para +>(- à écrire -)</para> +</sect2 +> + +<sect2 id="gettingstarted-extend-pics"> +<title +>Comment placer des icônes dans un dossier séparé</title> + +<para +>(- à écrire -)</para> +</sect2 +> + +<sect2 id="gettingstarted-extend-class"> +<title +>Comment ajouter de nouvelles classes</title> + +<para +>(- à écrire -)</para> + +<caution +><para +>Soyez prudent quand vous sélectionnez les noms de fichiers de vos classes. Il est extrêmement difficile de changer par la suite.</para +></caution> +</sect2 +> + +<sect2 id="gettingstarted-extend-subproject"> +<title +>Qu'y a-t-il dans un sous-projet ?</title> + +<para +>(- à écrire -)</para> + +<sect3 id="gettingstarted-extend-subproject-active"> +<title +>Concentrez-vous sur votre travail — la cible active</title> + +<para +>(- à écrire -)</para> +</sect3 +> +</sect2 +> + +<sect2 id="gettingstarted-extend-restructure"> +<title +>Quelques étapes pour restructurer un projet</title> + +<para +>(- à écrire -)</para> +</sect2 +> +</sect1> + + +<sect1 id="gettingstarted-debug"> +<title +>Comment déboguer</title> + +<para +>(- à écrire -)</para> +</sect1 +> + + +<sect1 id="gettingstarted-doc"> +<title +>Une note sur la documentation de votre projet</title> + +<para +>Le projet &kde; utilise <ulink url="http://www.docbook.org/tdg5/en/html/docbook.html" +>docbook</ulink +> pour générer le manuel de votre projet (&cad; le manuel utilisateur). Le manuel utilisateur est disponible via la barre de menus de votre application en cliquant sur <menuchoice +><guimenu +>Aide</guimenu +> <guimenuitem +>Manuel de <replaceable +> votre_application</replaceable +></guimenuitem +></menuchoice +> lorsque votre application graphique &kde; s'exécute. Après avoir construit votre projet, le manuel utilisateur est affiché dans le ¢reAide; de &kde;. Il devra expliquer à l'utilisateur comment fonctionne votre application, quelles en sont les principales fonctionnalités et comment la configurer. Il devra également décrire les fonctionnalités avancées s'il y a lieu. </para> +<para +>Dans &tdevelop;, tous les modèles basés sur &kde; comportent un sous-dossier « doc » qui contient un modèle <filename +>index.docbook</filename +> dans le dossier « en » pour vous permettre de commencer à écrire le manuel utilisateur. Vous devrez modifier ce <filename +>index.docbook</filename +> dans &tdevelop; et commencer à changer des détails personnels tels que le nom, l'adresse électronique, &etc;. Observez les commentaires dans ce fichier et essayez de suivre ces indications pour démarrer la documentation de votre application. Reconstruisez votre projet pour voir les changements dans le ¢reAide;.</para> +<note +><para +>Vous devez installer votre projet à l'aide de <menuchoice +><guimenu +>Construire</guimenu +> <guimenuitem +>Installer</guimenuitem +></menuchoice +> ou <guimenuitem +>Installer (en tant qu'utilisateur « root »)</guimenuitem +> dans &tdevelop; pour voir le manuel utilisateur dans le ¢reAide;.</para +></note> +<para +>Vous pourrez en savoir plus sur la syntaxe docbook sur le <ulink url="http://l10n.kde.org/docs/markup/index.html" +>site web de la documentation de &kde;</ulink +> (en anglais).</para> +</sect1> + +<sect1 id="gettingstarted-keys"> +<title +>Dernier point mais non des moindres, les raccourcis clavier</title> + +<para +>(- à écrire -)</para> +</sect1> + +<sect1 id="gettingstarted-whereto"> +<title +>Où aller à partir d'ici</title> + +<para +>(- à écrire -)</para> + +<sect2 id="gettingstarted-whereto-faq"> +<title +>Problèmes fréquents</title> + +<simplelist> +<member +>Le chapitre « En quelques mots »</member> +<member +>Pages « FAQ »</member> +<member +>Forum</member> +<member +>Listes de diffusion</member> +</simplelist> +</sect2> + +<sect2 id="gettingstarted-whereto-projects"> +<title +>Travailler avec des projets</title> + +<para +>(- à écrire -)</para> + +<sect3 id="gettingstarted-whereto-projects-open"> +<title +>Utiliser des projets &tdevelop; existants</title> + +<para +>(- à écrire -)</para> +</sect3> + +<sect3 id="gettingstarted-whereto-projects-import"> +<title +>Importer des projets externes</title> + +<para +>(- à écrire -)</para> +</sect3> +</sect2> +</sect1> + +</chapter> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/nutshell.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/nutshell.docbook new file mode 100644 index 00000000000..1ac04ebc932 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/nutshell.docbook @@ -0,0 +1,367 @@ +<appendix id="nutshell"> +<title +>En quelques mots — Trucs et astuces</title> + +<!-- Traditionally, most of this stuff will have been put into a FAQ section. It is more useful, however, to put it at the very start of a manual, as this is the place the (inexperienced) user first looks for. + +I disagree. What is useful for a quick start, should go in "Getting started". +Troubleshooting hints go in the appendix or a FAQ. Volker Paul. + +This chapter is meant to provide short hints and tips together with (mandatory) navigation links. +There should be an additional FAQ section near the end nevertheless which contains more general stuff not directly related to navigating the manual. --> + +<para +>Les informations contenues dans ce chapitre sont censées être une référence rapide pour prendre un bon départ ou si vous avez (momentanément) oublié une notion de base. Il y a également de brefs conseils sur la manière de résoudre quelques problèmes courants lorsqu'on travaille avec &tdevelop;. </para> +<para +>Si vous souhaitez plus d'informations sur un sujet, suivez simplement le lien dans le titre placé au début de ce conseil. </para> +<para +>Sont disponibles des informations sur ces sujets : </para> +<simplelist> + <member +><link linkend="nutshellitem-look-and-feel" +>Apparence</link +></member> + <member +><link linkend="nutshellitem-projects" +>Projets</link +></member> + <member +><link linkend="nutshellitem-compilation" +>Compilation</link +></member> + <member +><link linkend="nutshellitem-automake" +>&automanag;</link +></member> + <member +><link linkend="nutshellitem-compilemake" +>Problèmes avec « make » / la compilation</link +></member> + <member +><link linkend="nutshellitem-others" +>Autres sujets</link +></member> +</simplelist> + +<variablelist id="nutshellitem-look-and-feel"> +<title +>Apparence</title> + +<varlistentry> +<term id="nutshell-ideal-tabs" +><link linkend="setup-ui-toolview" +>Imposer des onglets plus petits dans les vues des outils en mode IDEAl</link +></term> +<listitem> +<para +>Par défaut, &tdevelop; démarre avec de grands onglets d'infobulle de type texte dans la zone de travail. Vous pouvez changez cet aspect pour &pex; économiser de l'espace dans la boîte de dialogue de configuration de &tdevelop; <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +> <guimenuitem +>Interface utilisateur</guimenuitem +></menuchoice +>).</para> +<para +>Si vous employez une version antérieure à &tdevelop; 3, cette boîte de dialogue de configuration peut ne pas être disponible. Pour changer l'affichage des onglets des vues des outils manuellement, placez un élément <option +>MDIStyle</option +> sous la marque <option +>[UI]</option +> dans votre fichier de configuration <filename +>$KDEHOME/share/config/tdeveloprc</filename +> comme suit :</para> + +<simplelist> +<member +><option +>MDIStyle=0</option +> : icônes seules</member> +<member +><option +>MDIStyle=1</option +> : texte seul (par défaut)</member> +<!--<member +><computeroutput +>MDIStyle=2</computeroutput +>: icons only on smaller tabs (not very useful)</member +>--> +<member +><option +>MDIStyle=3</option +> : icônes et texte</member> +</simplelist> +</listitem> +</varlistentry> + +<varlistentry +> <!-- ### remove this entry when the bug is repaired --> +<term id="nutshell-weird-style" +>Caractères et/ou style d'affichage colorés de façon étrange</term> +<listitem> +<para +>Si vous remarquez des lettres colorées au hasard n'importe où (&cad; sur les onglets, barres d'outils, etc.) et que la fenêtre de &tdevelop; utilise apparemment un style d'affichage incorrect, ceci peut vous aider :</para> + +<itemizedlist> +<listitem +><para +>Dans votre fichier de configuration <filename +>$<envar +>KDEHOME</envar +>/share/config/tdeveloprc</filename +>, cherchez la ligne contenant « <computeroutput +>Style=Checked</computeroutput +> » et supprimez-la. Puis redémarrez &tdevelop;. </para> +</listitem> +</itemizedlist> +<para +>(Ce comportement se produit parfois après que vous avez cliqué sur un fichier « .ui » dans un des navigateurs de fichiers et que &tdevelop; a chargé <application +>KUIViewer</application +> pour afficher la &GUI; produite à partir de ce fichier.)</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-full-screen" +><link linkend="maximize-workspace" +>Mode plein écran</link +></term> +<listitem> +<para +>Sélectionnez <menuchoice +><guimenu +>Affichage</guimenu +><guimenuitem +>Mode plein écran</guimenuitem +></menuchoice +> depuis les menus ou appuyez sur <keycombo +>&Ctrl;&Maj;<keycap +>F</keycap +></keycombo +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-hide-menu" +><link linkend="maximize-workspace" +>Cacher / Afficher la barre de menus</link +></term> +<listitem> +<para +>Pour cacher la barre de menus, sélectionnez <menuchoice +><guimenu +>Configuration</guimenu +><guimenuitem +>Afficher la barre de menus</guimenuitem +></menuchoice +> depuis les menus ou appuyez sur <keycombo +>&Ctrl;<keycap +>M</keycap +></keycombo +>. Pour réafficher la barre de menus uniquement, <keycombo +>&Ctrl;<keycap +>M</keycap +> </keycombo +> est disponible.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title id="nutshellitem-projects" +>Projets</title> +<varlistentry> +<term +><link linkend="new-projects" +>Créer un nouveau projet</link +></term> +<listitem> +<para +><menuchoice +><guimenu +>Projet</guimenu +><guimenuitem +>Nouveau projet...</guimenuitem +></menuchoice +> démarrera l'<link linkend="applicationwizard" +>&appwizard;</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-new-custom-project" +>Créer un projet personnalisé</term> +<listitem> +<para +>Il n'y a aucun moyen de créer un projet personnalisé (&cad; un projet qui se sert de ses propres « makefiles »). Utilisez <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Importer un projet existant</guimenuitem +></menuchoice +> à la place. N'oubliez pas de définir le <guilabel +>Type de projet</guilabel +> approprié, étiqueté par un +> CMakefiles personnalisés) » additionnel, dans la boîte de dialogue.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-project-options" +>Utiliser les options de projet au début</term> +<listitem> +<para +>Chaque fois que vous démarrez un nouveau projet, n'oubliez pas de régler le <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet...</guimenuitem +></menuchoice +> selon vos besoins.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-compilation"> +<title +>Compilation</title> +<varlistentry> +<term id="nutshell-compilemsg-detail" +><link +linkend="setup-main-compile" +>Détail manquant dans les messages de compilation</link +></term> +<listitem> +<para +>Si pendant les compilations vous remarquez qu'il manque certaines informations important dans la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +>, il se peut que le niveau de détail des messages soit réglé trop bas. Cliquez avec le &BDS; dans la fenêtre et sélectionnez un autre niveau de détail depuis le menu contextuel. </para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-automake"> +<title +><link linkend="automake-manager" +>&automanag;</link +></title> + +<varlistentry> +<term +>Créer de nouveaux fichiers dans un projet</term> +<listitem> +<para +>Sélectionnez le sous-projet dans la partie supérieure du &automanag;, puis cliquez avec le &BDS; sur la partie inférieure sur le titre des groupes dont vous voulez ajouter les fichiers et sélectionnez <guimenuitem +>Créer un nouveau fichier...</guimenuitem +>.</para> +</listitem> +</varlistentry> + +<varlistentry id="nutshell-add-project-file"> +<term +>Ajouter des fichiers existants à un projet</term> +<listitem> +<para +>Sélectionnez le sous-projet dans la partie supérieure du &automanag;, puis cliquez avec le &BDS; dans la partie inférieure sur le titre des groupes dont vous voulez ajouter les fichiers et sélectionnez <guimenuitem +>Ajouter des fichiers existants...</guimenuitem +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Supprimer un fichier d'un projet</term> +<listitem> +<para +>Sélectionnez le sous-projet dans la partie supérieure du &automanag;, puis dans la partie inférieure, ouvrez la liste des groupes dont vous voulez supprimer les fichiers, cliquez avec le &BDS; sur le fichier dans cette liste et sélectionnez <guimenuitem +>Supprimer</guimenuitem +>.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-compilemake"> +<title +>Problèmes avec « make » / la compilation</title> +<varlistentry> +<term id="nutshell-builddirproblems" +><link +linkend="defaultbuild-warning" +>Le projet ne compile plus après avoir basculé vers / depuis la cible par défaut</link +></term> +<listitem> +<para +>Il y a un problème avec la machinerie &automake; / &autoconf;. Si <menuchoice +> <guimenu +>Projet</guimenu +> <guimenuitem +>Configuration de compilation</guimenuitem +></menuchoice +> offre de choisir parmi trois dossiers de compilation : <guimenuitem +>par défaut</guimenuitem +>, <guimenuitem +>optimisé</guimenuitem +> et <guimenuitem +>débogage</guimenuitem +>, il est presque certain que vous choisissez <emphasis +>soit</emphasis +> les cibles « par défaut », <emphasis +>soit</emphasis +> « débogage » / « optimisé ».</para> +<itemizedlist> +<listitem> +<para +>Une fois que vous avez configuré votre projet avec « par défaut », il ne compilera plus avec « débogage » ou « optimisé ».</para> +</listitem> +<listitem> +<para +>Une fois que vous avez configuré votre projet avec « débogage » ou « optimisé », il ne compilera plus avec « par défaut ».</para> +</listitem> +</itemizedlist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-autoconf-problem" +>« Mauvaise version de <command +>autoconf</command +> » &etc; Erreur</term> +<listitem> +<para +>Il y a plusieurs messages d'erreur concernant des versions trop anciennes de <application +>autoconf</application +>, &etc;, empêchant <command +>configure</command +> de fonctionner correctement. Lancez <command +>autoreconf</command +> dans l'arborescence de dossiers où se trouvent les fichiers <filename +>configure.in</filename +> en question. Cette commande essaiera de mettre à jour les informations dans les fichiers du <foreignphrase +>&GNU; Build System</foreignphrase +>. Reportez-vous à <command +>man autoreconf</command +> pour plus d'informations.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-others"> +<title +>Autres sujets</title> +<varlistentry> +<term id="nutshell-others-files" +><link linkend="app-files" +>Fichiers de configuration utilisés par &tdevelop;</link +></term> +<listitem> +<para +>Habituellement, vous n'aurez pas à leur prêter attention, mais ils peuvent être utiles à connaître en cas d'incident avec votre installation.</para> +</listitem +> +</varlistentry> +</variablelist> + +</appendix +> <!-- nutshell --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/plugin-tools.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/plugin-tools.docbook new file mode 100644 index 00000000000..2f615e83872 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/plugin-tools.docbook @@ -0,0 +1,731 @@ +<appendix id="plugin-tools"> +<title +>Outils modules externes</title> + +<indexterm zone="plugin-tools"> + <primary +>modules externes</primary +></indexterm> + +<para +>&tdevelop; contient un grand nombre de petits outils qui vous aident à effectuer certaines tâches. La plupart d'entre eux sont réalisés sous forme de modules externes (plugins). Cela signifie que, si vous n'avez pas besoin d'un module externe, vous pouvez le désactiver.</para> +<para +>Cela signifie également que si vous cherchez une fonctionnalité qui devrait être présente et qui ne l'est pas, il se peut qu'elle soit implémentée dans un module externe et que ce denier soit désactivé. Par exemple, dans le menu Fichier, il y a une fonctionnalité Ouverture rapide, mais uniquement si elle est activée dans la boîte de dialogue Projet - Options du projet. </para> + +<para +>Techniquement, les modules externes sont basés sur la classe KDevPlugin définie dans lib/interfaces/kdevplugin.h. La suite est tirée d'un commentaire qui en provient.</para> + +<para +>KDevPlugin est la classe de base pour tous les modules externes de KDevelop. Un module externe est un composant qui est chargé dans le shell de KDevelop au démarrage ou à la suite d'une requête. Un module externe a une portée qui peut être soit : <itemizedlist> +<listitem +><simpara +>Core</simpara +></listitem> +<listitem +><simpara +>Global</simpara +></listitem> +<listitem +><simpara +>Projet</simpara +></listitem> +</itemizedlist> +</para> + +<para +>Les modules externes « core » sont des modules externes globaux qui offrent une certaine fonctionnalité « core » et ainsi, ne sont pas sélectionnables par l'utilisateur dans les pages de configuration des modules externes.</para> + +<para +>Les modules externes globaux sont des modules externes qui ont besoin du shell uniquement pour être chargés et n'agissent pas sur l'interface de KDevProject et / ou n'utilisent pas d'informations à l'échelle du projet. Par exemple, le module externe « uimode » permet au développeur de choisir l'interface utilisateur qu'il souhaite employer. </para> + +<para +>Les modules externes de projet nécessitent qu'un projet soit chargé et sont habituellement chargés / déchargés tout au long du projet. Si un module externe agit sur des informations liées au projet, alors c'est un module externe de projet. Le gestionnaire Automake, par exemple, ne doit être actif que quand un projet basé sur Automake est actuellement chargé. </para> + +<para +>Comme établi ci-dessus, les modules externes « core » ne peuvent être désactivés. Les modules externes globaux peuvent être activés / désactivés dans <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +></menuchoice +> sous <guibutton +>Modules externes</guibutton +>. Les modules externes peuvent être activés / désactivés dans <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet...</guimenuitem +></menuchoice +> sous <guibutton +>Modules externes</guibutton +>. Les modules externes actifs peuvent avoir de nombreux effets sur KDevelop. Selon leur fonction, ils peuvent ajouter des menus supplémentaires, des éléments de menus supplémentaires, des boutons d'outils supplémentaires, etc. </para> + +<para +>Les modules externes qui sont désactivés n'encombrent pas vos menus et ne sont pas chargés en mémoire. </para> + + +<para +>La liste de modules externes suivante est générée par un petit script (listplugins.sh) écrit par Volker Paul. Tous les modules externes comportent un fichier .desktop, où sont enregistrées des informations telles que leur nom et des commentaires. Si dans ce qui suit ces commentaires ne sont pas très utiles, c'est parce que leurs auteurs l'ont voulu ainsi.</para> +<para +>Les modules externes sont groupés par portée (Core, Global, Projet).</para> + +<para +>Portée : Core</para> +<itemizedlist> +<listitem +><formalpara id="KDevAppWizard"> +<title +>Assistant d'application</title> +<para +>Assistant d'application</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevDiff"> +<title +>Afficheur de différences</title> +<para +>Afficheur de différences</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevFileCreate"> +<title +>Création de fichiers</title> +<para +>Création de fichiers</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevFullScreen"> +<title +>Plein écran</title> +<para +>Plein écran</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevTipOfDay"> +<title +>Astuce du jour</title> +<para +>Astuce du jour</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevUIChooser"> +<title +>Sélection de l'interface utilisateur</title> +<para +>Fournit une boîte de dialogue pour la sélection du mode d'interface utilisateur.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevVCSManager"> +<title +>Gestionnaire VCS</title> +<para +>Gestionnaire de systèmes de contrôle de versions </para +></formalpara +></listitem> +</itemizedlist> + +<para +>Portée : Global</para> +<itemizedlist> +<listitem +><formalpara id="KDevAbbrev"> +<title +>Expansion des abréviations</title> +<para +>Fournit la prise en charge des abréviations personnalisables - mots courts qui s'étendent en structures de code couramment requises.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevDocumentation"> +<title +>Documentation</title> +<para +>Le module externe Documentation offre la navigation et la recherche dans la documentation locale et en ligne avec une prise en charge pour des systèmes de documentation multiples.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevfilelist"> +<title +>Liste des fichiers</title> +<para +>Fournit une liste de tous les fichiers actuellement ouverts. (Pratique quand la barre d'onglets n'est pas tout à fait assez large.)</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevFileSelector"> +<title +>Sélecteur de fichiers</title> +<para +>Puissant utilitaire navigateur de fichiers transparent vis-à -vis du réseau.</para +></formalpara +></listitem> +<listitem +><formalpara> +<title +>Filtrage et insertion dans le shell</title> +<para +>Fournit un moyen de manipuler le texte d'un éditeur à l'aide d'outils en ligne de commande. Apparaît dans le menu Outils.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevGrepView"> +<title +>Interface Grep</title> +<para +>Intègre « find|grep » dans KDevelop - permet la recherche rapide de fichiers multiples à l'aide de motifs ou d'expressions rationnelles.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevKonsoleView"> +<title +>Konsole embarquée</title> +<para +>Ce module externe donne à KDevelop une console embarquée pour un accès en ligne de commande rapide et facile.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevOpenWith"> +<title +>Ajout du menu « Ouvrir avec »</title> +<para +>Ce module externe fournit des alternatives à « Ouvrir » additionnelles pour divers menus contextuels de KDevelop.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevPartExplorer"> +<title +>Outil Explorateur de composants</title> +<para +>Un outil graphique pour effectuer des requêtes de type KTrader sur des services déclarés</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevRegexpTest"> +<title +>Testeur d'expressions rationnelles</title> +<para +>Outil permettant de concevoir et de tester des expressions régulière par rapport à la syntaxe d'expressions rationnelles communes.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevReplace"> +<title +>Composant remplacement</title> +<para +>Ce module externe est un outil « Recherche et remplacement » interactif à l'échelle du projet. Il effectue une recherche à l'aide de la correspondance de chaînes ou d'expressions rationnelles et sélectionne les remplacements à effectuer à partir d'un aperçu avant que l'action ne soit finalisée. Quand chargé, il apparaît dans le menu Édition.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevscripting"> +<title +>Scriptage</title> +<para +>Le module Scriptage offre un scriptage basé sur KScript de l'application KDevelop</para +></formalpara +></listitem> +<listitem +><formalpara id="Code_Snippets"> +<title +>Fragments de code</title> +<para +>Ce module externe vous permet de stocker des fragments de code et de les ajouter à votre code</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevTextTools"> +<title +>Structure du texte</title> +<para +>Fournit un vue d'ensemble de la structure et une navigation pour les fichiers HTML et TEX</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevTools"> +<title +>Ajout au menu Outils</title> +<para +>Ce module externe fournit un moyen facile d'ajouter des applications externes au menu Outils et à la barre d'outils.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevvalgrind"> +<title +>Interface Valgrind</title> +<para +>Valgrind est un outil qui vous aide à repérer les problèmes de gestion de mémoire dans les programmes. http://developer.kde.org/~sewardj/</para +></formalpara +></listitem> +</itemizedlist> + +<para +>Portée : Projet</para> +<itemizedlist> +<listitem +><formalpara id="KDevannotation"> +<title +>Module externe Annotation</title> +<para +>Description des annotations</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevAStyle"> +<title +>Formateur de code source</title> +<para +>Un module externe pour formater du code source en fonction d'un ensemble spécifié de règles. Quand chargé, il se trouve dans le menu Outils.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevBookmarks"> +<title +>Signets</title> +<para +>Module externe qui fournir une navigation et une vue d'ensemble des signets actifs et les rend persistants entre deux sessions.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevClassView"> +<title +>Vue des classes</title> +<para +>Ce module externe affiche une vue graphique de toutes les classes du projet, complète avec les méthodes et les attributs. Il fournit également un moyen de navigation direct dans les sources.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevcopyto"> +<title +>Copier vers</title> +<para +>Module externe simple d'envoi de fichiers. Il effectue une copie de fichier sur n'importe quel protocole KIO pris en charge.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevCTags2"> +<title +>Interface CTags</title> +<para +>CTags est un outil de navigation dans les sources avec prise en charge de nombreux langages. Quand chargé, il fournit un menu contextuel pour trouver des déclarations / définitions de types, ainsi qu'une boîte de dialogue de requêtes. http://ctags.sourceforge.net/</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevdistpart"> +<title +>Prise en charge du conditionnement final</title> +<para +>Aide à construire et à publier le projet final. Seul le format de paquetage RPM est pris en charge pour l'instant.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevDoxygen"> +<title +>Prise en charge de Doxygen</title> +<para +>Le module externe Doxygen fournit un moyen de spécifier et de contrôler la génération de documentation pour un projet, en fonction du contenu des sources. Vous devez avoir installé Doxygen pour pouvoir l'utiliser. Pour plus d'informations, visitez http://www.doxygen.org</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevQuickOpen"> +<title +>QuickOpen</title> +<para +>Fournit un moyen efficace de trouver / ouvrir des fichiers, classes et méthodes dans un gros projet. Il apparaît dans les menus Fichier et Outils quand chargé.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevSecurity"> +<title +>Contrôleur de sécurité</title> +<para +>Contrôleur de sécurité du code</para +></formalpara +></listitem> +</itemizedlist> +<para +>Jusqu'ici, la liste des modules externes générés.</para> + + +<table id="table-project-parts"> +<title +>Modules externes de gestion de projet dans &tdevelop;</title> +<tgroup cols="2" +><tbody> +<row> + <entry +>antproject</entry> + <entry +>Gestionnaire de projets ANT (applications &Java;)</entry> +</row> +<row> + <entry +>autoproject</entry> + <entry +>Gestionnaire de projets Automake</entry> +</row> +<row> + <entry +>customproject</entry> + <entry +>Gestionnaire de projets personnalisés</entry> +</row> +<row> + <entry +>trollproject</entry> + <entry +>Gestionnaire de projets basé sur QMake</entry> +</row> +</tbody +></tgroup> +</table> +<para +>Les modules externes ci-dessus sont actuellement (en mai 2005) vides. Peut-être la prise en charge des gestionnaires de projets sera-t-elle implémentée sous forme de modules externes dans le futur.</para> + + +<table> +<title +>Modules externes de gestion des langages dans &tdevelop;</title> +<tgroup cols="2"> +<tbody> +<row +><entry +>cppsupport</entry +><entry +>Prise en charge de C/C++</entry +></row> +<row +><entry +>fortransupport</entry +><entry +>Prise en charge de Fortran</entry +></row> +<row +><entry +>javasupport</entry +><entry +>Prise en charge de &Java;</entry +></row> +<row +><entry +>perlsupport</entry +><entry +>Prise en charge de Perl</entry +></row> +<row +><entry +>phpsupport</entry +><entry +>Prise en charge de PHP</entry +></row> +<row +><entry +>pythonsupport</entry +><entry +>Prise en charge de Python</entry +></row> +</tbody +></tgroup> +</table> + + +<para +>Dans ce qui suit, certains des modules externes seront étudiés en détail.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Le module externe <command +>abbrev</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>abbrev</command +></primary +></indexterm> + +<para +>Ce module externe étend les abréviations en fragments de code fréquemment utilisés. Il est activé en appuyant sur <keycombo +><keycap +>Ctrl</keycap +> <keycap +>Espace</keycap +></keycombo +>. Par exemple, quand vous saisissez <literal +>« ife »</literal +> en C++ dans un éditeur et que vous appuyez sur <keycombo +><keycap +>Ctrl</keycap +><keycap +>Espace</keycap +></keycombo +>, vous obtenez un modèle de code <literal +>if-else</literal +> et enregistrez certaines frappes de touches. L'ensemble des abréviations prises en charge dépend du langage de programmation du fichier édité. Par exemple, pour le PHP, vous serez bien évidemment intéressé par des modèles de code autres que pour &Java;. </para> +</formalpara> + +<para +>L'ensemble des modèles de code est configurable. Si le module externe est activé, vous pouvez voir ceux qui sont disponibles dans la boîte de dialogue <menuchoice +><guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +></menuchoice +> sous <guibutton +>Abréviations</guibutton +>. </para> +</listitem> + +<listitem> +<formalpara id="KDevFilter"> +<title +>Le module externe <command +>filter</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>filter</command +></primary +></indexterm> + +<para +>Celui-ci offre deux fonctionnalités. Si vous sélectionnez <menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>Exécuter une commande</guimenuitem +></menuchoice +>, vous pouvez saisir une commande de shell. La sortie de cette commande est insérée dans le tampon de l'éditeur quand vous cliquez sur le bouton <guibutton +>Démarrer</guibutton +>. </para> +</formalpara> + +<para +>Une fonctionnalité connexe est disponible sous <menuchoice +><guimenu +>Outils</guimenu +><guimenuitem +>Choix d'un filtre par une commande...</guimenuitem +></menuchoice +>. Pour l'utiliser, vous devez sélectionner une zone de texte dans l'éditeur. Si vous saisissez à présent une commande de shell et que vous cliquez sur le bouton <guibutton +>Démarrer</guibutton +>, la commande est lancée et la sélection utilisée comme l'entrée standard pour celle-ci. La sortie standard de la commande est alors insérée dans l'éditeur, remplaçant la sélection. </para> + +<para +>Par exemple, si vous écrivez de la documentation, vous devez fréquemment vous référer aux éléments de menu. Pour le faire correctement, par exemple pour la commande « Copier » du menu Édition, vous devez écrire : <programlisting +><menuchoice><guimenu>Édition</guimenu><guimenuitem>Copier</guimenuitem></menuchoice></programlisting +> Comme c'est fastidieux, vous pourriez aussi bien n'écrire que « Édition- Copier » et laisser l'ordinateur réaliser le marquage. Voici comment vous pouvez le faire. Écrivez un petit script shell appelé « mef » que vous placez par exemple dans votre répertoire personnel : <programlisting +>sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/</programlisting +> N'oubliez pas de le rendre exécutable. C'est tout. Maintenant, dans le source .docbook de votre documentation, écrivez « Édition- Copier ». Sélectionnez ce texte que vous venez de saisir, choisissez <menuchoice +><guimenu +>Outils</guimenu +><guimenuitem +>Choix d'un filtre par une commande...</guimenuitem +></menuchoice +> et appelez ~/bin/mef. Instantanément, « Édition- Copier » est remplacé par <programlisting +><menuchoice><guimenu>Édition</guimenu><guimenuitem>Copier</guimenuitem></menuchoice></programlisting> +</para> + + +</listitem> + +<listitem> +<formalpara> +<title +>Le module externe &doxygen;</title> +<indexterm zone="plugin-tools" +><primary +>&doxygen;</primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>outil de documentation</primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>Documentation de l'API</primary +></indexterm> + +<para +>Celui-ci vous aide à utiliser l'outil de documentation d'API &doxygen; (<ulink url="http://www.doxygen.org" +></ulink +>). Vous pouvez sélectionner <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Exécuter Doxygen</guimenuitem +></menuchoice +> pour générer la documentation de l'API pour votre projet actuel, en fonction de la configuration donnée par le fichier <filename +>Doxyfile</filename +> dans le dossier de votre projet. </para> +</formalpara> + +<para +>De plus, vous pouvez configurer &doxygen; dans la boîte de dialogue <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Options du projet...</guimenuitem +></menuchoice +>. Cette boîte de dialogue est très similaire à l'outil &doxywizard;. </para> +</listitem> + +<listitem> +<formalpara> +<title +>Le module externe &ctags;</title> +<indexterm zone="plugin-tools" +><primary +>&ctags;</primary +></indexterm> + +<para +>Bien que le navigateur de classes vous donne une compréhension exhaustive des symboles et des classes de votre projet, il se peut aussi que vous soyez amené à utiliser l'outil ctags. En particulier, celui-ci prend en charge beaucoup plus de langages que le navigateur de classes. </para> +</formalpara> + +<para +>Vous activez ce module externe sous <menuchoice +><guimenu +>Outils</guimenu +> <guimenuitem +>CTags...</guimenuitem +></menuchoice +>. Quand vous le démarrez pour la première fois, vous êtes invité à générer d'abord une base de données de recherche. Après que vous l'avez accepté, le programme &ctags; démarre et crée un fichier nommé <filename +>tags</filename +> dans le dossier de votre projet. C'est un fichier texte contenant tous les symboles de vos fichiers sources. </para> + +<para +>Vous pouvez faire une recherche dans la base de données des symboles de deux manières : quand la case <guilabel +>Correspondance avec une expression rationnelle</guilabel +> est cochée, le texte que vous saisissez sera interprété comme une expression rationnelle (dialecte POSIX) et concordant avec les symboles existants. Par exemple, le texte <literal +>.*Widget</literal +> cherchera tous les symboles se terminant par <literal +>Widget</literal +>. Si la case n'est pas cochée, la recherche aura lieu mot à mot. </para> + +<para +>Lors de la recherche, vous obtiendrez une liste des symboles concordants, accompagnés des numéros de ligne où ils sont définis. Vous passez au point concerné en cliquant sur la liste. </para> + +<para +>Pour certains langages, &ctags; distingue différentes sortes de symboles. Par exemple, Python comporte des classes et des fonctions. Vous pouvez faire une recherche sélective uniquement pour des classes en cochant les types respectifs dans la boîte de dialogue. </para> + +<para +>La base de données des symboles n'est normalement pas mise à jour quand vos sources changent. En conséquence, au bout d'un moment, les numéros de ligne ne seront plus corrects et les classes et fonctions récemment ajoutées seront absentes. Vous devriez donc mettre à jour le fichier <filename +>tags</filename +> à intervalles réguliers en cliquant sur le bouton <guibutton +>Régénerer</guibutton +>. </para> +</listitem> + +<listitem> +<formalpara> +<title +>Le module externe <command +>astyle</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>astyle</command +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +><application +>Style artistique</application +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>indentation</primary +></indexterm> + +<para +>Astyle est un module externe pour formater le code source en fonction d'un ensemble spécifié de règles. </para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Le module externe <command +>regexptest</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>regexptest</command +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>débogage</primary +><secondary +>expressions rationnelles</secondary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>expressions rationnelles</primary +><secondary +>débogage</secondary +></indexterm> + +<para +>Concevoir avec des expressions rationnelles peut être un travail ardu. Souvent, la première tentative auprès d'une expression correspond à de trop nombreuses chaînes. En particulier, en travaillant avec un langage compilé, les délais d'exécution lors du débogage d'une expression rationnelle peuvent être pénalisants. Le module externe « regexptest » vous permet d'explorer directement les changements dans une expression rationnelle. Il est activé en choisissant <menuchoice +><guimenu +>Outills</guimenu +> <guimenuitem +>Déboguer l'expression rationnelle...</guimenuitem +></menuchoice +>. </para> +</formalpara> + +<para +>Dans la zone des groupes de dialectes, vous pouvez choisir le dialecte du moteur d'expressions rationnelles utilisé. Actuellement, sont pris en charge le dialecte défini dans la norme POSIX, qui est utilisé par le programme &grep; et la syntaxe POSIX étendue utilisée par le programme &egrep;. </para> + +<para +>Quand vous saisissez une expression, vous avez un retour immédiat sur toute erreur de syntaxe qu'elle contient. En saisissant un texte sous <guilabel +>Chaîne de test</guilabel +>,vous pouvez voir si l'expression correspond à cette chaîne. En particulier, si votre expression rationnelle inclut des groupes, tels que <literal +>([a-z])</literal +>, le contenu des sous-groupes concordants sera affiché dans une zone de liste. </para> +</listitem> + +<!-- +<listitem> +<formalpara> +<title +>The <command +>konsole</command +> Plugin</title> +<indexterm zone="plugin-tools" +><primary +><command +>konsole</command +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>terminal</primary +><secondary +>embedded</secondary +></indexterm> +<para +></para> +</formalpara> +</listitem> +--> + +</itemizedlist> + +</appendix +> <!-- plugin-tools --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/project-advanced.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/project-advanced.docbook new file mode 100644 index 00000000000..8bc3aca0224 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/project-advanced.docbook @@ -0,0 +1,111 @@ +<chapter id="projects-advanced"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Gestion avancée de projet</title> + +<sect1 id="oldprojects"> +<title +>Chargement de projets</title> + +<sect2 id="loading-recent-project"> +<title +>Chargement d'un projet récemment utilisé</title> + +<para +>(... à écrire ...) </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="open-recent-project.png" format="PNG"/> + </imageobject> + <caption +><para +>Comment ouvrir un projet récent </para +></caption> + </mediaobject> +</screenshot> + + +</sect2 +> <!-- loading-recent-project --> + +<sect2 id="loading-project"> +<title +>Chargement d'un projet existant</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- loading-project --> + +<sect2 id="converting-projects"> +<title +>Conversion d'anciens fichiers projet de KDevelop</title> + +<para +>&tdevelop; vous permet d'ouvrir d'anciens fichiers projet KDevelop 2.x et de les convertir en fichiers &tdevelop;. Pour ce faire, allez dans <guimenuitem +>Ouvrir un projet...</guimenuitem +> et choisissez <guilabel +>Fichier projet KDevelop version 2</guilabel +> dans le <guilabel +>Filtre :</guilabel +>. Puis choisissez le fichier projet que vous voulez ouvrir. Le projet est converti en &tdevelop; et enregistré comme un <guilabel +>fichier projet &tdevelop;</guilabel +>. </para> + +</sect2 +> <!-- converting-projects --> + +<sect2 id="importing-projects"> +<title +>Importation d'un projet existant</title> + +<para +>Pour importer un dossier existant dans &tdevelop; sélectionnez <guimenuitem +>Importer un dossier existant</guimenuitem +> dans le menu <guimenu +>Projet</guimenu +>. Vous devriez voir l'assistant du dossier d'importation, comme ci-dessous : </para> + +<figure id="screenshot-importdirectory" float="1"> +<title +>La boîte de dialogue Importer un dossier</title> +<mediaobject> +<imageobject +><imagedata fileref="importdirectory.png"/></imageobject> +</mediaobject> +</figure> + +</sect2 +> <!-- importing-projects --> + +</sect1 +> <!-- oldprojects --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="project-options"> +<title +>Personnalisation du projet — Options du projet</title> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- project-options --> + +</chapter +> <!-- projects-advanced --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/project-management.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/project-management.docbook new file mode 100644 index 00000000000..6b1668a7b3c --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/project-management.docbook @@ -0,0 +1,1271 @@ +<chapter id="project-management"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <author +><firstname +>Ian</firstname +><surname +>Wadham</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Construction et gestion de projets</title> + +<para +>Ce chapitre ne traite que des projets compilés, tels que les projets C++, &Java; ouFortran. Les projets concernant les langages de scriptage comme Python et PHP fonctionnent de manière très différente. </para> + +<para +>Vous trouverez ici des informations sur :</para> +<itemizedlist> + <listitem +><para +>Le <link linkend="automake-manager-summary" +>résumé du &automanag;</link +> contenant une vue d'ensemble initiale du &automanag;, </para +></listitem> + <listitem +><para +>Le document <link linkend="automake-manager-operation" +>Fonctionnement du gestionnaire Automake</link +> décrivant les bases du travail avec le &automanag;, </para +></listitem> +</itemizedlist> + +<sect1 id="automake-manager-summary"> +<title +>Résumé de l'&automanag;</title> + +<para +>Dans le chapitre <link linkend="unixdev-buildsystems" +>Systèmes de construction</link +>, nous avons donné un rapide aperçu des systèmes de construction couramment utilisés sur les systèmes &UNIX;. Dans les sections suivantes, nous étudierons ce point plus en détail. </para> +<para +>Il règne une certaine confusion sur la manière de nommer ce genre de choses. &GNU; parle de « systèmes de construction » lorsqu'il décrit Automake, Autoconf et Libtool. QMake se définit lui-même comme « un outil pour écrire des Makefiles pour différents compilateurs et plates-formes ». Dans &kde; on emploie souvent le terme « systèmes de gestion de projet ». Nous utiliserons ce terme dans un sens plus large pour décrire les environnements intégrés dans &tdevelop; qui servent à organiser et à construire vos projets. Dans le contexte de cette section, toutefois, nous étudierons principalement les « systèmes de construction automatisés ». </para> + +<sect2 id="automake-manager-summary-buildsys"> +<title +>La nécessité d'un système de construction automatisé</title> + +<para +>Si vous avez un programme « Bonjour tout le monde » simple, écrit en C, vous pouvez le compiler et le lier en utilisant &gcc; <parameter +>-o bonjour bonjour.c</parameter +>, puis l'exécuter à l'aide de la commande <command +>./hello</command +> : vous n'avez même pas besoin d'un <filename +>Makefile</filename +>. </para> +<para +>Si vous avez une application C comportant plusieurs modules et fichiers d'en-tête et que vous ne l'exécutez que sur votre propre machine (&cad; qu'il s'agit d'une application domestique), il ne vous faut qu'un <filename +>Makefile</filename +> simple, qui est assez facile à écrire à la main (consultez <userinput +>info Make</userinput +> pour en savoir plus). </para> +<para +>Les complications commencent quand : </para> +<itemizedlist> + <listitem +><para +>votre code source, la documentation, les graphiques, les sons, les traductions, les fichiers de données, &etc;, se trouvent dans plusieurs dossiers, </para +></listitem> + <listitem +><para +>vous avez une hiérarchie de dossiers et de sous-dossiers, </para +></listitem> + <listitem +><para +>vous utilisez des bibliothèques qui ne font pas partie de l'ensemble &UNIX; traditionnel, comme la bibliothèque <emphasis +>Object</emphasis +> de &Qt; ou les bibliothèques <emphasis +>Desktop</emphasis +>de &kde;, </para +></listitem> + <listitem +><para +>vous faites appel à un préprocesseur, pour générer une partie de votre code source, tel que le précompilateur MOC de Qt, </para +></listitem> + <listitem +><para +>vous projetez de distribuer votre application dans le monde entier, à des utilisateurs qui peuvent ne pas avoir les mêmes système, logiciels et matériel &UNIX;/&Linux; que vous, </para +></listitem> + <listitem +><para +>vous exigez une fonction Install et Uninstall automatisée, </para +></listitem> + <listitem +><para +>vous envisagez que votre application fasse partie de l'ensemble du Bureau &kde;. </para +></listitem> +</itemizedlist> + +<para +>Si vous êtes dans une, ou toutes les situations décrites ci-dessus, vous avez certainement besoin d'un <emphasis +>système de construction</emphasis +>. Dans l'exemple précédent, nous avons utilisé &gcc; pour compiler et construire le programme « Hello World », mais tous les compilateurs C ne sont pas appelés « &gcc; ». Par conséquent, si vous distribuez votre application à quelqu'un qui utilise un autre compilateur C, votre Makefile doit d'une façon ou d'une autre employer le nom du compilateur de cette personne, sinon votre application ne pourra pas compiler — il ne s'agit là que d'un exemple simple de ce qui peut poser problème. </para> +<para +>Un système de construction résoudra ces différences à votre place. </para> +<itemizedlist> + <listitem +><para +>Il vérifiera que les bibliothèques dont vous avez besoin sont présentes sur chaque machine de destination. </para +></listitem> + <listitem +><para +>recherchera automatiquement dans tous vos dossiers d'application les fichiers à prétraiter, compiler ou installer et </para +></listitem> + <listitem +><para +>installera les composants de votre application dans les dossiers corrects, en s'assurant que </para +></listitem> + <listitem +><para +>les dossiers sont créés dans la machine de destination comme exigé. </para +></listitem> +</itemizedlist> + +<para +>En bref, un système de construction offre des méthodes fiables et sécurisées pour que votre application soit compilée et installée correctement sur n'importe quelle machine de destination. Comme nous l'avons montré auparavant dans le chapitre consacré à la vue d'ensembles des<link linkend="makesystems" +>Systèmes de gestion de projet</link +>, &tdevelop; offre trois systèmes de construction automatisés et la possibilité de créer votre propre Makefile, en bref (cliquez sur les noms des projets pour obtenir plus d'informations) : </para> +<itemizedlist> + <listitem +><para +>Les <link linkend="automake-project" +>projets automake</link +> qui utilisent les outils de développement standard de &GNU;. </para +></listitem> + <listitem +><para +>Les <link linkend="qmake-project" +>projets QMake</link +> qui utilisent le gestionnaire de projets QMake Trolltech. </para +></listitem> + <listitem +><para +>Les <link linkend="ant-project" +>projets ANT</link +> qui utilisent le gestionnaire de projet Apache ANT pour le développement &Java;. </para +></listitem> + <listitem +><para +>Les <link linkend="custom-project" +>projets personnalisés</link +> qui exigent que vous mainteniez vos propres <filename +>Makefiles</filename +>. </para +></listitem> +</itemizedlist> + +<important> +<para +>Du fait qu'une de ces quatre alternatives doit être choisie lorsque vous créez un projet et que <emphasis +>le choix est difficile à modifier ultérieurement</emphasis +>, vous devrez y accorder beaucoup d'attention avant de démarrer. </para> +</important> + +</sect2 +> <!-- automake-manager-summary-buildsys --> + +<sect2 id="automake-references"> +<title +>Tutoriels sur autoconf / automake / libtool</title> +<para +>Il y a plusieurs tutoriels disponibles sur le système de construction de &GNU; (<command +>Autoconf</command +>, <command +>Automake</command +> et <command +>Libtool</command +>) qu'utilise l'&automanag;. </para> +<itemizedlist> + <listitem +><para +>Un court <ulink url="http://www.tdevelop.org/index.html?filename=tutorial_autoconf.html" +>tutoriel autoconf</ulink +> écrit par Christopher W. Curtis est disponible sur la page d'accueil de &tdevelop;. Il se concentre sur quelques étapes de base pour modifier un <filename +>Makefile</filename +>. </para +></listitem> + <listitem +><para +>Vous trouverez un tutoriel plus détaillé dans un plus grand éventail de tutoriels dans <ulink url="http://www.amath.washington.edu/~lf/tutorials/autoconf/toolsmanual_toc.html" +>« Developing software with GNU »</ulink +>. </para +></listitem> + <listitem +><para +>Et citons pour finir le célèbre <ulink url="http://sources.redhat.com/autobook" +>« Goat Book »</ulink +>, intitulé « Autoconf, Automake, and Libtool ». Il s'agit d'une introduction facile à lire, concise, de tous les aspects principaux des <emphasis +>Autotools</emphasis +> de &GNU;. </para +></listitem> +</itemizedlist> + +</sect2 +> <!-- automake-references --> + +<sect2 id="automake-manager-basics"> +<title +>Que fait l'&automanag; ?</title> + +<para +>L'<link linkend="applicationwizard" +>&appwizard;</link +> a configuré quelques fichiers <filename +>Makefile.am</filename +> initiaux lorsque vous avez créé un <guilabel +>Nouveau projet</guilabel +> d'un type qui utilise le système de construction de &GNU;, comme <menuchoice +><guimenuitem +>C++</guimenuitem +> <guimenuitem +>KDE</guimenuitem +> <guimenuitem +>Fenêtre de l'application</guimenuitem +></menuchoice +>. Au cours du développement, l'&automanag; crée les autres fichiers <filename +>Makefile.am</filename +> pour les projets qui utilisent le système de construction de &GNU; et les maintient tous, y compris ceux créés à l'identique par l'&appwizard; et l'&automanag;. </para> +<para +>Il y aura un seul fichier <filename +>Makefile.am</filename +> dans chaque dossier de votre projet à contenir des fichiers à compiler ou à installer. Il contiendra vos spécifications pour la compilation, la construction et l'installation de fichiers, ainsi qu'une référence à tout sous-répertoire ayant aussi un fichier <filename +>Makefile.am</filename +> et, éventuellement, à quelques fichiers à compiler, construire et installer. </para> + +<note +><para +>Les dossiers et les fichiers sources de votre projet peuvent être structurés à n'importe quelle profondeur : vous pouvez aussi préférer une structure de projet plate avec tous les sous-dossiers au premier niveau. </para +></note> + +<para +>Le but du système de construction de &GNU; est de produire des structures de fichiers de code source qui peuvent être compilés, construits et installés sur n'importe quel système &UNIX; ou &Linux; à des commandes simples : </para> + +<screen +>./configure +make +make install # Habituellement en tant que « root ».. +</screen> + +<para +>et désinstallés par la commande <command +>make uninstall</command +> (habituellement en tant que « root »). </para> + +<para +>Comment ceci fonctionne-t-il ? <command +>configure</command +> est un script qui <itemizedlist> + <listitem +><para +>règle les points de détail quel que soit le système dans lequel il se trouve, tels que le compilateur et les bibliothèques à utiliser, où elles se trouvent, puis </para +></listitem> + <listitem +><para +>crée des fichiers <filename +>Makefile</filename +> récursifs en complétant les substitutions dans les fichiers <filename +>Makefile.in</filename +> correspondants. </para +></listitem> +</itemizedlist> +</para> +<para +>Les fichiers <filename +>Makefile.in</filename +> sont des fichiers « d'entrée » — des modèles qui fournissent des informations de base pour les <filename +>Makefile</filename +>s qui en résulteront en complétant certaines informations en fonction du système. Ils sont générés par l'utilitaire <command +>Automake</command +> à partir des fichiers <filename +>Makefile.am</filename +>. </para> +<para +>Le processus qui consiste à partir d'un <filename +>Makefile.am</filename +> (<filename +>.am</filename +> désigne des modèles de fichiers « Automake ») vers des fichiers <filename +>Makefile</filename +> est géré automatiquement par le &promanag; de &tdevelop;, à l'aide de l'utilitaire <command +>Autoconf</command +>, des macros <command +>M4</command +> et autres complexités dans lesquelles il n'est pas nécessaire de se lancer ici. </para> +<para +>Par conséquent, quand <command +>make</command +> s'exécute, il choisit automatiquement les éléments qu'il faut dans l'environnement actuel, comme les compilateurs et les bibliothèques. De la même manière, <command +>make install</command +> place les composants de votre application, comme les exécutables, la documentation et les fichiers de données dans les endroits qui conviennent pour cet environnement. </para> + +<para +>Si vous distribuez votre application sous forme de « tarball » (un seul fichier compressé que &tdevelop; peut créer pour vous), il inclut les fichiers <filename +>Makefile.in</filename +> et le fichier de script <filename +>configure</filename +>, de façon à ce que le destinataire puisse compiler, construire et installer votre application sans avoir <command +>Automake</command +>, <command +>Autoconf</command +> ou &tdevelop; sur sa machine. Les fichiers <filename +>Makefile.am</filename +> sont également inclus, juste au cas où le destinataire ait besoin d'une modification quelconque du code source. </para> +<note +><para +>Les règles sont plutôt différentes si vous distribuez via un référentiel de code sur le Web tel que &cvs; de &kde;. </para +></note> + +</sect2 +> <!-- automake-manager-basics --> + +<sect2 id="automake-manager-basics-summary"> +<title +>Résumé de ce que fait le gestionnaire du programme Automake</title> + +<itemizedlist> + <listitem +><para +>Il génère des fichiers <filename +>Makefile.am</filename +> dans des sous-dossiers qu'il connaît en tant que « sous-projets ». </para +></listitem> + <listitem +><para +>Il met à jour les fichiers <filename +>Makefile.am</filename +>au fur et à mesure que la structure du projet change. </para +></listitem> + <listitem +><para +>Il met à jour les fichiers <filename +>Makefile.am</filename +> au fur et à mesure que des fichiers sont ajoutés ou supprimés du projet. </para +></listitem> + <listitem +><para +>Il accepte des définitions sur la manière dont les divers fichiers doivent être compilés ou installés, et modifie le <filename +>Makefile.am</filename +> en conséquence. </para +></listitem> + <listitem +><para +>Il accepte les paramètres utilisés lors de la construction ou de l'installation (&pex;, les noms des bibliothèques) et s'assure qu'elles sont utilisées dans les étapes requises de compilation et de construction. </para +></listitem> +</itemizedlist> + +</sect2 +> <!-- automake-manager-basics-summary --> + +<sect2 id="automake-file-contents"> +<title +>Contenu des fichiers Automake</title> + +<para +>Un fichier <filename +>Makefile.am</filename +> comporte des lignes contenant des noms de variables suivis d'un signe égale et d'une liste de fichiers ou de valeurs de paramètres. Les « variables » ont des noms en deux parties, comme <varname +>bin_PROGRAMS</varname +>, <varname +>monapp_SOURCES</varname +> ou <varname +>kdelnk_DATA</varname +>. La seconde partie est appelée <emphasis +>primaire</emphasis +> et représente un élément à construire ou à installer. La première partie est appelée <emphasis +>préfixe</emphasis +> et représente : </para> +<itemizedlist> + <listitem +><para +>un <emphasis +>dossier</emphasis +> dans lequel effectuer l'installation (&pex;, <filename +>bin</filename +>), </para +></listitem> + <listitem +><para +>un <emphasis +>qualificateur</emphasis +> pour la primaire (&pex;, <varname +>monapp</varname +> pour <varname +>SOURCES</varname +>, indiquant que les fichiers souces répertoriés après <varname +>monapp_SOURCES</varname +> vont construire <filename +>monapp</filename +>), </para +></listitem> + <listitem +><para +>un <emphasis +>préfixe</emphasis +> spécial <varname +>noinst</varname +> (abrégé pour « no installation »), habituellement utilisé pour répertorier les fichiers d'en-têtes du programme (<filename +>.h</filename +>), </para +></listitem> + <listitem +><para +>ou le préfixe spécial <varname +>EXTRA</varname +>, pour tous les éléments <emphasis +>dépendants de la configuration</emphasis +>. </para +></listitem> +</itemizedlist> + +<para +>Pour plus d'informations sur les fichiers <command +>Automake</command +> et <filename +>Makefile.am</filename +>, consultez la page <userinput +>info Automake</userinput +>. </para> +<para +>Avant tout, &automanag; crée et met à jour les noms de variables et les listes de fichiers ou de paramètres. Reportez-vous à l'exemple suivant d'un <filename +>Makefile.am</filename +> pour une application classique, appelée <filename +>monapp</filename +>. </para> + +<screen +>## Makefile.am pour monapp + +# voici le programme en cours d'installation. Son nom est utilisé pour toutes +# les autres variables de Makefile.am +bin_PROGRAMS = monapp + +# définissez le chemin des inclusions pour X, qt et KDE +INCLUDES = $(all_includes) + +# le chemin de recherche des bibliothèques. +monapp_LDFLAGS = $(KDE_RPATH) $(all_libraries) + +# les bibliothèques auxquelles se lier. +monapp_LDADD = $(LIB_KFILE) $(LIB_TDEPRINT) + +# les sources qui devront être compilées pour monapp +monapp_SOURCES = main.cpp monapp.cpp monappvue.cpp + +# voici les en-têtes pour votre projet +noinst_HEADERS = monapp.h monappvue.h + +# demandez à automoc de gérer tous les fichiers sources META (moc) +METASOURCES = AUTO + +KDE_ICON = monapp + +# voici l'endroit où s'insérera le fichier kdelnk +kdelnkdir = $(kde_appsdir)/Utilities +kdelnk_DATA = monapp.desktop + +# voici l'endroit où s'insère le fichier de ressources XML-GUI +rcdir = $(kde_datadir)/monapp +rc_DATA = monappui.rc + +AM_CXXFLAGS = -DMY_C++_PREPROCESSOR_OPTION +</screen> + +<para +>Comme vous pouvez le constater, nombre des éléments du côté droit sont des symboles de la forme <varname +>$(xxx)</varname +>. Ce sont des <emphasis +>variables d'environnement</emphasis +> qui sont définies dans l'environnement &kde; proprement dit et substituées par des valeurs réelles quand <command +>./configure</command +> génère les fichiers <filename +>Makefile</filename +> finaux dans la machine de destination. </para> + +<para +>De plus, quelque temps après avoir démarré avec &tdevelop;, il est judicieux d'exécuter la commande <command +>./configure --help</command +> qui affiche la liste des éléments que vous pouvez changer au moment de la construction et de l'installation, comme pour un environnement de test. En particulier, la commande : <screen> +./configure --prefix=/where/you/wish +</screen +> redirigera l'installation entière vers une structure de dossiers de votre choix, en modifiant la variable interne <varname +>$(prefix)</varname +> vers la valeur <filename class="directory" +>/où/vous/le/souhaitez</filename +>. </para> + +</sect2 +> <!-- automake-file-contents --> + +</sect1 +> <!-- automake-manager-summary --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="automake-manager-operation"> +<title +>Fonctionnement du gestionnaire Automake</title> + +<para +>Vous trouverez dans ce chapitre une description minimale des éléments du gestionnaire Automake et de leur utilisation. Il couvre : <itemizedlist> + <listitem +><para +><link linkend="automake-manager-operation-window" +>La fenêtre du gestionnaire Automake</link +> : décrit la structure de base de la fenêtre principale du gestionnaire Automake. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-survey-window" +>La fenêtre d'affichage global</link +> : décrit les éléments de la sous-fenêtre supérieure. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-detail-window" +>La fenêtre d'affichage détaillé</link +> : décrit les éléments de la sous-fenêtre inférieure. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-navigate" +>Navigation dans la gestionnaire Automake</link +> : répertorie quelques opérations fondamentales que vous pouvez exécuter dans le gestionnaire Automake. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-popups" +>Menus contextuels dans le &automake;</link +> : décrit les fenêtres qui apparaissent lorsque vous choisissez une action dans le &automake;. </para +></listitem> +</itemizedlist> +</para> + +<sect2 id="automake-manager-operation-window"> +<title +>La fenêtre du gestionnaire Automake</title> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automakemanager.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="top" +><itemizedlist> + <listitem +><para +>Le gestionnaire Automake s'exécute dans une fenêtre scindée. La partie supérieure est appelée <emphasis +>Vue globale</emphasis +> et la partie inférieure <emphasis +>Vue détaillée</emphasis +>. Entre les deux, se trouve un barre étroite que l'on peut faire glisser avec la souris pour ajuster la taille des affichages. En mode IDEAl, vous pouvez aussi faire glisser le côté de la fenêtre scindée pour en changer la largeur. </para +></listitem> + <listitem +><para +>Sur la partie supérieure de chaque fenêtre, on trouve une <emphasis +>barre d'outils</emphasis +> dont les boutons seront activés lors de la sélection d'un élément dans cette vue. Celle-ci offre un moyen d'accéder aux actions prévues pour cet élément d'affichage. L'autre concerne les menus contextuels qui apparaissent lorsqu'on clique avec le bouton droit de la souris comme nous le verrons ci-après. </para +></listitem> + <listitem +><para +>En mode IDEAl, il y a deux petits boutons supplémentaires sur le côté gauche de la barre de titre de la fenêtre de l'&automanag; — une flèche droite de forme triangulaire et un bouton à point. Le bouton fléché sert à <emphasis +>fermer la fenêtre</emphasis +>. Le bouton à point quant à lui <emphasis +>gardera la fenêtre ouverte</emphasis +> même si une autre fenêtre &tdevelop; a été sélectionnée. (Sinon, la fenêtre de l'&automanag; se fermera automatiquement chaque fois qu'une autre fenêtre obtient le focus d'entrée.) </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect2 +> <!-- automake-manager-operation-window --> + +<sect2 id="automake-manager-operation-survey-window"> +<title +>La fenêtre globale d'affichage</title> + +<para +>La fenêtre globale d'affichage offre une liste arborescente de tous les dossiers de votre projet qui contiennent des fichiers de programme, de la documentation ou des données. Chaque dossier de ce type contenant un fichier <filename +>Makefile.am</filename +> est connu dans l'&automanag; en tant que <emphasis +>sous-projet</emphasis +>. Il y a trois sous-projets typiques dans un projet basé sur &kde;, comme représenté dans l'illustration ci-dessus : </para> + +<itemizedlist> + <listitem +><para +><filename +>src</filename +> — les fichiers de code source de votre application, </para +></listitem> + <listitem +><para +><filename +>doc</filename +> — votre manuel utilisateur, </para +></listitem> + <listitem +><para +><filename +>po</filename +> — extraits de chaînes dans vos fichiers de code source qui exigent d'être traduits dans d'autres langages humainement compréhensibles (&pex;, des titres de fenêtres, des noms de menus, des étiquettes de boutons, le texte des boîtes de dialogue et des messages de différentes sortes). </para +></listitem> +</itemizedlist> + +<para +>Notez que le sous-projet <filename +>doc</filename +> comporte toujours un sous-projet <filename +>en</filename +> que vous pouvez voir si vous cliquez sur le symbole <symbol +>+</symbol +> à côté du mot <filename +>doc</filename +>. Ceci est dû au fait que la langue de base de toute la documentation de &kde; est en anglais (<emphasis +>en</emphasis +>). Si votre application devient partie intégrante de &kde;, les équipes de traduction de &kde; peuvent traduire votre documentation de l'anglais vers d'autres langues, et les traductions s'intégreront dans d'autres sous-projets, comme <filename +>fr</filename +> (le français), <filename +>de</filename +> (l'allemand). Les chaînes inclues dans le sous-projet <filename +>po</filename +> sont également susceptibles d'être traduites et enregistrées dans d'autres fichiers en <filename +>po</filename +>, ce qui permet à votre application d'être utilisée par des personnes qui ne connaissent pas l'anglais. </para> + +<note +><para +>Les sous-projets <filename +>doc</filename +> et <filename +>po</filename +> servent différents objectifs. <filename +>doc</filename +> contient de la <emphasis +>documentation</emphasis +>, comme un manuel utilisateur, <filename +>po</filename +> contient des chaînes de texte traductibles de <emphasis +>l'interface utilisateur</emphasis +>, qui est intégrée dans le code source de cette application. </para +></note> + +<para +>La fenêtre globale d'affichage sert — entre autres choses — d'outil de navigation. Si vous sélectionnez un sous-projet dans le fenêtre globale d'affichage, les détails correspondant seront affichés dans la fenêtre d'affichage détaillée. </para> + +</sect2 +> <!-- automake-manager-operation-survey-window --> + +<sect2 id="automake-manager-operation-detail-window"> +<title +>La fenêtre d'affichage détaillé</title> + +<para +>La vue détaillée contient une liste arborescente de tous les fichiers du sous-projet actuellement sélectionné dans la vue globale, ainsi que les règles de compilation, de construction et d'installation de ce sous-projet. Ainsi, les deux vues ensemble peuvent vous donner accès à tous les composants de votre application et à toutes les informations sur la manière de compiler, construire et installer celle-ci. </para> + +<sect3> +<title +>Cibles</title> + +<para +>La liste arborescente de la vue détaillée comporte deux niveaux. Le premier niveau consiste en ce qu'on appelle les <emphasis +>cibles</emphasis +> du &automanag; et le second niveau contient des listes de fichiers qui vont composer chaque cible. </para> + +<para +>Ce concept d'une cible du &automanag; diffère quelque peu de ce qu'est d'ordinaire une cible <filename +>Makefile</filename +>. En bref :</para> +<itemizedlist> + <listitem +><para +>La définition de la manière dont il faut compiler, construire ou installer un ensemble de fichiers est connu en tant que <emphasis +>cible</emphasis +> dans le &automanag;, mais comme <emphasis +>variable</emphasis +> dans <command +>Automake</command +> lui-même. </para +></listitem> + <listitem +><para +>Une <emphasis +>cible</emphasis +> dans <command +>make</command +> prend souvent différents aspects : paramètre d'une commande <command +>make</command +> (&pex;, <userinput +>make install</userinput +>, <userinput +>make clean</userinput +>). </para> + <para +>Cependant, certaines variables <filename +>Makefile.am</filename +> représentent une <emphasis +>sous-cible</emphasis +> sous-jacente dans <command +>make</command +>. </para +></listitem> +</itemizedlist> + +</sect3> +</sect2 +> <!-- automake-manager-operation-detail-window --> + +<sect2 id="automake-manager-operation-navigate"> +<title +>Navigation dans le &automanag;</title> + +<para +>Dans la vue globale et la vue détaillée, un clic gauche sur le signe <symbol +>+</symbol +> ou <symbol +>-</symbol +> situé à côté d'un sous-projet ou d'un nom de cible permet de développer ou de réduire la vue arborescente. La même chose avec un <emphasis +>sous-projet</emphasis +> dans la vue globale affiche ou masque les sous-projets au prochain niveau inférieur (s'il y a lieu). SI vous le faites avec une <emphasis +>cible</emphasis +> dans la vue détaillée, vous affichez ou masquez la liste de fichiers qui vont dans cette cible. </para> + +<variablelist> +<varlistentry> +<term +>Ouverture d'un fichier pour édition</term> +<listitem> +<para +>Un <emphasis +>clic avec le &BGS;</emphasis +> sur le nom d'un fichier dans la vue détaillée fait s'ouvrir le fichier correspondant dans la fenêtre d'édition de &tdevelop;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Activation des boutons de barre d'outils du &automanag;</term> +<listitem> +<para +>Un <emphasis +>clic avec le &BGS;</emphasis +> sur le nom d'un sous-projet dans la vue globale ou d'une cible dans la vue détaillée permet de mettre son nom en surbrillance et ainsi d'activer certains boutons de la barre d'outils dans la partie supérieure de cette vue.</para> + +<note> + <para +>Il est recommandé d'utiliser le <emphasis +>bouton droit de la souris et les menus contextuels</emphasis +> au lieu des boutons de la barre d'outils car il est beaucoup plus facile de voir et de comprendre ce que vous faites. </para> + <para +>Les opérations sur les sous-projets et les cibles ont des effets considérables sur la structure, la compilation, la construction et l'installation de votre application. </para> +</note> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Sélection des actions / Menus qui apparaissent</term> +<listitem> +<para +>Un <emphasis +>clic avec le &BDS;</emphasis +> sur le nom d'un sous-projet, d'une cible ou d'un fichier fait apparaître un menu, et vous pouvez alors sélectionner des actions à exécuter sur le sous-projet, la cible ou le fichier, comme ajouter une cible au sous-projet, ajouter un fichier à une cible ou supprimer logiquement le fichier sélectionné de sa cible. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- automake-manager-operation-navigate --> + +<sect2 id="automake-manager-operation-popups"> +<title +>Menus contextuels dans le &automanag;</title> + +<para +>Les sections suivantes décrivent brièvement quelles opérations les menus rendent disponibles, lesquels appraîtront lors de clics avec le bouton droit de la souris dans la fenêtre du &automanag;. Elles sont exclusivement destinées à la vue globale. Vous trouverez des descriptions détaillées de la plupart des opérations dans un chapitre ultérieur. </para> +<!-- ### add a link to this chapter when ready --> + +<sect3 id="automake-manager-operation-popups-file"> +<title +>Le menu contextuel pour un fichier</title> + +<para +>Lorsque vous cliquez avec le &BDS; sur un <emphasis +>nom de fichier</emphasis +> dans la vue détaillée, le menu suivant apparaît, vous permettant de sélectionner une des quelques opérations à effectuer sur ce fichier. Dans l'illustration présentée sous <filename +>hi-16app-monapp.png</filename +>, le fichier d'icône a été sélectionné à partir de la cible <guilabel +>Icônes dans monapp</guilabel +> du sous-projet <guilabel +>monapp/src</guilabel +>. </para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-file-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>L'élément principal du menu contextuel d'un fichier est <guimenuitem +>Supprimer</guimenuitem +> le fichier de sa cible (&cad; qu'il ne sera plus utilisé pour compiler, construire ou installer cette cible). </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>CVS</guimenuitem +> offre une diversité d'opérations <emphasis +>via</emphasis +> CVS sur la fichier. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Ouvrir avec</guimenuitem +> vous permet d'ouvrir le fichier avec divers éditeurs ou n'importe quelle autre application (&pex;, vous pouvez ouvrir le fichier d'icône de notre exemple avec <application +>KIcon</application +>). </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Perforce</guimenuitem +> est employé pour des opérations similaires à celles de CVS avec le système commercial de contrôle de versions « <application +>Perforce</application +> ». </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-file --> + +<sect3 id="automake-manager-operation-popups-target"> +<title +>Le menu contextuel pour une cible</title> + +<para +>Un clic droit sur une <emphasis +>cible</emphasis +> dans la vue détaillée fait apparaître le menu suivant, vous permettant de sélectionner une des quelques opérations à effectuer dessus. Dans l'illustration présentée sous la cible <guilabel +>monapp (programme dans bin)</guilabel +>, la cible du sous-projet <guilabel +>monapp/src</guilabel +> a été sélectionnée. </para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-target-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>L'élément <guimenuitem +>Options</guimenuitem +> pour une cible ne s'applique qu'aux fichiers de code source. Dans la boîte de dialogue correspondante, vous pouvez spécifier les drapeaux d'éditeur de liens et les chemins qui devront servir à repérer les bibliothèques et fournir une liste des bibliothèques réelles à lier dans votre application. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Créer un nouveau fichier</guimenuitem +> fait aparaître une boîte de dialogue dans laquelle vous pouvez définir le nom et le type de fichier à générer (à partir d'une liste déroulante). </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Ajouter les fichiers existants</guimenuitem +> fait apparaître une boîte de dialogue dans laquelle vous pouvez ajouter un fichier déjà existant à cette cible. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Supprimer</guimenuitem +> pour une cible vous permet de supprimer logiquement la cible et tous ses fichiers de la structure de projet. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Construire la cible active</guimenuitem +> ne s'applique qu'aux cibles contenant des fichiers de code source. Les nouveaux fichiers seront toujours ajoutés à ce type de cible active. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Construire la cible</guimenuitem +> appelle toutes les opérations de compilation et de « make » nécessaires pour construire le code pour cette cible exclusivement. </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-target --> + +<sect3 id="automake-manager-operation-popups-subproject"> +<title +>Le menu contextuel pour un sous-projet</title> + +<para +>Lorsque vous cliquez avec le &BDS;. sur un <emphasis +>sous-projet</emphasis +> dans la fenêtre globale d'affichage, le menu suivant apparaît, vous permettant d'apporter des changements majeurs à la structure de votre projet et à la manière dont il est compilé, construit et installé. Vous pouvez l'utiliser pour développer ou modifier la structure de base du projet que l'&appwizard; a créé. </para> + + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-subproject-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>L'élément <guimenuitem +>Options</guimenuitem +> pour un sous-projet contrôle la manière dont le sous-projet sera compilé, construit et installé. La boîte de dialogue qui apparaît comporte des onglets pour le compilateur, les inclusions, les préfixes et l'ordre de construction. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Ajouter un sous-projet</guimenuitem +> crée un nouveau dossier et un un fichier de squelette Makefile.am. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Ajouter une cible</guimenuitem +> fait apparaître une boîte de dialogue dans laquelle vous pouvez définir des règles pour compiler, construire ou installer un groupe de fichiers au sein de votre sous-projet. </para +></listitem> + <listitem +><para +><guimenuitem +>Ajouter un service</guimenuitem +> (... à écrire ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Ajouter une application</guimenuitem +> (... à écrire ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Ajouter un sous-projet existant</guimenuitem +> (... à écrire ...) </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Supprimer un sous-projet</guimenuitem +> dans le menu contextuel pour un sous-projet est le moyen approprié de supprimer un sous-projet. Son rôle est d'ajuster les fichiers <filename +>Makefile.am</filename +> en conséquence. Cette option vous offre également la possibilité de supprimer tous les fichiers (ou les liens) dans le sous-dossier correspondant. Bien évidemment, cette fonctionnalité devra être utilisée avec prudence. </para +></listitem> + <listitem +><para +>L'élément <guimenuitem +>Construire</guimenuitem +> appelle toutes les opérations de compilation et de « make » nécessaires pour construire le code de ce sous-projet exclusivement. </para +></listitem> + <listitem +><para +><guimenuitem +>Forcer la réédition</guimenuitem +> (... à écrire ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Nettoyer</guimenuitem +> (... à écrire ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Installer</guimenuitem +> (... à écrire ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Installer (utilisateur « root »)</guimenuitem +> (... à écrire ...) </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-subproject --> + +</sect2 +> <!-- automake-manager-operation-popups --> + +</sect1 +> <!-- automake-manager-operation --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="autoproject"> +<title +>Projets Automake</title> +<indexterm zone="autoproject" +><primary +><command +>autoproject</command +></primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&automake;</primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&autoconf;</primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&libtool;</primary +></indexterm> + +<para +>(... à écrire ...) </para> + + +<sect2 id="autoconf"> +<title +>Autoconf</title> +<indexterm zone="autoconf" +><primary +>script <filename +>configure</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +>script <filename +>config.status</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>Makefile.in</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>config.h.in</filename +></primary +></indexterm> + +<para +><filename +>Makefile.in</filename +> en <filename +>Makefile</filename +> </para> + +<programlisting +>prefix = @prefix@ +INSTALL = @INSTALL@ +build_triplet = @build@ +CXX = @CXX@ +</programlisting> + +<programlisting +>prefix = /home/bernd/kde3 +INSTALL = /usr/bin/ginstall -c -p +build_triplet = i686-pc-linux-gnu +CXX = g++ +</programlisting> + +<para +><filename +>config.h.in</filename +> en <filename +>config.h</filename +> </para> + +<programlisting +>/* Précisez si vous avez libz */ +#undef HAVE_LIBZ +/* La taille d'un « int », comme calculé par sizeof. */ +#undef SIZEOF_INT +</programlisting> + +<programlisting +>/* Précisez si vous avez libz */ +#define HAVE_LIBZ 1 +/* La taille d'un « int », comme calculé par sizeof. */ +#define SIZEOF_INT 4 +</programlisting> + +</sect2 +> <!-- autoconf --> + + +<sect2 id="automake"> +<title +>Automake</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!--automake --> + + +<sect2 id="automake-manager"> +<title +>L'&automanag; de &tdevelop;</title> + +<figure id="screenshot-automake-manager" float="1"> +<title +>Une capture d'écran du gestionnaire Automake</title> +<mediaobject> +<imageobject +><imagedata fileref="automake-manager.png"/></imageobject> +</mediaobject> +</figure> + +</sect2 +> <!-- automake-manager --> + + +<sect2 id="automakelibrary"> +<title +>Construction et installation des bibliothèques</title> + +<para> +<itemizedlist> +<listitem +><para +>-rpath </para +></listitem> +<listitem +><para +>PIC </para +></listitem> +<listitem +><para +>static </para +></listitem> +<listitem +><para +>modules externes non indéfinis </para +></listitem> +</itemizedlist> +</para> + +</sect2 +> <!-- automakelibrary --> + +</sect1 +> <!-- autoproject --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="customproject"> +<title +>Makefiles personnalisés et scripts de construction</title> +<indexterm zone="customproject" +><primary +><filename +>Makefile</filename +></primary +></indexterm> +<indexterm zone="customproject" +><primary +><filename +>build.xml</filename +></primary +></indexterm> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- customproject --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="compileroptions"> +<title +>Options du compilateur</title> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- compileroptions --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="makeoptions"> +<title +>Options de Make</title> + +<para +>(... à écrire ...) </para> + +</sect1 +> <!-- makeoptions --> + +</chapter +> <!-- project-management --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/setup.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/setup.docbook new file mode 100644 index 00000000000..f7e822ab68d --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/setup.docbook @@ -0,0 +1,2995 @@ +<chapter id="setup"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Configurer &tdevelop;</title> + +<para +>&tdevelop; est un EDI très puissant et très souple, qui offre de nombreuses façons de l'adapter à vos besoins. Pour démarrer la configuration, cliquez sur <menuchoice +><guimenu +>Configuration</guimenu +><guimenuitem +>Configurer KDevelop...</guimenuitem +></menuchoice +>. S'ouvre alors la boîte de dialogue de configuration composée d'une fenêtre de sélection dans la partie gauche et de la boîte de dialogue de configuration dans la partie droite, dont le contenu varie en fonction de l'élément de configuration que vous avez choisi. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-select.png" format="PNG"/> + </imageobject> +<textobject> +<phrase +>Sélectionnez un élément de configuration</phrase> +</textobject> + <caption +><para +>Sélectionnez un élément de configuration </para +></caption> + </mediaobject> +</screenshot> + +<para +>Nous aborderons ces configurations dans un ordre différent, en les divisant en thèmes principaux : <link linkend="setup-general" +>Configuration générale</link +>, <link linkend="setup-docu" +>Configuration de la documentation</link +> et <link linkend="setup-advanced" +>Configuration avancée</link +>, ce qui contribue à une lecture plus intuitive. </para> +<para +>Si vous souhaitez consulter un certain élément de configuration directement, utilisez l'un des liens suivants. </para> + +<simplelist> + <member +><link linkend="setup-main" +>Général</link +></member> + <member +><link linkend="setup-ui" +>Interface utilisateur</link +></member> + <member +><link linkend="setup-templates" +>Modèles de fichier</link +></member> +<member +><link linkend="setup-editor" +>Éditeur</link +></member> + <member +><link linkend="setup-abbrev" +>Abréviations</link +></member> + <member +><link linkend="setup-scripting" +>Scriptage</link +></member> + <member +><link linkend="setup-menu-standard" +>Menu des outils</link +></member> + <member +><link linkend="setup-menu-external" +>Outils externes</link +></member> + <member +><link linkend="setup-docu" +>Documentation</link +></member> + <member +><link linkend="setup-snippets" +>Fragments de code</link +></member> + <member +><link linkend="setup-file-list" +>Liste des fichiers</link +></member> + <member +><link linkend="setup-file-selector" +>Sélecteur de fichiers</link +></member> + <member +><link linkend="setup-cpp-generator" +>Générateur de classes C++</link +></member> + <member +><link linkend="setup-format" +>Formatage</link +></member> + <member +><link linkend="setup-cpp-parsing" +>Analyse de la syntaxe C++</link +></member> +</simplelist> + +<sect1 id="setup-general"> +<title +>Configuration générale</title> + +<para +>La configuration générale concerne les tâches les plus courantes pour ajuster &tdevelop;, puisqu'il s'agit des aspects suivants : </para> +<itemizedlist> + <listitem +><para> + <link linkend="setup-main" +>Configuration générale</link> + </para +></listitem> + <listitem +><para> + <link linkend="setup-ui" +>Sélectionner l'interface utilisateur</link> + </para +></listitem> + <listitem> + <itemizedlist> +<title +>Tâches d'édition des sources</title> + <listitem +><para> + <link linkend="setup-editor" +>Sélectionner un éditeur</link> + </para +></listitem> + <listitem +><para> + <link linkend="setup-format" +>Sélectionner un style de format source</link> + </para +></listitem> + <listitem +><para> + <link linkend="setup-snippets" +>Configurer l'outil « Fragments de code »</link> + </para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para> + <link linkend="setup-file-selector" +>Configurer le sélecteur de fichiers</link> + </para +></listitem> +</itemizedlist> + +<sect2 id="setup-main"> +<title +>Configuration générale</title> + +<para +>La boîte de dialogue de configuration <guilabel +>Général</guilabel +> permet de définir un comportement de base de &tdevelop;, qui changera rarement dans le travail quotidien. Celle-ci porte sur : </para> + +<variablelist> +<varlistentry> +<term +>Les options générales du projet comme</term> +<listitem> + <itemizedlist> + <listitem +><para +>définir un <link linkend="setup-main-projects" +>dossier parent par défaut</link +> que &tdevelop; devra utiliser pour les nouveaux projets. </para +></listitem> + <listitem +><para +>décider si vous souhaitez que &tdevelop; <link linkend="setup-main-preload" +>charge automatiquement</link +> le projet sur lequel vous avez travaillé en dernier lieu. </para +></listitem> + </itemizedlist> + </listitem> +</varlistentry> + +<varlistentry> +<term +>La sélection d'une police pour les fenêtres de sortie les plus couramment utilisées, à savoir :</term> +<listitem> + +<itemizedlist> +<listitem> +<para +>l'<link linkend="setup-main-messages-font" +>affichage des messages de sortie</link +> que &tdevelop; utilise pour communiquer &pex; l'avancement de la compilation, et</para> +</listitem> +<listitem> +<para +>la fenêtre de sortie de l'application qui indiquera des informations d'erreur et d'état concernant une application en cours d'exécution.</para> +</listitem> +</itemizedlist> + +</listitem> +</varlistentry> + +<varlistentry> +<term +>Un comportement courant portant sur les lignes affichées dans la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +>, à savoir :</term> +<listitem> + <itemizedlist> +<listitem> +<para +>si les longues lignes <link linkend="setup-main-wrap" +>seront coupées automatiquement</link +> et </para> +</listitem> +<listitem> +<para +>si les <link linkend="setup-main-navigation" +>messages d'entrée et de sortie du dossier</link +> émis par <command +>make</command +> seront affichés.</para> +</listitem> +</itemizedlist> + +<para +>Le <link linkend="setup-main-compile" +>niveau de détail</link +> des messages concernant le processus de compilation affiché dans la <guilabel +>fenêtre des messages de sortie</guilabel +>.</para> +</listitem> +</varlistentry> +</variablelist> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-general.png" format="PNG"/> + </imageobject> + <caption +><para +>La boîte de dialogue de configuration générale </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term id="setup-main-preload" +><guilabel +>Ouvrir le dernier projet au démarrage</guilabel +></term> +<listitem> +<para +>Cochez cette case si vous souhaitez continuer à travailler avec le dernier projet sur lequel vous avez travaillé. Cette action amènera &tdevelop; à charger automatiquement ce projet au démarrage. Il sera habituellement affiché dans l'état où vous l'avez laissé, de sorte que vous pouvez continuer sans problème. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-projects"> +<guilabel +>Dossier par défaut des projets</guilabel +></term> +<listitem> +<para +>Par défaut, &tdevelop; utilise un dossier parent commun pour tous les nouveaux projets. Saisissez le chemin absolu de ce dossier commun dans le champ prévu ou sélectionnez-le dans votre structure de dossier. &tdevelop; y placera tout nouveau projet en tant que sous-dossier.</para> +<note +><para +>Vous pouvez bien sûr changer le chemin du dossier d'un nouveau projet au moment où vous le configurez dans l'<link linkend="applicationwizard" +>&appwizard;</link +>. </para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-messages-font" +><guilabel +>Police de caractères</guilabel +></term> +<listitem> +<para +>La fenêtre <guilabel +>Vue de la sortie de l'application</guilabel +> est utilisée pour afficher des informations d'erreur et d'état provenant des applications exécutées depuis &tdevelop;. Ce sont des informations que les applications envoient habituellement à la console lorsque exécutée en mode autonome. Vous n'avez donc pas à quitter l'EDI lorsque vous testez l'application sur laquelle vous travaillez actuellement. </para> +<para +>Pour sélectionner une police appropriée pour la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +>, cliquez sur le bouton <guilabel +>Police de caractères</guilabel +> affichant la police actuellement sélectionnée (« Luxi Sans » dans l'illustration ci-dessus). La boîte de dialogue standard de &kde;<guilabel +>Choisir une police</guilabel +> apparaît, dans laquelle vous pouvez sélectionner la police à utiliser. </para> +<note +><para +>Au premier lancement, &tdevelop; initialise ce paramètre de police à la police standard pour laquelle votre utilisateur &kde; a été configuré. Comme <emphasis +>ce réglage est fixe</emphasis +>, si vous modifiez <menuchoice +><guimenuitem +>Préférences</guimenuitem +><guimenuitem +>Apparence et thèmes</guimenuitem +><guimenuitem +>Polices</guimenuitem +></menuchoice +> dans le <guilabel +>Centre de configuration</guilabel +>, il n'affecte pas cette sélection de police de &tdevelop;. Vous devrez sélectionner à nouveau explicitement la police de la fenêtre <guilabel +>Vue des messages de sortie</guilabel +>. </para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-compile" +><guilabel +>Sortie du compilateur</guilabel +></term> +<listitem> +<para +>&tdevelop; prétraite les messages que reçoit la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +> pendant les processus de construction, afin de filtrer les informations superflues. Vous pouvez contrôler le niveau de détail que &tdevelop; affichera à l'aide des boutons radio dans ce champ. </para> +<variablelist> +<varlistentry> +<term +><guilabel +>Très courte</guilabel +></term> +<listitem +><para +>N'affiche que les avertissements, erreurs et noms de fichiers qui sont compilés. </para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Courte</guilabel +></term> +<listitem +><para +>Supprime tous les drapeaux du compilateur et formate la sortie pour une meilleure lisibilité. </para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Complète</guilabel +></term> +<listitem +><para +>Affiche tous les messages de sortie sans modification. </para +></listitem> +</varlistentry> +</variablelist> + +<tip +><para +>Il y a une autre manière de changer le niveau de détail de la sortie du compilateur. Cliquez simplement avec le &BDS; dans la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +> et sélectionnez le niveau de détail souhaité dans le menu qui apparaît. </para +></tip> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-wrap" +><guilabel +>Coupure des lignes</guilabel +></term> +<listitem> +<para +>Par défaut, &tdevelop; coupe les longues lignes dans la fenêtre <guilabel +>Vue des messages de sortie</guilabel +> pour que des informations utiles ne passent pas facilement inaperçues. Dans certains cas, ce réglage ne fera qu'encombrer de longues listes de messages. Décochez la case si vous ne souhaitez pas de coupures de lignes. </para> +<tip +><para +>Il y a une autre manière d'activer la coupure des lignes. Cliquez simplement avec le &BDS; dans la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +>, cochez ou décochez l'élément <guimenuitem +>Coupure des lignes</guimenuitem +> dans le menu qui apparaît. </para +></tip> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-navigation" +><guilabel +>Messages de navigation dans les dossiers</guilabel +></term> +<listitem> +<para +>L'outil <command +>Make</command +> affiche habituellement des messages comme « Ouverture du dossier » ou « Fermeture du dossier » lorsqu'il navigue dans les dossiers dans lesquels il s'exécute actuellement. Comme ces lignes encombrent la liste de messages dans la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +>, &tdevelop; supprime ces messages par défaut. Cochez la case si vous souhaitez consigner les dossiers dans lesquels <command +>make</command +> s'est exécuté. </para> +<note +><para +>Les changements de ce réglage affectent uniquement le traitement des nouveaux messages. Les messages correspondant à la navigation dans les anciens dossiers restent visibles lorsque vous désactivez cette fonctionnalité. </para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term id="ui-designer-integration" +><guilabel +>Intégration du concepteur d'interfaces graphiques</guilabel +></term> +<listitem> +<para +>Cette fonction vous permet de choisir la manière dont vous souhaitez que les fichiers <filename +>.ui</filename +> soient affichés dans &tdevelop;. &tdevelop; est livré avec son propre concepteur d'interfaces utilisateur appelé KDeveDesigner, qui peut soit être imbriqué soit lancé en tant que programme séparé. Qt Designer peut également être utilisé pour modifier des fichiers <filename +>.ui</filename +>. </para> +<itemizedlist> + <listitem +><para +>Utiliser le concepteur imbriqué de &tdevelop; </para +><para +>This uses &tdevelop; own designer embedded within &tdevelop;</para +></listitem> + <listitem +><para +>Exécuter le concepteur de &tdevelop; en tant qu'application séparée </para +><para +>L'application KDevDesigner sera exécutée séparément dans sa propre fenêtre.</para> +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="kdevdesigner.png" format="PNG"/> + </imageobject> + <caption +><para +>KDevDesigner dans sa propre fenêtre </para +></caption> + </mediaobject> +</screenshot> +</listitem> + <listitem +><para +>Lancer Qt Designer </para +><para +>Qt Designer depuis votre installation Qt sera démarré de façon externe à chaque fois que vous cliquez sur un fichier <filename +>.ui</filename +> dans &tdevelop;.</para +></listitem> +</itemizedlist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="terminal-emulation" +><guilabel +>Émulation de terminal</guilabel +></term> +<listitem> +<para +>Choisissez ici le terminal que vous voulez voir intégré dans KDevelop. </para> +<itemizedlist> + <listitem +><para +>Utiliser le réglage de &kde; </para +><para +>Ce comportement utilise le réglage de &kde; comme défini dans &kcontrol; dans l'onglet <guilabel +>Composants de &kde;</guilabel +> <guilabel +>Sélecteur de composants</guilabel +> qui définit l'émulateur par défaut utilisé par toutes les applications &kde; qui nécessitent un terminal.</para +></listitem> + <listitem +><para +>Autre </para +><para +>Choisissez un autre terminal différent de celui configuré par défaut.</para> +</listitem> +</itemizedlist> +</listitem> +</varlistentry> + +</variablelist> + +</sect2 +> <!-- setup-main --> + +<sect2 id="setup-ui"> +<title +>Sélectionner l'interface utilisateur</title> + +<indexterm zone="setup-ui"> + <primary +>interface utilisateur</primary> + <secondary +>modes de commutation</secondary +></indexterm> +<indexterm zone="setup-ui"> + <primary +>modes de commutation des interfaces utilisateur</primary +></indexterm> + +<para +>Comme déjà indiqué dans le chapitre <link linkend="uimodes-survey" +>Modes d'interface utilisateur disponibles</link +>, il y a quatre manières différentes de configurer la zone de travail de &tdevelop;, à savoir : </para> +<itemizedlist> + <listitem +><para> + <link linkend="ideal-desc" +>Mode fenêtre IDEAl simplifié</link> + </para +><para +>IDEAl</para +></listitem> + <listitem +><para> + <link linkend="ideal-desc" +>Mode fenêtre IDEAl</link> + </para +><para +>Il s'agit d'un clone de l'interface utilisateur IDEA, similaire au mode fenêtre d'onglets, et c'est le mode par défaut.</para +></listitem> + <listitem +><para> + <link linkend="mdi-desc" +>Mode fenêtre enfant</link> + </para +><para +>Toutes les vues des outils sont initialement intégrées à la fenêtre principale. Les vues de l'éditeur et du navigateur résideront comme les fenêtres de premier niveau dans une zone d'affichage de la fenêtre principale. Un exemple typique de ce mode d'interface utilisateur est MS Visual Studio 6.0.</para +></listitem> + <listitem +><para> + <link linkend="tabbed-desc" +>Mode fenêtre d'onglets</link> + </para +><para +>Toutes les vues des outils sont initialement intégrées à la fenêtre principale. Les vues de l'éditeur et du navigateur seront superposées dans une fenêtre à onglets. Un exemple typique de ce mode d'interface utilisateur est KDEStudio, notre EDI C++-ami dans le monde de KDE.</para +></listitem> + <listitem +><para> + <link linkend="toplevel-desc" +>Mode fenêtre au premier niveau</link> + </para +><para +>Toutes les vues des outils, de l'éditeur et du navigateur seront des fenêtres de premier niveau (directement sur le bureau). L'élément graphique (widget) principal contient le menu, les barres d'outils et la barre d'état uniquement. Un exemple typique de ce mode d'interface utilisateur est Borland Delphi 6.0.</para +></listitem> +</itemizedlist> + +<para +>Pour changer de mode d'interface utilisateur, sélectionnez <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer &tdevelop;...</guimenuitem +> </menuchoice +> dans les menus. La boîte de dialogue <guilabel +>Configurer KDevelop</guilabel +> apparaît, dans laquelle vous devrez sélectionner <guilabel +>Interface utilisateur</guilabel +> dans l'arborescence de la partie gauche. S'affichera alors la boîte de dialogue des réglages suivants dans la partie droite.</para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="select-user-interface-0.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Sélectionner un mode d'interface utilisateur</phrase +></textobject> + <caption +><para +>Sélectionner un mode d'interface utilisateur </para +></caption> + </mediaobject> +</screenshot> + +<para +>Clquez sur le bouton radio du mode d'interface utilisateur vers lequel vous souhaitez basculer, puis sur <guibutton +>OK</guibutton +>. </para> + +<note +><para +>N'oubliez pas de redémarrer &tdevelop; afin que l'un quelconque de ces choix prenne effet. </para +></note> + +<para +>Lorsque vous avez sélectionné soit le <guilabel +>mode fenêtre IDEAl simplifié</guilabel +> soit le <guilabel +>mode fenêtre IDEAl</guilabel +>, deux ou plusieurs sections de configuration deviennent disponibles : <link linkend="setup-ui-tabs" +>Utiliser des onglets</link +> et <link linkend="setup-ui-hover" +>Utiliser la fermeture sur l'onglet au survol</link +>. Celles-ci permettent de décider dans quelles circonstances les onglets seront affichés en haut des fenêtres du document et si vous pouvez fermer le document par un clic sur l'icône de l'onglet. </para> + +<para +>En <guilabel +>mode fenêtre IDEAl simplifié</guilabel +> et en <guilabel +>mode fenêtre IDEAl</guilabel +>, une seule autre section de configuration sera disponible, <link linkend="setup-ui-toolview" +>Disposition de l'onglet de la vue des outils</link +>, qui permet effectivement de choisir entre différentes tailles des onglets de la vue des outils qui entourent la zone de travail principale dans ce mode. </para> + +<variablelist> +<varlistentry> +<term id="setup-ui-tabs" +>Configuration de l'affichage de la barre d'onglets des documents</term> +<listitem> +<para +>Comme dans les modes IDEAl et fenêtre d'onglets, il y aura des onglets nommés au début des fenêtres du document par défaut, vous pouvez facilement sélectionner différents documents d'un clic avec le &BGS;. Si vous préférez prévoir plus d'espace pour les fenêtres de document dans la zone de travail principale de &tdevelop;, vous pouvez changer ce comportement dans la section de configuration <guilabel +>Utiliser des onglets</guilabel +>. </para> + +<variablelist> +<varlistentry> + <term +><guilabel +>Toujours</guilabel +></term> + <listitem +><para +>C'est le comportement par défaut — affiche un onglet comprenant une icône et le nom du document en haut de toute fenêtre de document dans l'affichage de la fenêtre principale de &tdevelop;. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Lorsque plus d'un onglet</guilabel +></term> + <listitem +><para +>Ne fait pas apparaître d'onglet quand un seul document est affiché. S'il y a plus d'un document, cependant, &tdevelop; affichera une barre d'onglets en conséquence dans comme dans la sélection <guilabel +>Toujours</guilabel +> ci-dessus. Vous pouvez être amené à sélectionner ce mode si vous travaillez sur un seul document la plupart du temps car il offre plus d'espace vertical. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Jamais</guilabel +></term> + <listitem +><para +>N'affiche jamais d'onglet de sélection de document. Il se peut que vous préfériez ce mode si vous employez rarement la souris pour passer d'un document à l'autre. Il offre plus d'espace vertical pour toutes les fenêtres de document. Pour sélectionner une autre fenêtre de document ou en fermer une quelconque, faites appel au menu <guimenu +>Fenêtre</guimenu +> de &tdevelop;. </para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-ui-hover" +>Configuration de la fermeture d'un document par un clic sur son onglet</term> +<listitem> +<para +>Lorsque vous avez configuré &tdevelop; pour afficher la barre d'onglets des documents, soit toujours, soit quand plus d'un document est affiché dans la zone de travail principale, vous pouvez ajouter plus de fonctionnalité aux onglets en plus de leur capacité de sélection de document. Faites appel à la section de configuration <guilabel +>Utiliser la fermeture sur l'onglet au survol</guilabel +> pour ce faire. </para> + +<variablelist> +<varlistentry> + <term +><guilabel +>Non</guilabel +></term> + <listitem +><para +>C'est le comportement par défaut. Aucune fonctionnalité supplémentaire n'est ajoutée aux onglets. Ils ne peuvent être employés que pour sélectionner des fenêtres de document lors de clics avec le &BGS;. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Oui</guilabel +></term> + <listitem +><para +>Quand vous avez cliqué sur ce bouton radio, &tdevelop; permet de fermer une fenêtre de document d'un clic avec le &BGS;. Utilisez la souris pour pointer sur la petite icône située sur le bord gauche de l'onglet. Elle se transforme en un symbole de fermeture. Cliquez maintenant avec le &BGS; sur ce symbole modifié. &tdevelop; ferme la fenêtre de document correspondante. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Oui, mais non immédiat</guilabel +></term> + <listitem +><para +>Après avoir cliqué sur ce bouton radio, &tdevelop; permet de fermer une fenêtre de document comme décrit dans le cas <guilabel +>Oui</guilabel +> ci-dessus. L'icône ne changera pas instantanément, cependant, mais il y aura un bref délai avant que l'icône de fermeture n'apparaisse. </para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-ui-toolview" +>Configuration de la disposition de la barre d'onglets</term> +<listitem> +<para +>La section de configuration <guilabel +>Disposition de la barre d'onglets</guilabel +> n'est disponible qu'en mode IDEAl. Utilisez ces boutons radio pour configurer l'aspect des barres d'onglets qui entourent la zone de travail principale dans ce mode. </para> + +<variablelist> +<varlistentry> + <term +><guilabel +>Icônes</guilabel +></term> + <listitem> + <para +>Chaque onglet présente une icône uniquement. Si la vue des outils associée est affichée, l'onglet s'ouvre et un texte descriptif de cette vue des outils apparaît. Vous pouvez être amené à utiliser ce mode si vous travaillez sur un moniteur doté d'une définition limitée. </para> + <para +>Les icônes ne sont pas très descriptives néanmoins. Si vous souhaitez découvrir quelle vue des outils est affectée à un onglet donné, pointez dessus avec la souris et attendez une seconde. Une petite bulle d'aide apparaît avec le nom de la vue des outils. </para> + </listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Texte</guilabel +></term> + <listitem +><para +>C'est le mode d'affichage par défaut de la barre d'onglets. Chaque onglet affiche le nom de sa vue d'outils associée. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Texte et icônes</guilabel +></term> + <listitem +><para +>Si l'affichage des barres d'onglets standard « Texte » vous semble trop plat et que vous travaillez sur un moniteur à haute définition, vous pouvez être amené à cliquer sur ce bouton radio. Vous obtiendrez alors l'affichage du nom de la vue des outils associée, plus une icône sur la gauche de cette dernière qui permet de distinguer plus facilement les onglets. L'illustration <link linkend="folded-toolview-tabs" +>Onglets pliés de la vue des outils</link +> ci-dessous en montre un exemple. </para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Onglets pliés de la vue des outils</term> +<listitem> +<para +>Si vous avez choisi que les onglets des vues des outils du mode IDEAl affichent du texte (avec ou sans icônes d'accompagnement), ne vous préoccupez pas du fait qu'ils soient cachés derrière une fenêtre de vue des outils. Si une des fenêtres inférieures des vues des outils occupe plus d'espace que disponible pour afficher tous les onglets (verticaux), ceux-ci se replient comme le montre cette illustration : </para> + +<screenshot> + <mediaobject id="folded-toolview-tabs"> + <imageobject> + <imagedata fileref="folded-tabs.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Les onglets des vues des outils se plient pour ne pas être cachés derrière une autre fenêtre de vue</phrase +></textobject> + <caption +><para +>Les onglets des vues des outils se plient pour ne pas être cachés derrière une autre fenêtre de vue </para +></caption> + </mediaobject> +</screenshot> + +<note +><para +>La fenêtre des vues des outils active doit être affichée de façon fixe (non en mode superposé), partageant la zone de travail avec les autres fenêtres, pour imposer ce type de pliage d'onglets. Cliquez sur le petit carré situé sur le bord de la fenêtre pour l'obtenir, comme illustré dans l'exemple. </para +></note> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- setup-ui --> + +<sect2 id="setup-templates"> +<title +>Modèles de fichiers</title> +<!--TODO fill--><para +></para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-file-templates.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configurer les modèles de fichiers</phrase +></textobject> + <caption +><para +>Configurer les modèles de fichiers </para +></caption> + </mediaobject> +</screenshot> +</sect2 +> <!-- setup-templates --> + +<sect2 id="setup-editor"> +<title +>Sélectionner un éditeur</title> + +<para +>&tdevelop; vous permet de choisir votre outil d'édition de texte favori. Cochez l'élément <guilabel +>Éditeur</guilabel +> dans l'arborescence de sélection, sur la partie gauche de la fenêtre <guilabel +>Configurer KDevelop</guilabel +>. La boîte de dialogue suivante s'affichera sur la partie droite. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-editor.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Sélectionner un éditeur</phrase +></textobject> + <caption +><para +>Sélectionner un éditeur </para +></caption> + </mediaobject> +</screenshot> + +<para +>Pour sélectionner un nouvel éditeur, cliquez sur la flèche située dans le champ de la liste déroulante. En fonction des interfaces de composants d'édition que votre version de &kde; a compilées, vous voyez apparaître une liste d'éditeurs dans laquelle vous pouvez faire votre choix (voir la note <link linkend="setup-editor-kparts" +>Important</link +> ci-dessous à ce sujet). Cliquez sur l'éditeur qui vous convient et confirmez par <guilabel +>OK</guilabel +>. Il y a actuellement trois possibilités : </para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Éditeur de texte avancé intégré</guilabel +></term> + <listitem +><para +>C'est le composant d'édition <application +>Kate</application +> standard de &kde;. </para +></listitem> + </varlistentry> + + <varlistentry> + <term +><guilabel +>Éditeur de texte basé sur Qt Designer</guilabel +></term> + <listitem +><para +>C'est l'éditeur que fournit &Qt; dans son composant <application +>Designer</application +>. </para +></listitem> + </varlistentry> +</variablelist> + +<para +>Ces interfaces d'éditeur sont entièrement intégrées dans le concept d'EDI &tdevelop;. En particulier, la possibilité de sauter à la ligne de code source incriminée en cliquant simplement sur un message d'erreur dans la fenêtre <guilabel +>Affichage des messages de sortie</guilabel +> a été prévue. </para> + +<note +><para +>Changer d'éditeur n'aura aucun effet sur les fichiers déjà ouverts. Il y a deux possibilités pour continuer : soit fermer toutes les fenêtres de texte ouvertes et les rouvrir une par une, soit simplement fermer le projet entier et le rouvrir. Les fenêtres s'ouvriront alors automatiquement sous la nouvelle interface d'éditeur de texte. </para +></note> + +<important id="setup-editor-kparts" +><para +>KDevelop vous permet d'employer les interfaces d'éditeur qui ont été déclarées avec &kde; et qui fournissent une interface KatePart. S'il vous manque une des sélections mentionnées ci-dessus, vérifiez dans votre installation &kde; si le composant KPart correspondant a été correctement installé. </para +></important> + +<para +>Que faire si le fichier a été modifié par un programme externe :</para> +<variablelist> + <varlistentry> + <term +><guilabel +>Ne rien faire</guilabel +></term> + <listitem +><para +>Le fichier sera marqué comme modifié par un programme externe et l'utilisateur sera invité à vérifier toute tentative d'écrasement de ce fichier. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Alerter l'utilisateur</guilabel +></term> + <listitem +><para +>Une boîte de dialogue avertira l'utilisateur qu'un fichier a été modifié et invitera l'utilisateur à recharger le fichier. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Recharger automatiquement le fichier s'il n'y a aucun danger, et alerter l'utilisateur sinon</guilabel +></term> + <listitem +><para +>Tout fichier qui n'a pas été modifié en mémoire est rechargé et une alerte affichée pour tout conflit. </para +></listitem> + </varlistentry> +</variablelist> +</sect2 +> <!-- setup-editor --> + +<sect2 id="setup-abbrev"> +<title +>Abréviations pour le complétement des mots</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- setup-abbrev --> + +<sect2 id="setup-scripting"> +<title +>Scriptage</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- setup-scripting --> + +<sect2 id="setup-menu-standard"> +<title +>Ajout d'applicatons &kde; standard au menu Outils</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- setup-menu-standard Tools Menu--> + +<sect2 id="setup-menu-external"> +<title +>Ajout d'applications externes aux menus</title> + +<para +>(... à écrire ...) </para> + +<sect3 id="setup-menu-external-tools"> +<title +>Ajout aux menu Outils</title> + +<para +>(... à écrire ...) </para> +</sect3 +> <!-- setup-menu-external-tools --> + +<sect3 id="setup-menu-external-filecontext"> +<title +>Ajout au menu contextuel Fichier</title> + +<para +>(... à écrire ...) </para> +</sect3 +> <!-- setup-menu-external-filecontext --> + +<sect3 id="setup-menu-external-dircontext"> +<title +>Ajout au menu contextuel Dossier</title> + +<para +>(... à écrire ...) </para> +</sect3 +> <!-- setup-menu-external-dircontext --> + +</sect2 +> <!-- setup-menu-external --> + +<sect2 id="setup-format"> +<title +>Sélection d'un style de format source</title> + +<para +>&tdevelop; formate automatiquement un texte source dans un style prédéfini. Ce style est extrêmement configurable. </para> + +<note +><para +>La fonctionnalité de reformatage du code source est actuellement disponible pour C, C++ et &Java; uniquement. En particulier, vous ne pouvez pas l'utiliser pour les langages de scriptage comme PHP &pex;. C'est parce que &tdevelop; emploie l'application <ulink url="http://astyle.sourceforge.net/" +>astyle</ulink +> pour implémenter cette fonctionnalité. </para +></note> + +<para +>Pour configurer un style de format donné, sélectionnez <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer &tdevelop;...</guimenuitem +> </menuchoice +> dans la barre de menus. La boîte de dialogue <guilabel +>Configurer KDevelop</guilabel +> apparaît, dans laquelle vous sélectionnerez <guilabel +>Formatage</guilabel +> dans l'arborescence de la partie gauche. S'affiche alors une série de trois onglets de boîtes de dialogue à droite, à savoir <link linkend="setup-format-general" +>Général</link +>, <link linkend="setup-format-indent" +>Indentation</link +> et <link linkend="setup-format-other" +>Autre</link +>. </para> + +<tip +><para +>Tout changement de style s'applique au texte qui vient d'être saisi uniquement. Si vous voulez changer le style de formatage d'un texte source déjà existant, vous devrez utiliser explicitement la commande <menuchoice +><guimenu +>Édition</guimenu +><guimenuitem +>Reformater le code source</guimenuitem +></menuchoice +>. </para +></tip> + +<note +><para +>Le résultat exact de ces définitions de formatage de style dépend de l'<link linkend="setup-editor" +>éditeur</link +> dont vous vous servez. Actuellement, la plupart des réglages sont adaptés au composant d'édition Kate (l'éditeur « de texte avancé intégré »). Quelques autres éditeurs (&pex;, l'éditeur de Qt) peuvent se fonder sur leurs propres réglages de configuration. Essayez dans ce cas de découvrir les effets exacts des paramètres de style prévus ici. </para +></note> + +<warning +><para +>Il se peut qu'il y ait des incompatibilités entre les paramètres de configuration de style fournis ici et l'éditeur que vous utilisez, au point même de risquer, dans des cas extrêmes, de détruire vos fichiers. Veillez à avoir une sauvegarde de vos fichiers sources avant d'essayer ces réglages avec un éditeur standard non KDE. </para +></warning> + +<sect3 id="setup-format-general"> +<title +>Configuration générale du formatage</title> + +<para +>L'onglet <guilabel +>Général</guilabel +>de la boîte de dialogue <guilabel +>Formatage des fichiers sources</guilabel +> vous permet de choisir un des cinq styles prédéfinis de format des fichiers sources. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="SF-general.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration générale du style de formatage des sources</phrase +></textobject> + <caption +><para +>Configuration générale du style de formatage des sources </para +></caption> + </mediaobject> +</screenshot> + +<para +>Un exemple de fichier source formaté sera affiché dans le champ situé à droite. Si aucun des styles prédéfinis n'est à votre goût, cliquez sur le bouton radio <guilabel +>Défini par l'utilisateur</guilabel +> du haut et définissez vos propres préférences de style de formatage des sources sur les deux autres onglets qui deviendront alors disponibles. </para> + +<note +><para +>Actuellement, seuls les styles prédéfinis de formatage des sources seront présentés par un exemple de texte. Si vous décidez de définir votre propre style, aucun exemple d'affichage ne sera disponible. Vous devez l'expérimenter sur un texte source réel ou adapter les réglages à votre goût. </para +></note> + +</sect3 +> <!-- setup-format-general --> + +<sect3 id="setup-format-indent"> +<title +>Configuration du style d'indentation</title> + +<para +>Une indentation appropriée est le principal moyen d'améliorer la lisibilité d'un texte source. Si vous avez sélectionné l'onglet <guilabel +>Indentation</guilabel +> de la boîte de dialogue <guilabel +>Formatage des fichiers sources</guilabel +>, vous voyez s'afficher une série de choix de formatage d'indentation groupée en trois cases comme suit. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="SF-indent.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration du style d'indentation du formatage des sources</phrase +></textobject> + <caption +><para +>Configuration du style d'indentation du formatage des sources </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Réglages par défaut</term> +<listitem> +<para +>Les choix des formats prédéfinis feront ressembler le texte source au style de formatage ANSI :</para> + +<screen +>namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} +</screen> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-format-indent-filling" +>Définition de la largeur et des caractères d'indentation</term> +<listitem> +<para +>Les boutons radio réunis dans le groupe <guilabel +>Remplissage</guilabel +> définissent la manière dont les indentations dans le texte source seront dessinées.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Utiliser des tabulations</guilabel +></term> + <listitem> + <para +>Cette option fera insérer à l'éditeur un caractère de tabulation pour chaque niveau d'indentation. La largeur de la tabulation est prédéfinie dans les réglages de l'éditeur (8 ou 4 colonnes de caractères habituellement). Utilisez <menuchoice +><guimenu +>Configuration</guimenu +><guimenuitem +>Configurer l'éditeur...</guimenuitem +></menuchoice +> pour le redéfinir. </para> + <note +><para +>La procédure consistant à définir la largeur réelle de la tabulation dépend de l'éditeur que vous avez choisi dans l'étape de configuration <link linkend="setup-editor" +>Sélectionner l'éditeur</link +>. Vous devrez consulter l'aide de l'éditeur correspondant pour la découvrir. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Utiliser des espaces</guilabel +></term> + <listitem +><para +>Si vous cliquez sur ce bouton radio, l'éditeur saisit un nombre d'espaces pour chaque niveau d'indentation. Changez ce nombre, par défaut 2, pour la largeur d'indentation que vous préférez. </para +></listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Entités indentées</term> +<listitem> +<para +>Ce réglage définit laquelle des entités (C/C++) sera formatée avec une indentation supplémentaire au-delà du niveau d'indentation actuel.</para> + +<para +>Par défaut, seuls les <guilabel +>espaces de noms</guilabel +> et les <guilabel +>intitulés</guilabel +> seront indentés en sus. Vous pouvez être amené à expérimenter divers réglages pour adapter ces indentations supplémentaires à votre goût.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Lignes suivantes</term> +<listitem> +<para +>Les réglages groupés ici s'appliquent à ces cas où le formatage des fichierssources coupe automatiquement les longues lignes du source. Il prend en considération deux cas spéciaux, à savoir que dans les indentations profondément imbriquées, il devra rester assez de place pour le source, et que les conditions devront obtenir des niveaux d'indentation supplémentaires sur les lignes suivantes pour qu'elles puissent ressortir correctement. </para> + +<note +><para +>Ce réglage s'applique aux <emphasis +>cas de coupures de lignes statiques</emphasis +> uniquement, où une largeur de ligne maximale fixe est utilisée dans le texte source. Si vous configurez votre éditeur pour couper dynamiquement les longues lignes dans l'affichage uniquement (ce qui est possible dans le composant d'édition de &kate;), les effets de ces réglages n'apparaîtront généralement pas. </para +></note> + +<variablelist> + <varlistentry> + <term +><guilabel +>Maximum dans une déclaration</guilabel +></term> + <listitem> + <para +>Ce réglage limite l'indentation maximale possible pour les lignes de continuation, de façon à ce qu'il reste assez d'espace pour conserver la lisibilité du texte. Aucune ligne de continuation sera jamais indentée au-delà du nombre de colonnes que vous avez choisies dans ce champ. </para> + <para +>La valeur par défaut est fixée à des colonnes de 40 caractères (la moitié d'une page standard de 80 colonnes). Il se peut que vous deviez augmenter cette valeur pour justifier un papier plus large (&pex;, si vous imprimez vos sources au format paysage). Ou bien diminuez la valeur en conséquence pour prendre en compte les réglages de marges supérieurs de vos sorties imprimante. </para> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Minimum dans une condition</guilabel +></term> + <listitem> + <para +>Les conditions ou les sources qui suivent &pex; un opérateur d'affectation devront généralement obtenir une indentation supplémentaire sur les lignes suivantes pour conserver la lisibilité du texte. La quantité de cette indentation supplémentaire est définie ici. </para> + <para +>La valeur par défaut est fixée au « double de l'actuel », ce qui signifie que les conditions continues obtiendront un niveau d'indentation supplémentaire par rapport à la taille standard d'indentation que vous avez choisie dans le groupe <link linkend="setup-format-indent-filling" +>Remplissage</link +>. Vous pouvez modifier cette indentation supplémentaire pour une autre largeur fixe (y compris zéro) à l'aide des flèches ou en saisissant la valeur directement. </para> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + +</sect3 +> <!-- setup-format-indent --> + +<sect3 id="setup-format-other"> +<title +>Autre configuration du formatage</title> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="SF-other.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Autres réglages de styles du format des fichiers source</phrase +></textobject> + <caption +><para +>Autres réglages de styles du format des fichiers source </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Contrôler la position des accolades</term> +<listitem> +<para +>Les boutons radio (quelque peu mal nommés) du groupe <guilabel +>Accolades</guilabel +> contrôlent la position des accolades de délimitation des blocs dans un texte source (C/C++). Il y a trois possibilités vous permettant de choisir.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Cassées</guilabel +></term> + <listitem> + <para +>Ce réglage insère un saut de ligne avant chaque accolade. Les deux accolades de délimitation de tous les blocs seront placées au même niveau d'indentation que la déclaration de début du bloc.</para> + +<screen +>namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} +</screen> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Attachées</guilabel +></term> + <listitem> + <para +>Ce réglage garde l'accolade ouvrante d'un bloc en alignement avec la déclaration de début du bloc. Les accolades fermantes seront au même niveau d'indentation que la déclaration de début du bloc. Le <token +>else</token +> d'une déclaration <token +>if</token +> sera maintenu en alignement avec l'accolade fermante du bloc précédent. </para> +<screen +>namespace foospace { + int Foo() { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} +</screen> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Style Linux</guilabel +></term> + <listitem> + <para +>Il s'agit d'un compromis des styles énumérés ci-dessus. Les accolades délimitant les blocs fonctionnels sont placées sur des lignes supplémentaires. Les accolades ouvrant un bloc dans une condition ou une déclaration de boucle seront maintenues en alignement. </para> +<screen +>namespace foospace +{ + int Foo() + { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} +</screen> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Contrôle des espaces supplémentaires</term> +<listitem> +<para +>Par défaut, &tdevelop; minimise l'utilisation des espaces dans les textes des fichiers sources. </para> + + +<screen +>if (isBar(fooArg)==barValue) +</screen> + +<para +>Vous pouvez améliorer la lisibilité si vous forcez le formatage de fichiers sources à insérer des espaces supplémentaires dans des positions spéciales.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Ajouter des espaces autour des parenthèses</guilabel +></term> + <listitem> + <para +>L'idée est en fait d'ajouter des espaces autour du texte placé entre parenthèses. Ce réglage améliore la lisibilité des arguments des fonctions et des conditions.</para> +<screen +>if ( isBar( fooArg )==barValue ) +</screen> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Ajouter des espaces autour des opérateurs</guilabel +></term> + <listitem> + <para +>Ce réglage place des espaces autour des opérateurs d'affectation et de comparaison pour améliorer la lisibilité.</para> +<screen +>if (isBar(fooArg) == barValue) +</screen> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Contrôler le formatage des structures d'une ligne</term> +<listitem> +<para +>Il y a quelques cas dans lesquels vous ne souhaiterez pas que le formatage des fichiers sources divise une longue ligne séparément. Pour le code C/C++, on peut contrôler ce comportement ici.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Garder une ligne lors d'une déclaration</guilabel +></term> + <listitem +><para +>Ce réglage maintient réunies des déclarations d'une ligne dans certaines situations, même si elles dépassent une longueur de ligne maximale fixe. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Garder une ligne lors de la constitution de blocs</guilabel +></term> + <listitem +><para +>Ce réglage maintient réunis des blocs d'une ligne dans certaines situations, même s'ils dépassent une longueur de ligne maximale fixe. </para +></listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + + +</sect3 +> <!-- setup-format-other --> + +</sect2 +> <!-- setup-format --> + +<sect2 id="setup-snippets"> +<title +>Configuration de l'outil « Fragments de code »</title> + +<para +>Lorsque vous éditez dans &tdevelop; vous pouvez mémoriser des parties de code souvent utilisés sous forme de <link linkend="editing-snippets" +>fragments de code</link +>. Pour configurer les fonctionnalités du composant « Fragments de code », sélectionnez <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer &tdevelop;...</guimenuitem +> </menuchoice +> dans la barre de menus. La boîte de dialogue <guilabel +>Configurer KDevelop</guilabel +> apparaît; dans laquelle vous devez sélectionner <guilabel +>Fragments de code</guilabel +> dans l'arborescence de la partie gauche. Vous voyez alors la boîte de dialogue suivante s'afficher dans la partie droite. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-snippets.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration de l'outil « Fragments de code »</phrase +></textobject> + <caption +><para +>Configuration de l'outil « Fragments de code » </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Activer l'aperçu d'un fragment</term> +<listitem> +<para +>Cochez la case <guilabel +>Afficher le texte du fragment dans une bulle d'aide</guilabel +> si vous souhaitez visualiser le texte mémorisé dans une fenêtre de bulle d'aide chaque fois que vous maintenez le curseur de la souris sur le titre de ce fragment.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Travailler avec des variables de fragments</term> +<listitem> +<para +>L'outil <guilabel +>Fragments de code</guilabel +> prévoit 'un texte de variable dans des emplacements prédéfinis chaque fois que vous insérez un fragment dans un fichier. Pour ce faire, l'outil <guilabel +>Fragments de code</guilabel +> fournit son propre mécanisme de variables. Vous pouvez configurer son comportement dans le groupe <guilabel +>Variables</guilabel +>.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Délimiteur</guilabel +></term> + <listitem +><para +>L'outil <guilabel +>Fragments de code</guilabel +> distingue les variables dans le texte en entourant le nom de la variable par des symboles de délimiteurs spéciaux. Pour utiliser votre propre symbole de délimiteur, changez le caractère <guilabel +>$</guilabel +> prédéfini dans le champ <guilabel +>Délimiteur</guilabel +>. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Méthode d'entrée des variables</guilabel +></term> + <listitem +><itemizedlist> + <listitem +><para +><guilabel +>Une seule boîte de dialogue pour chaque variable d'un fragment de code</guilabel +> — fait apparaître une boîte de dialogue séparée pour chaque variable que l'outil trouve en insérant le fragment de code sélectionné. </para +></listitem> + <listitem +><para +><guilabel +>Une boîte de dialogue pour toutes les variables d'un fragment de code</guilabel +> — fait apparaître une boîte de dialogue commune où l'utilisateur doit remplir les valeurs de toutes les variables avant l'insertion du fragment de code. </para +></listitem> + </itemizedlist +></listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- setup-snippets --> + +<sect2 id="setup-file-list"> +<title +>Liste des fichiers</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- setup-file-list--> + +<sect2 id="setup-file-selector"> +<title +>Configurer le sélecteur de fichiers</title> + +<para +>&tdevelop; fournit un module externe <guilabel +>Sélecteur de fichiers</guilabel +> qui, lorsque chargé au démarrage, permet de naviguer dans n'importe quel fichier ou dossier ans le système. </para> + +<screenshot id="setup-fileselector-image"> + <mediaobject> + <imageobject> + <imagedata fileref="file-selector.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Le sélecteur de fichiers (mode IDEAl)</phrase +></textobject> + <caption +><para +>Le sélecteur de fichiers (mode IDEAl) </para +></caption> + </mediaobject> +</screenshot> + +<para +>Le comportement du <guilabel +>Sélecteur de fichiers</guilabel +> est extrêmement configurable. Sélectionnez <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer &tdevelop;...</guimenuitem +> </menuchoice +> dans la barre de menus. La boîte de dialogue <guilabel +>Configurer KDevelop</guilabel +> apparaît, dans laquelle vous devrez cliquer sur <guilabel +>Sélecteur de fichiers</guilabel +> dans l'arborescence à gauche. La boîte de dialogue suivante apparaît dans la partie droite.</para> + + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-file-selector.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configurer le sélecteur de fichiers</phrase +></textobject> + <caption +><para +>Configurer le sélecteur de fichiers </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Configurer la barre d'outils</term> +<listitem> +<para +>Il y a une barre d'outils en haut du <guilabel +>Sélecteur de fichiers</guilabel +> que l'on peut configurer comme d'habitude dans le groupe <guilabel +>Barre d'outils</guilabel +>.</para> + +<procedure id="setup-fileselector-add-action"> + <title +>Ajouter une action à la barre d'outils</title> + <step> + <para +>Choisissez un élément dans la partie droite de la liste <guilabel +>Actions sélectionnées</guilabel +>, après quoi la nouvelle action devra être insérée. </para> + </step> + <step> + <para +>Sélectionnez l'action à insérer dans la partie gauche de la liste <guilabel +>Actions disponibles</guilabel +>. </para> + </step> + <step> + <para +>Cliquez sur la flèche droite (en haut) entre les deux listes. </para> + <para +>L'action sera supprimée de la liste <guilabel +>Actions disponibles</guilabel +> et insérée dans la liste <guilabel +>Actions sélectionnées</guilabel +> sous l'élément sélectionné. </para> + </step> +</procedure> + +<procedure> + <title +>Supprimer une action de la barre d'outils</title> + <step> + <para +>Sélectionnez l'élément à supprimer dans la partie droite de la liste <guilabel +>Actions sélectionnées</guilabel +>. </para> + </step> + <step> + <para +>Cliquez sur la flèche gauche (en bas) entre les deux listes. </para> + <para +>L'élément sélectionné sera supprimé de la liste <guilabel +>Actions sélectionnées</guilabel +> et placé à nouveau dans la liste <guilabel +>Actions disponibles</guilabel +>. </para> + </step> +</procedure> + +<procedure> + <title +>Réordonner les actions sur la barre d'outils</title> + <step> + <para +>Sélectionnez l'action à déplacer dans la partie droite de la liste <guilabel +>Actions sélectionnées</guilabel +>. </para> + </step> + <step> + <para +>Cliquez sur la flèche haut ou bas à droite de cette liste. </para> + <para +>L'élément sélectionné sera déplacé vers le haut ou vers le bas de la liste <guilabel +>Actions sélectionnées</guilabel +>. </para> + </step> +</procedure> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-fileselector-autosync" +>Définir le moment où le contenu devra changer</term> +<listitem> +<para +>La mise à jour du contenu dans la fenêtre <guilabel +>Sélecteur de fichiers</guilabel +> prend du temps et des ressources, en particulier lorsqu'on change de dossier. Par conséquent, le <guilabel +>Sélecteur de fichiers</guilabel +> est configuré par défaut de telle sorte que son contenu ne change que sur demande, &cad; lorsque vous choisissez un autre dossier ou lorsque vous souhaitez explicitement rafraîchir son contenu. </para> + +<note +><para +>Cliquez sur le bouton <guilabel +>Recharger</guilabel +> dans la barre d'outils pour mettre à jour le contenu du <guilabel +>Sélecteur de fichiers</guilabel +>. Ce bouton de barre d'outils n'est pas disponible par défaut, cependant. Vous devez <link linkend="setup-fileselector-add-action" +>l'insérer ici</link +> d'abord. </para +></note> + +<para +>Vous pouvez configurer le <guilabel +>Sélecteur de fichiers</guilabel +> pour répercuter immédiatement certains changements dans votre travail. Les réglages dans le groupe <guilabel +>Synchronisation automatique</guilabel +> de la boîte de dialogue de configuration sont responsables de ce comportement. </para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Lorsqu'un document devient actif</guilabel +></term> + <listitem +><para +>Si vous cochez cette case, le contenu de la fenêtre <guilabel +>Sélecteur de fichiers</guilabel +> est mis à jour chaque fois que vous êtes sur le point d'ouvrir un autre document déjà ouvert, &pex; lorsque vous cliquez sur l'onglet de la fenêtre d'édition correspondante en mode IDEAl. Si nécessaire, le <guilabel +>Sélecteur de fichiers</guilabel +> passe dans le dossier auquel ce fichier appartient et actualise l'affichage pour en montrer le contenu réel. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Lorsqu'un document est ouvert</guilabel +></term> + <listitem +><para +>Si vous cochez cette case, le contenu de la fenêtre <guilabel +>Sélecteur de fichiers</guilabel +> est mis à jour chaque fois qu'un document est ouvert, &pex; par le menu <menuchoice +><guimenu +>Fichier</guimenu +><guimenuitem +>Ouvrir</guimenuitem +></menuchoice +>. Si nécessaire, le <guilabel +>Sélecteur de fichiers</guilabel +> passe dans le dossier auquel ce fichier appartient et actualise l'affichage pour en montrer le contenu réel. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Lorsque le sélecteur de fichiers devient visible</guilabel +></term> + <listitem +><para +>Si vous cochez cette case, le contenu de la fenêtre <guilabel +>Sélecteur de fichiers</guilabel +> est mis à jour chaque fois qu'il redevient visible. Si nécessaire, il passe dans le dossier auquel ce fichier appartient et actualise l'affichage pour en montrer le contenu réel. </para +></listitem> + </varlistentry> +</variablelist> + +<para +>Vous pouvez combiner librement ces réglages pour adapter le comportement d'actualisation du <guilabel +>Sélecteur de fichiers</guilabel +> à votre goût. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Contrôler l'historique dans les zones de listes modifiables</term> +<listitem> +<para +>Il y a deux zones de listes modifiables en haut et au bas de la fenêtre de contenu du <guilabel +>Sélecteur de fichiers</guilabel +>, qui contrôlent le dossier à afficher (zone de liste modifiable du haut) et les filtres à appliquer à l'affichage des fichiers (zone de liste modifiable du bas). Un historique des réglages les plus récents est conservé dans le champ de sélection de chaque zone de liste modifiable. Vous pouvez configurer le nombre des éléments d'historique comme suit.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Mémoriser les emplacements</guilabel +></term> + <listitem +><para +>Saisissez ici le nombre maximal de sélections de dossiers que la zone de liste modifiable du haut devra mémoriser. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Mémoriser les filtres</guilabel +></term> + <listitem +><para +>Saisissez ici le nombre maximal de sélections de dossiers que la zone de liste modifiable du bas devra mémoriser. </para +></listitem> + </varlistentry> + +<varlistentry> +<term +>Contrôler ce qui devra être mémorisé entre les sessions</term> +<listitem> +<para +>Par défaut, le <guilabel +>Sélecteur de fichiers</guilabel +> est configuré pour réafficher la session la plus récente au prochain démarrage de &tdevelop;. Vous pouvez changer ce comportement dans le groupe de configuration<guilabel +>Session</guilabel +>. </para> + +<note +><para +>Si &tdevelop; a été redémarré automatiquement par le gestionnaire de sessions de &kde;, les changements apportés dans ces réglages n'auront aucun effet. Dans ce cas, les réglages d'emplacement et de filtre de la session la plus récente de &kde; seront toujours restaurés. </para +></note> +</listitem> +</varlistentry> + + <varlistentry> + <term +><guilabel +>Restaurer l'emplacement</guilabel +></term> + <listitem> + <para +>Décochez cette case si vous ne souhaitez pas que l'emplacement affiché soit mémorisé entre les sessions. </para> + <note +><para +>Si vous avez sélectionné un des réglages de <link linkend="setup-fileselector-autosync" +>mise à jour automatique</link +>, l'emplacement affiché pourra changer automatiquement, indépendamment de ce qui a été mémorisé depuis la précédente session. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Restaurer les filtres</guilabel +></term> + <listitem> + <para +>Décochez cette case si vous ne souhaitez pas que les filtres appliqués à l'affichage soient mémorisés entre les sessions. </para> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- setup-file-selector --> + +<sect2 id="setup-cpp-generator"> +<title +>Générateur de classes C++</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- setup-c++-generator--> + +<sect2 id="setup-formatting"> +<title +>Formatage</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- setup-formatting--> + +<sect2 id="setup-cpp-parsing"> +<title +>Analyse de la syntaxe C++</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- setup-c++-parsing--> + +</sect1 +> <!-- setup-general --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="setup-docu"> +<title +>Configurer la documentation</title> + +<para +>&tdevelop; contient une fonction documentation très puissante qui fournit un accès à plusieurs sortes de documentations exhaustives. En mode IDEAl &pex;, vous trouverez un onglet <guilabel +>Documentation</guilabel +> sur le bord droit de la zone de travail. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="documents-contents.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>La fenêtre de documentation de &tdevelop; en mode IDEAl</phrase +></textobject> + <caption +><para +>La fenêtre de documentation de &tdevelop; en mode IDEAl </para +></caption> + </mediaobject> +</screenshot> + +<note +><para +>&tdevelop; doit avoir chargé le module externe <guilabel +>Documentation</guilabel +> pour pouvoir visualiser l'arborescence de la documentation. Consultez la section <link linkend="setup-plugins" +>Outils  modules externes »</link +> pour plus d'informations. </para +></note> + +<para +>Vous pouvez configurer le contenu et le comportement des diverses parties de cette fenêtre de documentation en sélectionnant <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer &tdevelop;...</guimenuitem +> </menuchoice +> dans la barre de menus. La boîte de dialogue <guilabel +>Configurer KDevelop</guilabel +> apparaît, dans laquelle vous devez sélectionner <guilabel +>Documentation</guilabel +> dans la fenêtre de gauche. </para> + +<para +>La <link linkend="configure-docu-general" +>page de configuration</link +> ainsi affichée montre trois pages de boîtes de dialogue de configuration à onglets, à savoir : </para> + +<simplelist> + <member +><link linkend="setup-docu-general" +>Collections de documentation</link +></member> + <member +><link linkend="setup-docu-textsearch" +>Recherche plein texte</link +></member> + <member +><link linkend="setup-docu-other" +>Autre</link +></member> +</simplelist> + +<sect2 id="setup-docu-general"> +<title +>Configuration des collections de documentation</title> + +<para +>Les paramètres de configuration de la documentation ont été divisés en une série de collections de documentation, dont chacune offre l'accès à des fichiers de documentation d'un format et d'un type de contenu uniques. Ces configurations vérifient quels seront les éléments de documentation répertoriés sur la page <guilabel +>Contenu</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop; et comment l'utilisateur peut accéder aux éléments de documentation via des recherches indexées et plein texte. </para> +<para +>L'onglet <guilabel +>Documentation</guilabel +> fournit une série de pages de configuration qui sont ordonnées verticalement comme une pile de fiches. Une page à la fois s'ouvre après avoir cliqué sur le titre de sa fiche : </para> +<simplelist> + <member +><link linkend="setup-docu-general-qt" +>Collection de documentation &Qt;</link +></member> + <member +><link linkend="setup-docu-general-chm" +>Collection de documentation CHM</link +></member> + <member +><link linkend="setup-docu-general-dox" +>Collection de documentation Doxygen</link +></member> + <member +><link linkend="setup-docu-general-toc" +>Collection de documentation &tdevelop;TOC</link +></member> + <member +><link linkend="setup-docu-general-devhelp" +>Collection de documentation Devhelp</link +></member> + <member +><link linkend="setup-docu-general-custom" +>Collection de documentation personnalisée</link +></member> +</simplelist> + +<para id="configure-docu-general"> +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-general.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration des collections de documentation</phrase +></textobject> + <caption +><para +>Configuration des collections de documentation </para +></caption> + </mediaobject> +</screenshot> +</para> + +<sect3 id="setup-docu-general-common"> +<title +>Structure commune de configuration de la documentation</title> + +<para +>Toutes les pages de configurations dans l'onglet <guilabel +>Documentation</guilabel +> utilisent une disposition commune. Vous trouverez les éléments de documentation actuellement disponibles de ce type répertoriées sur la page d'ouverture ainsi qu'un ensemble de boutons sur la partie droite. </para> + +<variablelist> +<varlistentry> +<term id="setup-docu-buttons" +>Boutons pour maintenir le contenu de la liste de documentation</term> +<listitem> +<para +>Il y a trois boutons disponibles pour maintenir le contenu des pages de configuration de la documentation : </para> + +<variablelist> + <varlistentry> + <term +><guibutton +>Ajouter</guibutton +></term> + <listitem> + <para +>Ouvre une boîte de dialogue <guilabel +>Propriétés du catalogue de la documentation</guilabel +> comme illustré ci-dessous, où vous pouvez sélectionner l'emplacement source de l'élément de documentation à ajouter et le nommer.</para> + </listitem> + </varlistentry> + <varlistentry> + <term +><guibutton +>Modifier</guibutton +></term> + <listitem> + <para +>Ouvre une boîte de dialogue <guilabel +>Propriétés du catalogue de la documentation</guilabel +> comme illustré ci-dessous, où vous pouvez changer l'emplacement source de l'élément de documentation précédemment sélectionné dans la liste et le renommer.</para> + </listitem> + </varlistentry> + <varlistentry> + <term +><guibutton +>Supprimer</guibutton +></term> + <listitem> + <para +>Supprime de la liste l'entrée de documentation sélectionnée.</para> + <note +><para +>L'entrée sera supprimée de la liste uniquement. Les sources proprement dites de la documentation restent intactes. Vous devrez les supprimer explicitement par un autre moyen. </para +></note> + </listitem> + </varlistentry> +</variablelist> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-edit.png" format="PNG"/> + </imageobject> + <caption +><para +>Ajouter ou changee une entrée de documentation </para +></caption> + </mediaobject> +</screenshot> + +<para +>Le bouton situé à droite du champ <guilabel +>Emplacement</guilabel +> ouvre une boîte de dialogue de dossier dont les éléments seront habituellement filtrés selon le type de fichier de la page de configuration sélectionnée. </para> +<para +>Le champ <guilabel +>Titre</guilabel +> risque de ne pas être accessible, en fonction du type de documentation à maintenir. </para> +</listitem> +</varlistentry> +<varlistentry> +<term id="setup-docu-columns" +>Structure de liste de la documentation</term> +<listitem> +<para +>Chaque page de configuration de la documentation affiche les éléments de documentation répertoriés dans un tableau de colonnes : </para> + +<variablelist> + <varlistentry> + <term +><guilabel +>TOC</guilabel +></term> + <listitem> + <para +>Si cette case est cochée, cet élément de documentation sera affiché sur la page <guilabel +>Contenu</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop;. </para> + <note +><para +>Décocher la case <guilabel +>TOC</guilabel +> désactivera les cases à cocher <guilabel +>Index</guilabel +> et <guilabel +>Recherche</guilabel +> (voir ci-dessous). Ainsi, vous pouvez avoir les éléments les collections de documentation indexés mais non affichés dans le contenu. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Index</guilabel +></term> + <listitem> + <para +>Si cette case est cochée, un index interne sera construit à partir de cet élément de documentation. Ce comportement permet un accès rapide à la documentation via l'utilisation des pages <guilabel +>Index</guilabel +> et (optionnellement) <guilabel +>Localisateur</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop;.. </para> + <note> + <para +>L'index interne sera construit la première fois où l'utilisateur sélectionne la page <guilabel +>Index</guilabel +>. Cette action retardera le premier accès de façon significative car l'index sera lu à partir du disque puis placé dans le cache. </para> + <para +>Toutes les recherches indexées ultérieures utiliseront cependant ce cache et iront ainsi beaucoup plus vite. </para> + </note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Recherche</guilabel +></term> + <listitem> + <para +>Si cette case est cochée, le contenu de cet élément de documentation sera inclus dans le chemin de recherche plein texte de la page <guilabel +>Recherche</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop;. </para> + <note> + <para +>&tdevelop; se sert de la collection de l'application « htdig » pour effectuer les recherches plein texte. Cette recherche sera faite sur un index interne, la machinerie « htdig » ayant été construite avant de pouvoir être utilisée. </para> + <para +>Tout changement de la case à cocher <guilabel +>Recherche</guilabel +> n'affectera ainsi les actions de recherche qu'après avoir reconstruit l'index sur la page <guilabel +>Recherche</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop;. </para> + </note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Titre</guilabel +></term> + <listitem +><para +>C'est le nom de l'élément de documentation tel qu'il sera affiché sur la page <guilabel +>Contenu</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop;. </para +></listitem> + </varlistentry> +</variablelist> + +<note +><para +>Les précédentes versions de &tdevelop; permettaient de sélectionner les éléments de documentation à afficher par projet. Ce comportement n'est plus disponible. </para +></note> +</listitem> +</varlistentry> +</variablelist> + +</sect3 +> <!-- setup-docu-general-common --> + +<sect3 id="setup-docu-general-qt"> +<title +>Collections de documentation &Qt;</title> + +<para +>Sur cette page de configuration, toute la documentation &Qt; est configurée. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-general.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration de la collection de documentation &Qt;</phrase +></textobject> + <caption +><para +>Configuration de la collection de documentation &Qt; </para +></caption> + </mediaobject> +</screenshot> + +<para +>Normalement,&tdevelop; la remplit lors de son premier démarrage. Il cherche les fichiers de documentation standard <filename +>*.xml</filename +> ou <filename +>*.dcf</filename +> dans le dossier d'installation de &Qt;. Le tableau de la partie gauche répertorie par titres standard les fichiers que &tdevelop; a trouvés. </para> + +<para +>Si vous avez une installation non standard, soit il n'y aura absolument aucune information répertoriée, soit les entrées pointeront peut-être sur des emplacements incorrects (&pex; sur une autre installation &Qt; disponible dans votre système). Vous pouvez ajuster les entrées à l'aide des <link linkend="setup-docu-buttons" +>boutons</link +> situés dans la partie droite du champ de liste. </para> + +<note +><para +>&tdevelop; utilisera les titres déjà fournis par la documentation &Qt; installées. Donc, le champ <guilabel +>Titre</guilabel +> dans la boîte de dialogue <guilabel +>Propriétés du catalogue de la documentation</guilabel +> ests inaccessible. </para +></note> + +<para +>Par défaut, toute la documentation &Qt; n'est pas affichée sur la page <guilabel +>Contenu</guilabel +> de la fonction <guilabel +>Documentation</guilabel +> de &tdevelop;. Utilisez la case à cocher <guilabel +>TOC</guilabel +> dans la <link linkend="setup-docu-columns" +>table de configuration</link +> pour sélectionner la documentation à afficher. </para> + +<para +>Si vous souhaitez que de la documentation propre à &Qt; soit incluse dans les index de recherche ou dans la recherche plein texte, utilisez les cases à cocher <guilabel +>Index</guilabel +> et <guilabel +>Recherche</guilabel +> dans la <link linkend="setup-docu-columns" +>table de configuration</link +>. </para> + +</sect3 +> <!-- setup-docu-general-qt --> + +<sect3 id="setup-docu-general-chm"> +<title +>Configuration de la collection de documentation CHM</title> + +<para +>Dans cette page de configuration, vous pouvez collecter de la documentation selon le standard des fichiers d'aide CHM &Microsoft;. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-chm.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration des fichiers de documentation standard CHM &Microsoft;</phrase +></textobject> + <caption +><para +>Configuration des fichiers de documentation standard CHM &Microsoft; </para +></caption> + </mediaobject> +</screenshot> + +<para +>Par défaut, cette page de configuration sera vide (comme illustré ci-dessus). Vous pouvez ajouter de nouvelles entrées à l'aide des <link linkend="setup-docu-buttons" +>boutons</link +> situés à droite du champ de liste. &tdevelop; filtrera les fichiers <filename +>*.chm</filename +> dans la boîte de dialogue associée aux boutons <guibutton +>Ajouter</guibutton +> et <guibutton +>Modifier</guibutton +>. </para> + +<para +>Pour plus d'informations sur le format des fichiers <filename +>*.chm</filename +> &Microsoft;, reportez-vous &pex; au document « PHP: Documentation - Extended CHM Format » sur le site <ulink url="http://de2.php.net/docs-echm.php" +>http://de2.php.net/docs-echm.php</ulink +>. </para> + +</sect3 +> <!-- setup-docu-general-chm --> + +<sect3 id="setup-docu-general-dox"> +<title +>Documentation générée par Doxygen</title> + +<para +>Dans cette page de configuration, toutes les documentations de l'&API; que génère &doxygen; sont configurées. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-dox.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Configuration de la documentation de l'&API; générée par Doxygen</phrase +></textobject> + <caption +><para +>Configuration de la documentation de l'&API; générée par Doxygen </para +></caption> + </mediaobject> +</screenshot> + +<para +>En bref, une telle &API; documente l'interface à certaines fonctions de bibliothèques. La documentaion de l'&API;. présente sur cette page devra être produite par l'outil <ulink url="http://www.stack.nl/~dimitri/doxygen/" +>&doxygen;</ulink +> fourni en externe. </para> +<para +>La documentation de l'&API; générée par &doxygen; se compose d'une série de fichiers <filename +>html</filename +> commençant par <filename +>index.html</filename +>. De plus, il peut exister des fichiers <filename +>tag</filename +> qui contiennent des informations à lier aux documentations de l'&API; existantes. Ainsi, &tdevelop; cherchera les fichiers <filename +>index.html</filename +> et <filename +>*.tag</filename +> lorsqu'il effectue des recherches dans la documentation de l'&API; générée par &doxygen;. </para> +<para +>Il y a certaines contraites structurelles supposées lors d'une recherche dans la documentation de l'&API; générée par &doxygen;. Le dossier dans lequel le fichier <filename +>index.html</filename +> réside devra contenir des sous-dossiers ayant des collections de documentation séparées. Chacun de ces sous-dossiers est censé contenir un fichier <filename +>.tag</filename +> et un sous-dossier <filename class="directory" +>html/</filename +>. </para> +<para +>Vous pouvez jeter un coup d'Å“il à <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/doc/HTML/en/tdelibs-apidocs</filename +> pour voir un exemple d'une telle disposition de documentation de l'&API; générée par &doxygen;. </para> + +<note +><para +>L'ancien format de l'&API; générée par le <ulink url="http://sirtaj.net/projects/kdoc/" +>KDoc</ulink +> de &kde; n'est plus pris en charge directement. Si vous souhaitez toujours utiliser ce type de documentation, vous pouvez l'ajouter dans la page <link linkend="setup-docu-general-custom" +>Collection de documentation personnalisée</link +>. </para +></note> + +<para +>&tdevelop; aura rempli un lien vers l'&API; des bibliothèques &kde; actuelles, à condition qu'il en ait trouvé une. Il y a plusieurs moyens pour &tdevelop; de le découvrir </para> + +<itemizedlist> + <listitem +><para +>Soit vous avez fourni la commande <command +>configure</command +> avec l'option <option +>--with-tdelibsdoxy-dir</option +> lorsque vous avez compilé &tdevelop; (reportez-vous au chapitre <link linkend="make-api" +>Comment obtenir une documentation de l'&API; &tdevelop;</link +>). </para +></listitem> + <listitem +><para +>Soit la commande <command +>configure</command +> a automatiquement trouvé une &API; des bibliothèques &kde; générée par &doxygen; dans l'un des quelques emplacements standard qu'elle connaît. </para +></listitem> + <listitem +><para +>Soit en dernier recours, &tdevelop; a toruvé le <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/doc/HTML/en/tdelibs-apidocs/</filename +> lors de son premier démarrage. </para +></listitem> +</itemizedlist> + +<para +>Si &tdevelop; n'a pas trouvé d'&API; des bibliothèques &kde; générée par &doxygen; lors de son premier démarrage, la liste <guilabel +>Collection de documentation Doxygen</guilabel +> sera vide. </para> + +<para +>Vous pouvez ajouter vos propres entrées de documentation de l'&API; (&pex; à partir de vos projets en cours) via les <link linkend="setup-docu-buttons" +>boutons</link +> situés à droite. Si vous souhaitez qu'elles soient incluses dans la recherche indexée/plein texte, cochez les cases <guilabel +>Index</guilabel +> ou <guilabel +>Recherche</guilabel +> dans la <link linkend="setup-docu-columns" +>table de configuration</link +>. </para> + +<note +><para +>&tdevelop; utilise les informations de titre provenant du <filename +>index.html</filename +>. Donc; le champ <guilabel +>Titre</guilabel +> dans la boîte de dialogue <guilabel +>Propriétés du catalogue de la documentation</guilabel +> est inaccessible. </para +></note> + +<tip> + <para +>Le système &kde; fournit davantage de documentation de l'&API; que l'&API; des bibliothèques &kde; seule. Vous aurez besoin d'informations complémentaires sur les interfaces si vous souhaitez &pex; inclure le composant &kate; dans vos programmes. Pour cette &API; du composant &kate; &pex;, vous devrez compiler et installer l'&API; des bibliothèques de base &kde; à partir des <ulink url="http://developer.kde.org/source/index.html" +>sources</ulink +> (à l'aide des commandes <command +>make apidox</command +> et <command +>make install</command +> sur les sources <filename class="directory" +>tdebase</filename +>) puis ajouter une entrée à la liste <guilabel +>Collection de documentation Doxygen</guilabel +> comme suit : </para> + <screenshot +><mediaobject> + <imageobject> + <imagedata fileref="configure-adddialog-baselibs.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Ajout d'une &API; de base &kde; à la liste</phrase +></textobject> + <caption +><para +>Ajout d'une &API; de base &kde; à la liste </para +></caption> + </mediaobject +></screenshot> + <para +>(Naturellement, vous devrez remplacer le dossier <filename class="directory" +>/home/dev/mykde-system/</filename +> dans l'exemple de champ <guilabel +>Emplacement</guilabel +> par le chemin vers votre installation &kde;.) </para> +</tip> + +<note +><para +>Vous devez placer l'&API; de votre projet actuel dans cette <guilabel +>Collection de documentation Doxygen</guilabel +> également. Les versions antérieures de &tdevelop; la plaçaient dans l'arborescence de la documentation par projet. Ce n'est plus le cas. </para +></note> + +</sect3 +> <!-- setup-docu-general-dox --> + +<sect3 id="setup-docu-general-toc"> +<title +>Gestion de la documentation structurée (fichiers KDevelopTOC)</title> + +<para +>La partie principale de la fonction de documentation de &tdevelop; offre un accès immédiat à de la documentation structurée, locale aussi bien que distante. Vous pouvez la configurer dans l'onglet <guilabel +>Collection de documentation KDevelopTOC</guilabel +>. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-toc.png" format="PNG"/> + </imageobject> + <caption +><para +>Mise en place de l'accès à la documentation structurée KDevelopTOC </para +></caption> + </mediaobject> +</screenshot> + +<para +>&tdevelop; est livré avec un ensemble de fichiers KDevelopTOC prédéfinis qui sont automatiquement placés dans le tableau au moment de l'installation. Pour que l'affichage reste gérable; seuls ceux qui sont le plus souvent utilisés seront initialement cochés pour affichage. Si vous souhaitez voir une autre documentation, cochez la case <guilabel +>TOC</guilabel +> dans la <link linkend="setup-docu-columns" +>table de conifguration</link +>. </para> + +<para +>Les fichiers KDevelopTOC ne peuvent pas être indexés pour effectuer une recherche plein texte parce qu'ils pointent habituellement sur un emplacement distant. Par ailleurs, un tel fichier <filename +>.toc</filename +> peut avoir un index défini manuellement à l'aide de la balise <computeroutput +><index></computeroutput +>. Ainsi, la cse à cocher <guilabel +>Index</guilabel +> ne sera activée que lorsque &tdevelop; trouvera une balise <computeroutput +><index></computeroutput +> dans le fichier <filename +>.toc</filename +>. (Pour plus de détails, reportez-vous à la description ci- dessous dans la section <link linkend="setup-docu-general-toc-files" +>Fichiers TOC &tdevelop;</link +>.) </para> +<para +>La case à cocher <guilabel +>Recherche</guilabel +> dans la <link linkend="setup-docu-columns" +>table de configuration</link +> sera toujours désactivée. </para> + +<para +>Vous pouvez ajouter de nouvelles entrées à l'aide des <link linkend="setup-docu-buttons" +>boutons</link +> situés dans la partie droite du champ de liste. &tdevelop; filtrera les fichiers <filename +>*.toc</filename +> dans la boîte de dialogue des dossiers associée aux boutons <guibutton +>Ajouter</guibutton +> et <guibutton +>Modifier</guibutton +>. </para> + +<note +><para +>Comme les versions autres que les précédentes de &tdevelop; auront le bouton <guibutton +>Supprimer</guibutton +> mais ne changent pas les fichiers <filename +>*.toc</filename +> sur disque, supprimer l'opération est avisé à présent. </para +></note> + +</sect3 +> <!-- setup-docu-general-toc --> + +<sect3 id="setup-docu-general-toc-files"> +<title +>Fichiers &tdevelop;TOC</title> + +<para +>Il y a une fonctionnalité spéciale associée à ce comportement. Pour illustrer, suivez ces étapes : dans l'arborescence de la documentation, cherchez une entrée immédiatement au-dessous de la documentation &Qt;/&kde; (&pex; « KDE2 Development Book (kde.org) »). Cliquez sur le signe + à côté de ce dernier. Une arborescence s'ouvre, dans laquelle vous pouvez rapidement naviguer vers les chapitres ultérieurs imbriqués à plusieurs niveaux de profondeur, entièrement hors ligne. Mais si vous choisissez en dernier lieu un des chapitres, &tdevelop; essaiera dans de nombreux cas d'accéder à un fichier de documentation <emphasis +>distant</emphasis +>. </para> + +<para +>La raison qui justifie tout cela n'est pas seulement naviguer localement dans la documentation distante sans gaspiller des ressources d'accès Internet, mais d'offrir au développeur un accès aisé, structuré à la documentation dont il a besoin. Grâce à ces outils, on peut accéder à presque toute documentation locale ou distante d'une manière structurée même si l'original disposé à plat ou structuré d'une autre façon. Il suffit d'avoir un accès aux fichiers et/ou aux parties des fichiers que Konqueror peut afficher. </para> + +<para +>Un accès ainsi structuré est rendu possible par l'utilisation de fichiers de « table des matières » (ou fichiers TOC) spéciaux, qui sont désignés par des extensions de fichiers <filename +>.toc</filename +>. Tout fichier TOC &tdevelop; de ce type contient une description &XML; structurée du document auquel accéder. </para> + +<variablelist> +<varlistentry> +<term +>Dossier standard des fichiers TOC &tdevelop;</term> +<listitem> +<para +>Lorsque &tdevelop; est installé, une série de fichiers <filename +>.toc</filename +> prédéfinis est habituellement placée dans le dossier <filename class="directory" +>$KDEDIR/share/apps/kdevdoctreeview/tocs</filename +>. Ce sont des fichiers texte assez simples et structurés. Vous pouvez les examiner à l'aide d'un éditeur de texte ou de tout autre fonction d'affichage de exte. </para> +</listitem> +</varlistentry +></variablelist> + +<!-- FIXME: Lauri Watts (2005-05-03) This could be marked up a whole lot --> +<!-- more clearly with the sgmltags stuff. Making a note to do that once --> +<!-- this first revision is done. --> + +<variablelist id="toc-file-structure"> + <title +>Structure de base des fichiers TOC &tdevelop;</title> + <varlistentry> + <term +>en-tête</term> + <listitem> + <simplelist> + <member> + <computeroutput +><!DOCTYPE tdeveloptoc></computeroutput> + </member> + <member> + <computeroutput +><tdeveloptoc></computeroutput> + </member> + <member> + <emphasis +>(titre)</emphasis> + </member> + <member> + <emphasis +>(adresse de base)</emphasis> + </member> + <member> + <emphasis +>(structure du contenu)</emphasis> + </member> + <member> + <emphasis +>(structure de l'index)</emphasis> + </member> + <member> + <computeroutput +></tdeveloptoc></computeroutput> + </member> + </simplelist> + <para +>La structure &XML; sera analysée par le module externe <guilabel +>Documentation</guilabel +> de &tdevelop; pour configurer le contenu de l'arborescence de la documentation et pour guider l'utilisateur dans sa navigation dans la documentation. Elle contient toutes les informations nécessaires pour afficher les titres et pour accéder au contenu des fichiers de documentation. </para> + </listitem> + </varlistentry> + <varlistentry> + <term +>titre</term> + <listitem> + <simplelist> + <member +><computeroutput +><title></computeroutput +> <emphasis +>(n'importe quelle chaîne de titre)</emphasis +> <computeroutput +></titre></computeroutput +> </member> + </simplelist> + <para +>Il s'agit du titre que &tdevelop; affichera aux niveaux de base dans l'arborescence de la documentation. </para> + <note +><para +>L'utilisateur ne peut pas changer ce titre affiché. Si vous souhaitez qu'un autre texte soit affiché, vous devez changer manuellement l'entrée <computeroutput +><titre></computeroutput +> dans le fichier <filename +>.toc</filename +>. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +>adresse de base</term> + <listitem> + <simplelist> + <member +><computeroutput +><base href="</computeroutput +> <emphasis +>(&URL; du document de base)</emphasis +> <computeroutput +>"/></computeroutput +> </member> + </simplelist> + <para +>Cette &URL; pointe sur l'emplacement où se trouvent tous les fichiers de cette documentation. Elle sera ajoutée au début de l'&URL; de chaque section dans la liste de structure de contenu suivante. Donc, si &pex; vous avez téléchargé une documentation sur un serveur distant, il vous suffit de changer son &URL; de <computeroutput +><base></computeroutput +> pour afficher les fichiers à partir de ce nouvel emplacement. </para> + </listitem> + </varlistentry> + <varlistentry> + <term +>structure du contenu</term> + <listitem> + <simplelist> + <member +><computeroutput +><tocsect1 name="</computeroutput +> <emphasis +>(titre de la section)</emphasis +> <computeroutput +>" url="</computeroutput +> <emphasis +>(&URL; de la section)</emphasis +> <computeroutput +>"></computeroutput +> </member> + <member +>...</member> + <member +><computeroutput +><tocsectn name="</computeroutput +> <emphasis +>(titre de la section)</emphasis +> <computeroutput +>" url="</computeroutput +> <emphasis +>(&URL; de la section)</emphasis +> <computeroutput +>"/></computeroutput +> </member> + <member +>...</member> + <member> + <computeroutput +></tocsect1></computeroutput> + </member> + </simplelist> + <para +>Toutes les informations de navigation et d'accès restantes sont enregistrées dans une série de paires <computeroutput +><tocsecti></computeroutput +> ... <computeroutput +></tocsecti></computeroutput +> imbriquées. Chaque <emphasis +>i</emphasis +> désigne un niveau d'imbrication consécutif jusqu'au nombre <emphasis +>n</emphasis +> qui correspond à la section de la documentation finalement affichée. </para> + <para +>Toute entrée <computeroutput +><tocsecti></computeroutput +> doit avoir un attribut « <computeroutput +>name="xxx"</computeroutput +> » qui lui est associé (le « "xxx" » désigne la chaîne de titre réelle). Ce nom sera affiché en tant que titre de niveau dans l'arborescence de la documentation et devra correspondre à une section réelle de la documentation. </para> + <para +>Il peut y avoir un attribut « <computeroutput +>url=""</computeroutput +> » associé à n'importe quel niveau d'imbrication <emphasis +>i</emphasis +>. Lorsque l'utilisateur clique sur un titre de section dans l'arborescence de la documentation, &tdevelop; essaie d'accéder au fichier à l'emplacement sur lequel pointe l'&URL; combinée de base et de section. </para> + <para +>L'entrée <computeroutput +><tocsectn/></computeroutput +> doit avoir un attribut « <computeroutput +>url=""</computeroutput +> » dans tous les cas. Cette <computeroutput +><tocsectn/></computeroutput +> imbriquée finale n'est pas sous la forme de paires mais sera immédiatement fermée par un <computeroutput +>/</computeroutput +> avant l'accolade <computeroutput +>></computeroutput +>. </para> + <note +><para +>Toute adresse combinée d'une &URL; de base et de section doit pointer sur un fichier texte affichable. Habituellement, ce sera un fichier structuré en HTML. Il est possible de le lier à des marques d'ancrage dans un tel fichier HTML à l'aide d'une notation # standard du format : <filename +>/url-basel/url-section#marque-ancrage</filename +>. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +>structure de l'index</term> + <listitem> + <simplelist> + <member> + <computeroutput +><index></computeroutput> + </member> + <member +><computeroutput +><nom entrée="</computeroutput +> <emphasis +>(titre de l'entrée d'index)</emphasis +> <computeroutput +>" url="</computeroutput +> <emphasis +>(&URL; de la section d'index)</emphasis +> <computeroutput +>"/></computeroutput +> </member> + <member> + <computeroutput +></index></computeroutput> + </member> + </simplelist> + <para +>L'index est une liste simple d'entrées - paires de titre et d'&URL;. L'index n'est pas obligatoire. </para> + </listitem> + </varlistentry> +</variablelist> +<!-- FIXME: End --> + +</sect3 +> <!-- setup-docu-general-toc-files --> + +<sect3 id="setup-docu-general-devhelp"> +<title +>Documentation DevHelp</title> + +<para +>La documentation DevHelp est un autre moyen d'accès à la documentation structurée. Elle emploie des fichiers de tables des matières structurés désignés par une extension <filename +>.devhelp</filename +> similaire aux <link linkend="setup-docu-general-toc-files" +>fichiers TOC &tdevelop;</link +> pour accéder à la documentation pour le bureau GNOME 2. </para> +<para +>Vous pouvez vérifier quels devront être les fichiers DevHelp accessibles sur la page de configuration <guilabel +>Collection de documentation DevHelp</guilabel +>. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-devhelp.png" format="PNG"/> + </imageobject> + <caption +><para +>Mise en place de la documentation DevHelp </para +></caption> + </mediaobject> +</screenshot> + +<para +>Les fichiers DevHelp étaient à l'origine accessibles sur le site web <ulink url="http://lidn.sourceforge.net/" +>LiDN</ulink +>, mais il semble qu'ils ne sont pas maintenus depuis quelque temps. De la documentation DevHelp récente est disponible sur la page web <ulink url="http://htmlhelp.berlios.de/books/devhelp.php" +>DevHelp Books Download</ulink +>. </para> + +<para +>Lorsque &tdevelop; est installé, il tente de trouver tous les fichiers <filename +>.devhelp</filename +> dans certains emplacements standard du système, &pex; dans les sous-dossiers de <filename class="directory" +>/opt/gnome/share/</filename +>. Initialement, ces fichiers ne seront pas marqués pour être affichés. Si vous souhaitez voir une autre documentation, cochez la case <guilabel +>TOC</guilabel +> dans la <link linkend="setup-docu-columns" +>table de configuration</link +>. </para> + +<para +>Vous pouvez ajouter de nouvelles entrées à l'aide des <link linkend="setup-docu-buttons" +>boutons</link +> situés dans la partie droite du champ de liste. &tdevelop; filtrera les fichiers <filename +>*.toc</filename +> dans la boîte de dialogue des dossiers associée aux boutons <guibutton +>Ajouter</guibutton +> et <guibutton +>Modifier</guibutton +>. </para> + +</sect3 +> <!-- setup-docu-general-devhelp --> + +<sect3 id="setup-docu-general-custom"> +<title +>Configuration des collections de documentation personnalisée</title> + +<para +>Elle est laissée à votre propre gré. Vous pouvez ajouter pratiquement n'importe quel fichier de documentation ici, pourvu que les modules externes de &konqueror; puissent les afficher. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-custom.png" format="PNG"/> + </imageobject> + <caption +><para +>Mise en place de la documentation personnalisée </para +></caption> + </mediaobject> +</screenshot> + +<para +>Habituellement, cette collection sera vide au premier démarrage de &tdevelop;. Nous avons rempli un élément délibéré pour montrer la structure des entrées. </para> +<para +>La manipulation est très facile ici. Utilisez les <link linkend="setup-docu-buttons" +>boutons</link +> à droite du champ de liste pour ajouter, modifier ou supprimer les éléments de documents. &tdevelop; ne filtrera rien dans la boîte de dialogue associée aux boutons <guibutton +>Ajouter</guibutton +> et <guibutton +>Modifier</guibutton +>. </para> + +<para +>Vous devrez explicitement sélectionner les éléments à afficher dans la fonction de documentation de &tdevelop;. Cochez la case <guilabel +>TOC</guilabel +> de l'entrée dans la <link linkend="setup-docu-columns" +>table de configuration</link +>. </para> + +<note +><para +>On ne peut ni indexer ni faire de recherche dans la documentation personnalisée. Ainsi, les cases à cocher <guilabel +>Index</guilabel +> et <guilabel +>Recherche</guilabel +> n'ont aucun effet ici comme illustré ci-dessus. </para +></note> + +</sect3 +> <!--- setup-docu-general-custom --> + +</sect2 +> <!-- setup-docu-general --> + +<sect2 id="setup-docu-textsearch"> +<title +>Configuration des index de recherche de texte</title> + +<para +>(... à écrire ...) </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-doctree-textsearch.png" format="PNG"/> + </imageobject> + <caption +><para +>Configuration des index de recherche de texte </para +></caption> + </mediaobject> +</screenshot> + +</sect2 +> <!-- setup-docu-textsearch --> + +<sect2 id="setup-docu-other"> +<title +>Autres réglages de configuration de la documentation</title> + +<para +>(... à écrire ...) </para> + +</sect2 +> <!-- setup-docu-other --> + +</sect1 +> <!-- setup-docu --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="setup-advanced"> +<title +>Configuration avancée</title> + +<para +>(... à écrire ...) </para> + +<sect2 id="setup-plugins"> +<title +>Outils Modules externes</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- setup-plugins --> + +</sect1 +> <!-- setup-advanced --> + +</chapter +> <!-- setup --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/survey-manual.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/survey-manual.docbook new file mode 100644 index 00000000000..3db7eb3bda8 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/survey-manual.docbook @@ -0,0 +1,331 @@ +<chapter id="survey-manual"> +<title +>Ce que contient ce manuel</title> + +<para +>Ce manuel utilisateur est destiné à décrire le contenu et l'utilisation de l'EDI (Environnement de Développement Intégré), en anglais, IDE (Integrated Development Environment) &tdevelop; &kdevrelease; du point de vue de l'utilisateur. Ce n'est pas un manuel de programmation, pas plus qu'il ne décrit non plus le processus de développement en détail. Son seul but est de vous guider dans la gestion de l'EDI. </para> +<para +>Vous trouverez ici des information s sur les thèmes suivants : </para> +<variablelist> +<varlistentry> +<term +><link linkend="getting-started" +>Premiers pas avec &tdevelop; — visite guidée</link +> </term> +<listitem> +<para +>Offre un démarrage rapide sur l'utilisation de cet EDI en présentant les étapes des bases sur la manière de travailler sur un projet.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="tdevelop-survey" +>Vue d'ensemble des fonctionnalités de &tdevelop;</link +></term> +<listitem> +<para +>Étend la visite guidée dans le chapitre précédent, en donnant une vue d'ensemble de ce qui est intégré dans &tdevelop; et en vous faisant prendre connaissance avec l'apparence (<foreignphrase +>look and feel</foreignphrase +> de cet EDI.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="setup" +>Configurer &tdevelop;</link +></term> +<listitem> +<para +>Vous montre comment vous pouvez adapter l'EDI pour répondre à vos besoins.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="applicationwizard" +>Premiers pas : l'&appwizard;</link +></term> +<listitem> +<para +>Décrit les bases de la manière de configurer un nouveau projet dans &tdevelop; à l'aide de l'&appwizard;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="editing" +>Outils d'édition</link +></term> +<listitem> +<para +>Tout ce dont vous avez besoin pour écrire vos fichiers sources : utilisation de l'éditeur, recherche de texte tant localement qu'à l'échelle du projet, jusqu'à l'intégration de nouveaux fichiers et classes dans le projet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="file-browsers" +>Les navigateurs de fichiers</link +></term> +<listitem> +<para +>Décrit divers outils permettant d'observer la structure de votre projet et comment accéder aux fichiers avec lesquels vous souhaitez travailler.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="class-browsers" +>Les navigateurs de classes</link +></term> +<listitem> +<para +>Décrit l'un des outils les plus puissants de &tdevelop; qui vous permet de naviguer dans les dépendances des classes, de créer et d'accéder facilement aux classes et méthodes dont vous avez besoin. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="documentation" +>Documentation</link +></term> +<listitem> +<para +>Montre comment accéder à la riche documentation intégrée que &tdevelop; fournit et vous indique comment créer la documentation de votre projet, la documentation de l'&API; concise et puissante, en vous offrant une vue globale de toutes les sources de votre projet ainsi que la documentation utilisateur basée sur les outils docbook.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="project-management" +>Construction et gestion de projets</link +></term> +<listitem> +<para +>Aborde la création et la gestion de votre projet, en décrivant les bases de « autoconf »et « automake », comment configurer des fichiers « make » personnalisés et comment utiliser le compilateur ou les options « make » pour adapter votre application selon vos besoins.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="adv-build-management" +>Gestion de projet avancée</link +></term> +<listitem> +<para +>Examine les moyens de garder des configurations de constructions multiples pour diverses plates-formes, ou pour créer un système embarqué à l'aide de la bibliothèque <application +>Qt/embedded</application +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="debugger" +>L'interface de débogage</link +></term> +<listitem> +<para +>Décrit comment utiliser l'interface de débogage <application +>gdb</application +> intégrée pour que vous puissiez traquer les bogues sans quitter &tdevelop;.</para> +</listitem> +</varlistentry> + +<!-- ### Currently disabled. Probably too specialized programming stuff. Check later again. + <listitem +><para> + <link linkend="python" +>Python</link +> — an overview of how to create Python-based applications in &tdevelop;. + </para +></listitem> + <listitem +><para> + <link linkend="php" +>PHP</link +> — an overview of how to create PHP-based HTML applications in &tdevelop;. + </para +></listitem +>//--> + +<varlistentry> +<term +><link linkend="cvs" +>Utiliser CVS</link +></term> +<listitem> +<para +>Vous indique comment vous pouvez maintenir votre projet à l'aide du système de contrôle de versions CVS ; un incontournable, en particuler si de nombreux développeurs travaillent sur le même projet.</para> +</listitem> +</varlistentry> +</variablelist> + +<!-- + <listitem +><para> + <link linkend="tdevelop-scripting" +>Scripting &tdevelop;</link +> — describes how to add scripts to automate &tdevelop;. + </para +></listitem> + + + <listitem +><para> + Some commonly used information has been put into the <emphasis +>appendix</emphasis +>. Amongst others this consists of: +--> +<para +>Certaines informations couramment employées ont été placées dans l'<emphasis +>annexe</emphasis +>. Entre autres, celles-ci consistent à  : </para> + +<variablelist> +<varlistentry> +<term +><link linkend="tdevelop-install" +>Installer &tdevelop;</link +></term> +<listitem> +<para +>Vous indique où obtenir &tdevelop; et comment le mettre en place et l'exécuter.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<varlistentry> +<term +><link linkend="nutshell" +>En quelques mots — Trucs et astuces</link +></term> +<listitem> +<para +>Une rapide référence aux commandes et actions couramment utilisées. Et un bref guide pour résoudre des problèmes communs lorsqu'on travaille avec &tdevelop;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="unixdev" +>Développement sous &UNIX;</link +></term> +<listitem> +<para +>Un aperçu historique du développement du programme &UNIX;, les principaux outils nécessaires et pourquoi vous avez besoin d'un EDI.</para> +</listitem> +</varlistentry> + +<!-- + <listitem +><para> + <link linkend="app-menus" +>Menus and Toolbars Overview</link +> — provides you with a short overall view of the menu and toolbar selections available. + </para +></listitem> + + <listitem +><para> + <link linkend="app-shortcuts" +>Shortcut Keys</link +> — the keys you can use to work with &tdevelop; without resorting to the mouse. + </para +></listitem> +--> + +<varlistentry> +<term +><link linkend="app-files" +>Fichiers de configuration utilisés par &tdevelop;</link +></term> +<listitem +><para +>Liste les fichiers que &tdevelop; emploie pour enregistrer ses informations internes. Ceci est particulièrement utile au cas où un problème est survenu au cours de votre configuration.</para> +</listitem> +</varlistentry> + +<varlistentry +><term> +<link linkend="plugin-tools" +>Outils modules externes</link> +</term +><listitem +><para +>Liste les outils enfichables que vous pouvez utiliser pour adapter les possibilités de &tdevelop; à vos besoins. </para +></listitem +></varlistentry> + +<!-- + <listitem +><para> + <link linkend="plugin-tools" +>Plugin tools</link +> — provides you with an overview of the parts which make up &tdevelop; and how you can tailor it to suit your needs by only loading the parts that are necessary, both IDE and project-wide. + </para +></listitem> +--> +<varlistentry +><term +> +<link linkend="app-uimodes-examples" +>Exemple de mode d'interface utilisateur de KDevelop </link> +</term +><listitem +><para +>Affiche les modes d'interface utilisateur. </para +></listitem +></varlistentry> + +<varlistentry +><term> +<link linkend="app-misc-info" +>Informations complémentaires </link +> </term +><listitem +><para +>Obtenir des informations, signaler des bogues, etc. </para +></listitem +></varlistentry> + +<varlistentry +><term> +<link linkend="app-changelog" +>Journal des changements (changelog) </link> +</term +><listitem +><para +>Affiche l'historique de cette documentation. </para +></listitem +></varlistentry> + +<varlistentry +><term> +<link linkend="app-bibliography" +>Bibliographie </link +> +</term +><listitem +><para +>Bibliographie </para +></listitem +></varlistentry> + +</variablelist +> + <!-- + <listitem +><para> + <link linkend="documentation-index" +>Index </link +> — + </para +></listitem> +--> + + +</chapter> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-install.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-install.docbook new file mode 100644 index 00000000000..a5291f0a2df --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-install.docbook @@ -0,0 +1,1288 @@ +<appendix id="tdevelop-install"> + +<appendixinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <author +><firstname +>Anne-Marie</firstname +><surname +>Mahfouf</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</appendixinfo> + +<title +>Installation de &tdevelop;</title> + +<indexterm zone="tdevelop-install"> + <primary +>installation</primary +></indexterm> + +<para +>Dans ce chapitre, nous étudierons les étapes nécessaires pour compiler et installer l'EDI &tdevelop; : <itemizedlist> + <listitem +><para +>Le document <link linkend="tdevelop-install-howto" +>Comment obtenir &tdevelop;</link +> se concentre principalement sur le téléchargement des souces les plus récentes de &tdevelop; depuis SVN. </para +></listitem> + <listitem +><para +>Le document <link linkend="requirements" +>Conditions requises pour &tdevelop;</link +> énumère les programmes et bibliothèques qui doivent être installés pour réussir à compiler l'EDI. </para +></listitem> + <listitem +><para +>Le document <link linkend="compile-and-install" +>Compilation et installation de &tdevelop;</link +> vous guide tout au long des étapes de compilation et d'installation de l'application. </para +></listitem> + <listitem +><para +>Le document <link linkend="make-api" +>Comment obtenir une documentation de l'&API; &tdevelop;</link +> décrit ce qu'est une API et comment vous procurer un outil si utile pour naviguer dans les sources de &tdevelop;. </para +></listitem> +</itemizedlist> +</para> + +<sect1 id="tdevelop-install-howto"> +<title +>Comment obtenir &tdevelop;</title> + +<indexterm zone="tdevelop-install-howto"> + <primary +>obtenir &tdevelop;</primary +></indexterm> +<indexterm zone="tdevelop-install-howto"> + <primary +>&tdevelop;</primary> + <secondary +>obtenir</secondary +></indexterm> + +<para +>&tdevelop; est disponible sous forme d'exécutable dans différentes distributions &Linux; telles que SuSE, RedHat et autres. Ces exécutables sont conditionnés dans un format pratique, le plus souvent en RPM, pour une installation aisée. Pour l'installer, suivez les instructions standard fournies dans votre distribution. </para> +<para +>Vous pouvez également obtenir les sources de &tdevelop;, les compiler et les installer vous-même. Vous les trouverez sur la page d'accueil du projet <ulink url="http://www.tdevelop.org" +> http://www.tdevelop.org</ulink +> ou sur le <ulink url="http://download.kde.org" +>site ftp de &kde;</ulink +>. </para> + +<sect2 id="howto-svn"> +<title +>Obtenir les instantanés quotidiens de &tdevelop; depuis SVN</title> + +<indexterm zone="howto-svn"> + <primary +>svn</primary +></indexterm> + +<para +>Si vous vous souhaitez être à la pointe du développement actuel, des instantanés sont disponibles sur le référentiel SVN anonyme.</para> +<para +>Le nom du module est <emphasis +>tdevelop</emphasis +> à l'adresse <filename class="directory" +>svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop</filename +>. </para> + +<sect3 id="howto-svn-co"> +<title +>Extraction initiale depuis SVN</title> + +<indexterm zone="howto-svn-co"> + <primary +>extraction</primary +></indexterm> +<indexterm zone="howto-svn-co"> + <primary +>&tdevelop;</primary> + <secondary +>svn</secondary> + <tertiary +>extraction</tertiary +></indexterm> + +<para +>Pour obtenir une version initiale de &tdevelop;, vous devez la télécharger depuis le SVN anonyme. Pour cette opération que l'on appelle <emphasis +>extraction</emphasis +>, suivez ces étapes. </para> + +<note +><para +>Nous partons du principe que vous placerez votre copie de &tdevelop; dans le sous-dossier <filename class="directory" +>kde3src</filename +> de votre dossier personnel (<filename class="directory" +>~</filename +>). </para +></note> + +<informalexample +><simplelist> + <member +># Créez le dossier de destination, si nécessaire : </member> + <member +><prompt +>~> </prompt +> <userinput +>mkdir kde3src</userinput +> </member> + <member +><prompt +>~> </prompt +> <userinput +>cd kde3src</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>cd tdevelop</userinput +> </member> +</simplelist +></informalexample> + +<note +><para +>Une fois que vous avez réussi à extraire votre version de &tdevelop;, vous pouvez suivre l'évolution des changements grâce à la procédure de mise à jour décrite dans la prochaine section. </para +></note> + +<important +><para +>Maintenez la charge du serveur faible. <emphasis +>Ne faites pas d'extraction chaque fois que vous souhaitez conserver votre &tdevelop; à jour !</emphasis +> Utilisez la mise à jour par SVN à cette fin. </para +></important> + +<para +>À présent, compilez votre version de &tdevelop; comme décrit dans la section <link linkend="compile-and-install" +>Compilation et installation de &tdevelop;</link +>. </para> + +</sect3 +> <!-- howto-svn-co --> + +<sect3 id="howto-svn-up"> +<title +>Gardez votre copie SVN à jour</title> + +<indexterm zone="howto-svn-up"> + <primary +>mise à jour</primary +></indexterm> +<indexterm zone="howto-svn-up"> + <primary +>&tdevelop;</primary> + <secondary +>svn</secondary> + <tertiary +>mise à jour</tertiary +></indexterm> + +<para +>Après avoir extrait (et compilé avec succèe) &tdevelop; à partir de SVN comme décrit ci-dessus, vous devrez la garder à jour afin d'obtenir tous les correctifs. Suivez ces étapes. (Nous supposons à nouveau que vous avez placé votre copie de &tdevelop; dans le dossier <filename class="directory" +>kde3src</filename +>.) </para> +<para +>Notez la commande <command +>up</command +> (= <emphasis +>update</emphasis +>) au lieu du <command +>co</command +> (qui signiifie <emphasis +>checkout</emphasis +>). </para> + +<informalexample +><simplelist> + <member +><prompt +>~> </prompt +> <userinput +>cd kde3src</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>cd tdevelop</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>svn up</userinput +> </member> +</simplelist +></informalexample> + +<note +><para +>Gardez un Å“il sur les messages que SVN produit pendant la séquence de mise à jour. Les étapes exactes dans la séquence de compilation en dépendent. </para +></note> + +<para +>Maintenant, vous pouvez compiler une nouvelle version de &tdevelop; comme décrit dans le chapitre <link linkend="compile-and-install-make-svn" +>Considérations de compilation spéciales par SVN</link +>. </para> +</sect3 +> <!-- howto-svn-up --> + +</sect2 +> <!-- howto-svn --> + +</sect1 +> <!-- howto --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="requirements"> +<title +>Conditions requises pour &tdevelop;</title> + +<indexterm zone="requirements"> + <primary +>conditions requises</primary +></indexterm> +<indexterm zone="requirements"> + <primary +>&tdevelop;</primary> + <secondary +>conditions requises</secondary +></indexterm> +<indexterm zone="requirements"> + <primary +>GNU</primary> + <secondary +>conditions requises</secondary +></indexterm> + +<para +>Afin de réussir à compiler et à utiliser &tdevelop;, vous avez besoin des programmes et bibliothèques suivants. Ils sont disponibles sur la plupart des plates-formes sous forme de paquetages dans votre distribution et peuvent de ce fait être installés aisément. </para> + +<itemizedlist> +<title +>Requis :</title> + <listitem> + <para +><application +>gcc/g++</application +> ≥ 2.95.3 (ou compatible) <indexterm> + <primary +>gcc</primary> + <secondary +>conditions requises</secondary +></indexterm> + <indexterm> + <primary +>g++</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="gcc.gnu.org" +>gcc.gnu.org</ulink +> </para> + </listitem> + <listitem> + <para +><application +>&GNU; make</application +> (ou compatible) <indexterm> + <primary +>make</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.gnu.org/software/make" +>www.gnu.org/software/make</ulink +> </para> + </listitem> + <listitem> + <para +>&perl; 5.004 (ou supérieur) <indexterm> + <primary +>Perl</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.perl.com" +>www.perl.com</ulink +> </para> + </listitem> + <listitem> + <para +><application +>autoconf</application +> ≥ 2.52 (ou supérieur) <indexterm> + <primary +>autoconf</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.gnu.org/software/autoconf" +>www.gnu.org/software/autoconf</ulink +> </para> + </listitem> + <listitem> + <para +><application +>automake</application +> ≥ 1.6 (ou supérieur) <indexterm> + <primary +>automake</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.gnu.org/software/automake" +>www.gnu.org/software/automake</ulink +> </para> + </listitem> + <listitem> + <para +><application +>flex</application +> 2.5.4 (ou supérieur) <indexterm> + <primary +>flex</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.gnu.org/software/flex" +>www.gnu.org/software/flex</ulink +> </para> + </listitem> + <listitem> + <para +>&Qt; ≥ 3.3.0 (ou supérieur) <indexterm> + <primary +>Qt</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.trolltech.com/products/qt" +>www.trolltech.com/products/qt</ulink +> </para> + </listitem> + <listitem> + <para +><application +>KDE</application +> ≥ 3.4.0 (ou supérieur) <indexterm> + <primary +>KDE</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para> + <para +>Disponible à l'adresse <ulink url="www.kde.org" +>www.kde.org</ulink +> </para> + </listitem> +</itemizedlist> + +<itemizedlist> +<title +>Optionnels :</title> + <listitem +><para +>L'<emphasis +>outil d'exploration des sources <application +>ctags</application +></emphasis +>, disponible à l'adresse <ulink url="http://ctags. sourceforge.net" +>http://ctags.sourceforge.net</ulink +>, qui vous permet en quelques clics sur un nom présent dans l'éditeur, d'accéder rapidement à des déclarations et à des définitions. <indexterm +><primary +>ctags</primary +></indexterm> + </para +></listitem> + <listitem +><para +><emphasis +><application +>dot</application +></emphasis +>, un compilateur graphique de langage, disponible à l'adresse <ulink url="http://www.graphviz.org" +>http:/www.graphviz.org</ulink +>. Cet outil est nécessaire en association avec &doxygen; ci-dessous si vous souhaitez avoir des relations de classes affichées graphiquement (ce qui est vivement recommandé). <indexterm +><primary +>dot</primary +></indexterm> + </para +></listitem> + <listitem +><para +>L'outil de documentation <emphasis +>&doxygen;</emphasis +>, disponible à l'adresse <ulink url="http://www.doxygen.org" +>http://www.doxygen.org</ulink +> pour pouvoir générer la documentation concise et puissante de l'API pour vos projets. <indexterm +><primary +>doxygen</primary +></indexterm> + </para +></listitem> + <listitem +><para +><emphasis +><application +>valgrind</application +></emphasis +> disponible à l'adresse <ulink url="http://developer.kde.org/~sewardj/" +>http://developer.kde.org/~sewardj/</ulink +> vous aide à repérer des problèmes de gestion de la mémoire dans vos applications. <indexterm +><primary +>valgrind</primary +></indexterm> + </para +></listitem> + <listitem +><para +><emphasis +><application +>svn</application +></emphasis +> à l'adresse <ulink url="http://subversion.tigris.org/" +>http://subversion.tigris.org/</ulink +> si vous souhaitez utiliser le système de contrôle de versions SVN. <indexterm> + <primary +>svn</primary> + <secondary +>conditions requises</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Tous autres compilateur et/ou outil, au cas où vous souhaitiez développer pour un langage ou une plate-forme autres que C++ / &kde;, voire utiliser certaines fonctions spéciales. </para +></listitem> +</itemizedlist> + +<note> +<orderedlist> + <listitem> + <para +>Vous pouvez, dans une certaine mesure, vous soustraire à la nécessité de &autoconf; ≥  2.52 et &automake; ≥ 1.6. Supprimez simplement le dossier <filename class="directory" +>admin</filename +> dans votre dossier d'installation &tdevelop; et saisissez <indexterm> + <primary +>autoconf</primary> + <secondary +>se soustraire à la nécessité d'une version</secondary +></indexterm> + <indexterm> + <primary +>automake</primary> + <secondary +>se soustraire à la nécessité d'une version</secondary +></indexterm> + <indexterm> + <primary +>nécessité d'une version</primary> + <secondary +>se soustraire pour autoconf / automake</secondary +></indexterm> + </para> + <informalexample +><simplelist> + <member +><prompt +>(votre-dossier-tdevelop)> </prompt +> <userinput +>ln -s $KDEDIR/share/apps/tdelibs/admin admin</userinput +></member> + </simplelist +></informalexample> + <para +>sur la console. Cette action amène &tdevelop; à utiliser les réglages par défaut dans le dossier <filename class="directory" +>admin</filename +> de &kde; à la place. </para> + </listitem> + <listitem> + <para +>Veillez à <emphasis +>ne pas mélanger plusieurs versions de &Qt;</emphasis +>. Liez toujours &tdevelop; à la même version de &Qt; avec laquelle votre bibliothèque &kde; a été compilée. Sinon, vous rencontrerez certainement des comportements <emphasis +>très étranges</emphasis +>. </para> + </listitem> +</orderedlist> +</note> + +</sect1 +> <!-- requirements --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="compile-and-install"> +<title +>Compilation et installation de &tdevelop;</title> + +<indexterm zone="compile-and-install"> + <primary +>&tdevelop;</primary> + <secondary +>compilation</secondary +></indexterm> +<indexterm zone="compile-and-install"> + <primary +>&tdevelop;</primary> + <secondary +>installation</secondary +></indexterm> + +<para +>Une fois que toutes les conditions requises sont satisfaites, vous êtes prêt à compiler et à installer &tdevelop;. Cette annexe sera consacrée aux étapes nécessaires pour y parvenir. </para> +<itemizedlist> + <listitem +><para +>Le document <link linkend="compile-and-install-preliminaries" +>Étapes préliminaires</link +> décrit la configuration d'un environnement adéquat. </para +></listitem> + <listitem +><para +>Le document <link linkend="compile-and-install-make" +>Compiler &tdevelop;</link +> montre comment obtenir les sources de &tdevelop; depuis SVN, les préparer pour le processus d'installation, en terminant par la description des étapes nécessaires pour compiler et installer &tdevelop;. </para +></listitem> + <listitem +><para +>Le document <link linkend="compile-and-install-options" +>Quelques notes sur la configuration des options</link +> vous explique comment exécuter &tdevelop; s'il a été installé dans un endroit autre que le dossier &kde;. </para +></listitem> +</itemizedlist> + +<sect2 id="compile-and-install-preliminaries"> +<title +>Étapes préliminaires</title> + +<indexterm zone="compile-and-install-preliminaries"> + <primary +>préliminaires</primary> + <secondary +>Installation de &tdevelop;</secondary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>KDEDIR</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>QTDIR</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>LD_LIBRARY_PATH</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>LIBRARY_PATH</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>PATH</primary +></indexterm> + +<para +>Avant de démarrer la séquence de compilation, vérifiez que toutes les bibliothèques et autres outils sont à la disposition du système « make ». Pour ce faire, il faut définir correctement certaines variables d'environnement. Les étapes réelles à exécuter dépendant de la console shell que vous utilisez. </para> + +<note +><para +>Pour éviter de saisir toutes les instructions qui définissent les variables d'environnement chaque fois que vous souhaitez compiler, placez-les dans votre fichier <filename +>.bashrc</filename +> ou <filename +>.cshrc</filename +>. Ainsi, les variables d'environnement seront correctement définies chaque fois que vous démarrez le shell. </para +></note> + +<sect3 id="compile-and-install-preliminaries-bash"> +<title +>Définir l'environnement pour le shell bash</title> + +<para +>Si vous utilisez le shell bash, ajoutez les lignes suivantes : </para> + +<informalexample +><simplelist> + <member +><userinput +>export KDEDIR=</userinput +>(chemin vers votre installation KDE)</member> + <member +><userinput +>export QTDIR=</userinput +>(chemin vers votre bibliothèque Qt)</member> + <member +><userinput +>export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH</userinput +></member> + <member +><userinput +>export LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH</userinput +></member> + <member +><userinput +>export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH</userinput +></member> +</simplelist +></informalexample> +<para +></para> + +</sect3 +> <!-- compile-and-install-preliminaries-bash --> + +<sect3 id="compile-and-install-preliminaries-tcsh"> +<title +>Définir l'environnement pour le shell tcsh</title> + +<para +>Si vous utilisez le shell tcsh, ajoutez les lignes suivantes : </para> +<para> +<informalexample +><simplelist> + <member +><userinput +>setenv KDEDIR </userinput +>(chemin vers votre installation KDE)</member> + <member +><userinput +>setenv QTDIR </userinput +>(chemin vers votre bibliothèque Qt)</member> + <member +><userinput +>setenv LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH</userinput +></member> + <member +><userinput +>setenv LIBRARY_PATH $QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH</userinput +></member> + <member +><userinput +>setenv PATH $QTDIR/bin:$KDEDIR/bin:$PATH</userinput +></member> +</simplelist +></informalexample> +</para> + +</sect3 +> <!-- compile-and-install-preliminaries-tcs --> + +</sect2 +> <!-- compile-and-install-preliminaries --> + +<sect2 id="compile-and-install-make"> +<title +>Compiler &tdevelop;</title> + +<indexterm zone="compile-and-install-make"> + <primary +>make</primary> + <secondary +>Installation de &tdevelop;</secondary +></indexterm> +<indexterm zone="compile-and-install-make"> + <primary +>compiler</primary> + <secondary +>&tdevelop;</secondary +></indexterm> + +<note +><para +>Dans l'étude suivante, nous supposons que vous avez placé vos sources &tdevelop; dans le dossier <filename class="directory" +>~/kde3src/tdevelop</filename +>. </para +></note> + +<sect3 id="compile-and-install-make-svn"> +<title +>Considérations de compilation spéciales par SVN</title> + +<para +>Au cas où vous utiliseriez un instantané &tdevelop; issu de SVN, les étapes initiales de compilation dépendent si vous avez juste fait une extraction complète ou seulement actualisé le source. </para> + +<variablelist> +<varlistentry> +<term id="compile-and-install-make-svn-co" +>Après une extraction de SVN</term> +<listitem> +<para +>Vous devez <emphasis +>initialiser le système « make »</emphasis +> après une récente extraction. La même chose est vraie chaque fois que vous devez démarrer <emphasis +>ex nihilo</emphasis +>. Saisissez : </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make -f admin/Makefile.common svn-clean</userinput +> </member +></simplelist +></informalexample> +<para +>puis <emphasis +>toutes les étapes qui suivent</emphasis +>. </para> +<note +><para +>Vous pourrez être amené à accéder au référentiel SVN pour le nettoyage, si un fichier corrompu ou manquant doit être reconstruit. </para +></note> +<important +><para +>La commande <command +>cvs-clean</command +> <emphasis +>supprime du dossier tout fichier</emphasis +> non présent dans SVN ! Veillez à sauvegarder les informations qui présentent de l'intérêt avant d'émettre cette commande de nettoyage. </para +></important> +</listitem> +</varlistentry> + +<varlistentry> +<term id="compile-and-install-make-svn-up" +>Après une mise à jour par SVN</term> +<listitem> +<para +>La prochaine étape dépend de la sortie de la séquence de mise à jour par SVN. Si vous avez obtenu quelque chose comme (il peut s'agir d'un marqueur U ou P dans la colonne la plus à gauche, les deux indiquanr que le fichier a été modifié) : </para> + +<screen +>U /un_dossier_path/Makefile.am +</screen> +<para +>ou, si vous avez juste fait une extraction complète, saisissez : </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make -f Makefile.svn</userinput +> </member +></simplelist +></informalexample> +<para +>avant de poursuivre avec <emphasis +>toutes les étapes suivantes</emphasis +>. </para> +</listitem> +</varlistentry> +</variablelist> +</sect3 +> <!-- compile-and-install-make-svn --> + +<sect3 id="compile-and-install-make-basic"> +<title +>Séquence de commandes <command +>make</command +> de base</title> + +<para +>Dès lors que le système make de base est installé, vous devez décider quel type de système &tdevelop; vous souhaitez utiliser. Cette tâche s'effectue lors de l'étape configure suivante, qui construit les <filename +>Makefile</filename +>s réels que la commande <command +>make</command +> utilisera. </para> + +<note +><para +>Vous pouvez ignorer l'option <option +>--prefix</option +> dans les lignes de commande <command +>configure</command +> suivantes si vous voulez que &tdevelop; soit installé dans le dossier &kde; pa défaut. Reportez-vous au chapitre <link linkend="compile-and-install-options" +>Quelques notes sur les options de configure</link +> pour ce faire. </para +></note> + +<variablelist> +<varlistentry> +<term +>Une version compilée par « debug »</term> +<listitem> +<para +>Pour garder une trace de ce que fait votre application &tdevelop; au moment de l'exécution, construisez une version compilée par « debug » : il suffit d'utiliser la commande <command +>configure</command +> : </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --enable-debug=full --prefix=</userinput +>(où-se_trouve-votre-kde3) </member +></simplelist +></informalexample> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Une version compilée par « release »</term> +<listitem> +<para +>Si vous souhaitez n'utiliser &tdevelop; telle quelle, une version « release »(moins volumineuse mais qui s'exécute plus rapidement) suffit. <command +>configure</command +> règle celle-ci par défaut.</para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --prefix=</userinput +>(où-se_trouve-votre-kde3) </member +></simplelist +></informalexample> + +<note> +<para +>Pour construire votre propre <link linkend="make-api" +>documentation de l'API</link +> pour &tdevelop;, vous devez inclure encore une autre option dans la commande <command +>configure</command +> : </para> +<informalexample +><simplelist> + <member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --</userinput +>(options-comme-ci-dessus) <userinput +>\</userinput +></member +> <member +><userinput +>--with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs</userinput +></member> +</simplelist +></informalexample> +</note> +</listitem> +</varlistentry> + +<varlistentry> +<term +>« Make » et « Install »er &tdevelop;</term> +<listitem> +<para +><command +>configure</command +> vérifie le système et construit quelques <filename +>Makefile</filename +>s en fonction de ce qu'il a trouvé. La commande <command +>make</command +> utilise le <filename +>Makefile</filename +> principal par défaut. Ainsi </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make</userinput +> </member +></simplelist +></informalexample> +<para +>suffit. Si nécessaire, acquérez à présent les droits de l'utilisateur « root » à l'aide de la commande </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>su</userinput +> </member +></simplelist +></informalexample> +<para +>et en saisissant le mot de passe « root ». Puis installez l'application : </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make install</userinput +> </member +></simplelist +></informalexample> +<para +>Vous avez terminé. Si vous avez installé &tdevelop; dans le dossier &kde; par défaut, exécutez maintenant l'EDI. Sinon, quelques étapes supplémentaires seront nécessaires, comme décrit dans la section <link linkend="compile-and-install-options-dir" +>Dossier d'installation autre que le dossier par défaut</link +> ci-dessous. </para> + +<note> + <para +>En fait, trois applications basées sur &tdevelop; auront en principe été installées : </para> + <itemizedlist> + <listitem +><para +>L'EDI &tdevelop; — c'est l'endroit où vous travaillerez habituellement.</para +></listitem> + <listitem +><para +>Le navigateur autonome de documentation de l'assistant de &tdevelop; — isole l'ensemble des puissantes fonctions de documentation de l'EDI &tdevelop; dans un outil séparé. Celui-ci est pratique lorsque vous voulez chercher de la documentation mais que vous ne souhaitez pas démarrer l'EDI complet.</para +></listitem> + <listitem +><para +>Le Designer &tdevelop; — améliore le concepteur d'interface utilisateur de &Qt; par des éléments propres à &kde; et s'intègre parfaitement dans l'EDI &tdevelop;.</para +></listitem> + </itemizedlist> +</note> +</listitem> +</varlistentry> +</variablelist> + + +</sect3 +> <!-- compile-and-install-make-basic --> +</sect2 +> <!-- compile-and-install-make --> + + +<sect2 id="compile-and-install-options"> +<title +>Quelques notes sur les options de <command +>configure</command +></title> + +<sect3 id="compile-and-install-options-dir"> +<title +>Dossier d'installation autre que le dossier par défaut</title> + +<indexterm zone="compile-and-install-options-dir"> + <primary +>&tdevelop;</primary> + <secondary +>installation</secondary> + <tertiary +>dossier autre que le dossier par défaut</tertiary +></indexterm> +<indexterm zone="compile-and-install-options-dir"> + <primary +>dossier autre que le dossier par défaut</primary +></indexterm> +<indexterm zone="compile-and-install-options-dir"> + <primary +>KDEDIRS</primary +></indexterm> +<indexterm zone="compile-and-install-options-dir"> + <primary +>kbuildsycoca</primary +></indexterm> + +<para +>Par défaut, <command +>configure</command +> prépare l'EDI à être installé dans le dossier &kde; par défaut. Ceci est nécessaire parce que &tdevelop; suppose un accès direct à certains outils et parties qui y résident. Si vous souhaitez utiliser votre propre dossier d'installation, indiquez celui-ci à <command +>configure</command +> à l'aide de l'option <option +>--prefix</option +> : </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --prefix=</userinput +>(où-se_trouve-votre-kde3) </member +></simplelist +></informalexample> +<para +>Faites attention si vous procédez ainsi. Vous devez fournir un moyen à &tdevelop; d'accéder aux outils et aux parties requises dans le dossier &kde; lors de l'exécution. (Vous pouvez encore utiliser l'EDI sans faire cela, mais avec des possibilités très restreintes.) </para> +<para +>Appelez un shell et faites en sorte que les commandes suivantes soient exécutées avant de démarrer &tdevelop; à l'invite du shell. </para> + +<note +><para +><emphasis +>Veillez à utiliser le pluriel :</emphasis +> Il s'agit de <quote +><envar +>KDEDIRS</envar +></quote +>, pas simplement de <quote +><envar +>KDEDIR</envar +></quote +>) </para +></note> + +<informalexample +><simplelist> + <member +><prompt +>~> </prompt +> <userinput +>export KDEDIRS=/usr/local/kde:/opt/kde3</userinput +> </member> + <member +><prompt +>~> </prompt +> <userinput +>kbuildsycoca</userinput +> </member> + <member +>(Démarrez maintenant &tdevelop; :) </member> + <member +><prompt +>~> </prompt +> <userinput +>tdevelop</userinput +> </member> +</simplelist +></informalexample> + +<note +><simplelist> + <member +>La variable d'environnement <envar +>KDEDIRS</envar +> doit être positionnée sur la <emphasis +>liste des dossiers &kde; actifs</emphasis +> dans votre système. Nous n'utilisons</member> + <member +><filename class="directory" +>/usr/local/kde</filename +>:<filename class="directory" +>/opt/kde3</filename +></member> + <member +>qu'à titre d'exemple.</member> + <member +>Le dossier <filename class="directory" +>/usr/local/kde</filename +> peut, par exemple, contenir une version de &kde; incomplète que vous avez compilée à des fins de débogage ; en outre, le dossier <filename class="directory" +>/opt/kde3</filename +> est susceptible de contenir la version standard de &kde; issus de la distribution que vous employez pour votre travail au quotidien.</member> +</simplelist +></note> + +<para +>Dans un shell tcsh, il faut définir les variables d'environnement en utilisant : </para> +<informalexample +><simplelist +><member +><prompt +>~> </prompt +> <userinput +>setenv KDEDIRS /usr/local/kde:/opt/kde3</userinput +> </member +></simplelist +></informalexample> +<para +>La commande <command +>kbuildsycoca</command +> (b uild s«ystem control cache ) lcherche les bibliothèques et met en cache leurs emplacement et version, de façon à ce que &tdevelop; puisse les trouver. À noter qu'elle prend un temps non négligeable — et qu'il faut la lancer chaque fois que vous appelez le shell pour démarrer &tdevelop; depuis un dossier autre que le dossier par défaut. Vous pouvez être amené à placer les commandes ci-dessus dans un script shell pour réduire l'effort de saisie. </para> +<para +>(Vous pourriez également placer ces lignes dans votre fichier <filename +>.bashrc</filename +> ou <filename +>.cshrc</filename +>, mais ce n'est pas à conseiller car <command +>kbuildsycoca</command +> s'exécutera ensuite chaque fois que vous appellerez le shell.) </para> + +<note +><para +>La commande <command +>kbuildsycoca</command +> ne s'exécute pas sous compte «root». Appelez-la à partir d'un compte utilisateur non « root ». (Mais <emphasis +>ce n'est pas une très bonne idée</emphasis +> de toute façon de développer des logiciels en tant que « root » !) </para +></note> +</sect3 +> <!-- compile-and-install-options-dir --> + +<!-- ### put a sect3 with other configuration options here --> + +</sect2 +> <!-- compile-and-install-options --> + +</sect1 +> <!-- compile-and-install --> + +<sect1 id="make-api"> +<title +>Comment obtenir la documentation de l'API &tdevelop;</title> + +<indexterm zone="make-api"> + <primary +>API</primary> + <secondary +>&tdevelop;</secondary +></indexterm> +<indexterm zone="make-api"> + <primary +>&tdevelop;</primary> + <secondary +>API</secondary +></indexterm> +<indexterm zone="make-api"> + <primary +>compiler</primary> + <secondary +>&tdevelop;</secondary> + <tertiary +>API</tertiary +></indexterm> +<indexterm zone="make-api"> + <primary +>configure</primary> + <secondary +>API &tdevelop;</secondary +></indexterm> + +<para +>API est l'abrégé de « Application Program Interface ». En réalité, une telle API contient une série de descriptions (&cad; des conventions d'appel) par lesquelles un logiciel d'application peut accéder au système d'exploitation et à d'autres services. Dans notre contexte, toutefois, une définition générique a été adoptée. L'API d'une application &kde; ou &Qt; est un résumé des interfacesde classes et de méthodes, un synopsis à utiliser comme un dictionnaire pour naviguer dans les sources. </para> +<para +>La version de l'API la plus récente est disponible sur le <ulink url="http://www.tdevelop.org/HEAD/doc/api/html/index.html" +>site web de KDevelop</ulink +>. Comme elle est automatiquement actualisée toutes les 24 heures, vous pouvez continuer. </para> +<para +>Malheureusement, cette version est surtout utilisée en lecture seule sur l'internet. Si vous n'avez pas d'accès au Net, vous pouvez construire votre propre documentation de l'API à partir des sources de &tdevelop;. Pour ce faire, indiquez au système automake où trouver l'API KDELIBS dans votre système. Utilisez alors l'option spéciale <option +>--with-tdelibsdoxy-dir</option +> dans la commande <command +>configure</command +> quand vous vous préparez à compiler les sources de &tdevelop; : </para> + +<informalexample +><simplelist> + <member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --</userinput +>(options-comme-d_habitude)<userinput +> \</userinput +> </member> + <member> + <userinput +>--with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs</userinput> + </member> +</simplelist +></informalexample> + +<para +>(<command +>make</command +> remplacera la variable globale <varname +>$KDEDIR</varname +> par le paramètre du dossier &kde; réel enregistré dedans.) Émettez ensuite une commande <command +>make</command +> <link linkend="compile-and-install-make-basic" +>comme d'habitude</link +>. Une fois que l'EDI &tdevelop; a été construit, vous avez le choix de construire l'API également. Pour cela, saisissez </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make apidocs</userinput +> </member +></simplelist +></informalexample> + +<para +>Cette commande construit un <filename +>Doxyfile</filename +> dans votre dossier &tdevelop; de base, qui sera à son tour traité par l'application <application +>Doxygen</application +> pour construire une quantité considérable de fichiers d'API <filename +>.html</filename +>. Quand ce processus de construction d'API plutôt long (il peut durer plus d'une heure sur un système lent) arrive à sa fin, installez l'API tout comme vous le feriez pour l'EDI &tdevelop; lui-même. Si nécessaire, acquérez les droits de super-utilisateur (« root ») en </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>su</userinput +> </member +></simplelist +></informalexample> + +<para +>et en saisissant le mot de passe root. Puis installez les fichiers d'API : </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make install-apidox</userinput +> </member +></simplelist +></informalexample> + +<para +>Ensuite, <command +>make</command +> vous indique dans queldossier vous pouvez enfin examiner le contenu de la documentation de l'API. Notez cette adresse, vous pouvez vous en servir dans &konqueror; ainsi que dans tdevelop;, au cas où vous auriez installé les sources de &tdevelop; elles-mêmes en tant que projet sur lequel travailler. </para> + +<note +><para +>Vous verrez probablement beaucoup de messages d'avertissement et/ou d'erreurs au cours de la construction de l'API exécutée par <application +>Doxygen</application +>. Il vaut mieux les ignorer, ils n'ont d'intérêt que pour les développeurs de &tdevelop;. Si la génération de l'API aboutit avec succès, les fichiers d'API <filename +>.html</filename +> seront utilisables. </para +></note> + +</sect1 +> <!-- make-api --> + +</appendix +> <!-- tdevelop-install --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-scripting.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-scripting.docbook new file mode 100644 index 00000000000..6250d8236e1 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-scripting.docbook @@ -0,0 +1,74 @@ +<chapter id="tdevelop-scripting"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Ian</firstname +><surname +>Geiser</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Utilisation des scripts dans KDevelop</title> + +<sect1 id="running-scripts"> +<title +>Exécution de scripts</title> +<para +>Pour accéder à un script disponible pour &tdevelop;, utilisez le menu <menuchoice +><guimenu +>Outils</guimenu +><guimenuitem +>Scripts</guimenuitem +></menuchoice +>. Si vous n'avez pas ce type d'élément de menu, c'est qu'il n'y a aucun script installé disponible pour KDevelop. </para> +</sect1> + +<sect1 id="adding-scripts"> +<title +>Ajout de scripts</title> +<para +>Une fois que vous avez ajouté la prise en charge de KScript à votre application hôte, l'ajout des scripts est tout aussi facile. Les scripts sont composés de deux parties, un fichier « desktop » qui contient des métadonnées sur le script et le script lui-même. Cette approche a été utilisée pour des raisons de sécurité et de simplicité. Le fichier « desktop » fournit des métainformations pour les menus et le type du script. Ce comportement évite à l'application hôte d'avoir à contrôler le chargement de chaque script. Voici un exemple de ce fichier : </para> +<para +>L'exemple ci-dessus montre les parties principales que KScript cherchera. Le premier élément, le « Nom », est le nom qui apparaîtra à l'utilisateur dans l'application hôte et le « Commentaire » sera habituellement fourni sous la forme d'une infobulle. Le « Type » est le plus important, car il sert à sélectionner le moteur de script approprié pour lancer le script. Actuellement, les seuls disponibles pour KDE sont « ShellScript/bash » et « JavaScript/kjs ». L'étape suivante consiste à créer le script proprement dit. Pour l'exemple ci-dessus, le type de script employé est « ShellScript/bash ». Le moteur de script « shellscript » fournit quelques renseignements au développeur. Le premier élément est l'ID DCOP de l'application hôte, qui est passé au script comme premier argument. Cela signifie que n'importe où dans le script, la valeur de « $1 » retournera l'ID DCOP de l'hôte. Voici un exemple de script shell : </para> + +<para +>Ce script est tout à fait simple. Il exécute simplement une commande et positionne le texte du premier document sur la sortie de « ls -l »</para> + +<para +>Un des outils les plus utiles dans le développement de scripts pour des applications est l'application KDCOP.</para> +<figure id="screenshot-kdcop" float="1"> + <title +>KDCOP parcourant des interfaces DCOP dans &tdevelop;</title> + <mediaobject> + <imageobject +><imagedata fileref="kdcop_browsing.png"/></imageobject> + </mediaobject> +</figure> + +<para +>L'outil KDCOP permet aux développeurs de scripts de parcourir et de déboguer les interfaces actuelles de l'application hôte. KDCOP offre également une possibilité intéressante aux utilisateurs de sélectionner une méthode et de faire glisser le code actuel sur leur éditeur de texte. Ce comportement facilite la vie des personnes qui ne sont pas expertes avec les méthodes DCOP du langage hôte. Actuellement, KDCOP prend en charge KJSEmbed, Python et la méthode de shell UNIX pour accéder à DCOP.</para> + +<para +>Une fois que le script est achevé, il est prêt à être installé. Les développeurs d'applications devront documenter l'endroit où rechercher les scripts. Dans le cas de l'exemple ci-dessus pour Kate, les scripts se trouvent dans « $KDEDIRS/share/apps/kate/scripts ».</para> + +<figure id="screenshot-scripts" float="1"> + <title +>Scripts &tdevelop; sur le système de fichiers</title> + <mediaobject> + <imageobject +><imagedata fileref="script_location.png"/></imageobject> + </mediaobject> +</figure> + +<para +>Le fichier de script « desktop » et son script associé devraient se trouver dans le même dossier. Pour les développeurs de scripts, il est également recommandé que toutes les autres ressources de scripts, telles que les fichiers d'interface graphique ou les fichiers de données, résident aussi dans le dossier du script. Dans l'exemple ci-dessus, le script apparaîtra sous le menu Outils->Scripts KDE. Autre chose importante à noter pour les développeurs, les scripts ne devraient pas effectuer d'opérations susceptibles de provoquer un long blocage ou de conduire à une boucle d'événement (eventloop). C'est parce que la version actuelle de l'interface de script est adaptée pour les tâches automatisées qui s'exécutent jusqu'à leur aboutissement. Ce problème est en cours de correction et d'extension pour KDE4. </para> + +</sect1> + + +</chapter> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-survey.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-survey.docbook new file mode 100644 index 00000000000..a6cb1c2b5da --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-survey.docbook @@ -0,0 +1,786 @@ +<chapter id="tdevelop-survey"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Vue d'ensemble des fonctionnalités de &tdevelop;</title> + +<indexterm zone="tdevelop-survey"> + <primary +>&tdevelop;</primary> + <secondary +>aperçu</secondary +></indexterm> +<indexterm zone="tdevelop-survey"> + <primary +>vue globale</primary +></indexterm> +<indexterm zone="tdevelop-survey"> + <primary +>aperçu</primary +></indexterm> + +<para +>&tdevelop; intègre une pléthore d'outils, de scripts et de modèles dans une interface utilisateur commune. Elle se compose essentiellement de <itemizedlist> + <listitem +><para +>plusieurs <link linkend="uimodes-survey" +>modes d'interface utilisateur</link +> à partir desquels vous pouvez choisir l'apparence (ou <emphasis +>look and feel</emphasis +>) de votre espace de travail, </para +></listitem> + <listitem +><para +>un <link linkend="applicationwizard" +>&appwizard;</link +> qui vous assiste lors de la configuration d'un nouveau projet, </para +></listitem> + <listitem +><para +>plusieurs <link linkend="makesystems" +>systèmes de gestion de projet</link +> qui vous assistent lors de la conception et de la gestion de votre projet, </para +></listitem> + <listitem +><para +>quelques <link linkend="editing" +>outils d'édition</link +>pour travailler facilement sur les textes de vos programmes, </para +></listitem> + <listitem +><para +>divers <link linkend="file-browsers" +>navigateurs de fichiers</link +>, qui vous offrent différents affichages sur votre système de fichiers, </para +></listitem> + <listitem +><para +>divers <link linkend="class-browsers" +>afficheurs de classes</link +> pour vous aider à maintenir les classes de votre projet de programmation orientée objet, ainsi que leurs relations, </para +></listitem> + <listitem +><para +>une <link linkend="debugger" +>interface de débogage</link +> pour chercher et supprimer des erreurs de programmation depuis &tdevelop;, et </para +></listitem> + <listitem +><para +>plusieurs <link linkend="plugin-tools" +>outils modules externes</link +> (ou <emphasis +>plugins</emphasis +>), des modules extensibles que l'on peut charger pendant l'exécution et à la demande. Ceci vous permet de n'activer ces fonctionnalités que si vous en avez réellement besoin. </para +></listitem> + <listitem +><para +>un ensemble d'autres outils de diagnostic, de documentation et d'aide à l'optimisation. </para +></listitem> +</itemizedlist> +</para> + +<note> + <para +>En fait, il existe trois applications basées sur &tdevelop; : </para> + <itemizedlist> + <listitem +><para +>L'EDI &tdevelop; — l'endroit où vous travaillerez habituellement.</para +></listitem> + <listitem +><para +>Le navigateur de documentation autonome de l'assistant &tdevelop; — isole toutes les puissantes fonctions de documentation de l'EDI &tdevelop; dans un outil séparé. Il est très pratique lorsque vous voulez consulter de la documentation sur la programmation mais que vous ne souhaitez pas démarrer l'EDI complet.</para +></listitem> + <listitem +><para +>Le programme &tdevelop; Designer — améliore le concepteur d'interface utilisateur &Qt; par les éléments propres à &kde; et l'intègre avec élegance dans l'EDI &tdevelop;.</para +></listitem> + </itemizedlist> +</note> + + +<sect1 id="uimodes-survey"> +<title +>Modes d'interface utilisateur disponibles</title> + +<indexterm zone="uimodes-survey"> + <primary +>&tdevelop;</primary> + <secondary +>modes d'interface utilisateur</secondary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>interface utilisateur</primary> + <secondary +>modes &tdevelop;</secondary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>modes d'interface utilisateur (IU)</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>Fenêtres enfants</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>Pages à onglets</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>Fenêtres de premier niveau</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>IDEAl</primary +></indexterm> + +<para +>&tdevelop; offre aux développeurs quatre modes d'interface utilisateur séparés (cliquez sur le nom du mode pour afficher un exemple) : <itemizedlist> + <listitem +><para +><link linkend="ideal-desc" +>IDEAl</link +></para> + <para +>Il s'agit d'une approche originale d'interface utilisateur optimisant à la fois l'espace de travail et la gestion intuitive des outils. </para> + <itemizedlist> + <listitem +><para +>Toutes les vues correspondant aux outils sont intégrées à la manière d'une barre d'onglets autour de la fenêtre principale. Elles sont groupées à gauche, en bas et à droite, en fonction des services fournis. </para +></listitem> + <listitem +><para +>Les vues de l'éditeur et du navigateur seront superposées dans une fenêtre à onglets de grande taille au milieu de la zone de fenêtre principale. </para +></listitem> + </itemizedlist> + </listitem> + + <listitem> + <para +><link linkend="mdi-desc" +>Fenêtres enfants</link +></para> + <itemizedlist> + <listitem +><para +>Toutes les vues correspondant aux outils sont intialement intégrées à la fenêtre principale.</para +></listitem> + <listitem +><para +>Les vues de l'éditeur et du navigateur seront actives comme les fenêtres de premier niveau au sein d'une zone d'affichage de la fenêtre principale.</para +></listitem> + </itemizedlist> + </listitem> + + <listitem> + <para +><link linkend="tabbed-desc" +>Pages à onglets</link +></para> + <itemizedlist> + <listitem +><para +>Toutes les vues correspondant aux outils sont intialement intégrées à la fenêtre principale. </para +></listitem> + <listitem +><para +>Les vues de l'éditeur et du navigateur seront superposées dans une fenêtre à onglets. </para +></listitem> + </itemizedlist> + </listitem> + + <listitem> + <para +><link linkend="toplevel-desc" +>Fenêtres de premier niveau</link +></para> + <itemizedlist> + <listitem +><para +>Toutes les vues de l'éditeur, du navigateur et des outils seront des fenêtres de premier niveau directement sur le bureau. </para +></listitem> + <listitem +><para +>L'élément graphique (« widget ») principal ne contient que le menu, les barres d'outils et la barre d'état. </para +></listitem> + </itemizedlist> + </listitem> + +</itemizedlist> +</para> + +<sect2 id="uimodes-switch"> +<title +>Comment changer de mode d'interface utilisateur</title> + +<indexterm zone="uimodes-switch"> + <primary +>interface utilisateur</primary> + <secondary +>changer de mode</secondary +></indexterm> +<indexterm zone="uimodes-switch"> + <primary +>changer de mode d'interface utilisateur (IU)</primary +></indexterm> + +<para +>Pour changer le mode d'interface utilisateur, sélectionnez <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Configurer KDevelop...</guimenuitem +> </menuchoice +> dans les menus. La boîte de dialogue <guilabel +>Personnaliser KDevelop</guilabel +> apparaît, dans laquelle vous sélectionnez <guilabel +>Interface utilisaeur</guilabel +> dans l'arborescence de la partie gauche. Cette action affichera la page de configuration illustrée ci-dessous. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="select-user-interface.png" format="PNG"/> + </imageobject> + <caption +><para +>Choisissez un mode d'interface utilisateur </para +></caption> + </mediaobject> +</screenshot> + +<para +>(Les versions antérieures de &tdevelop; fournissent le début de la section relative au mode de sélection uniquement.) </para> + +<para +>Dans la section <guilabel +>Mode d'affichage de l'interface utilisateur principale</guilabel +>, cliquez sur le bouton radio du mode interface utilisateur dans lequel vous voulez travailler. </para> +<para +>Selon le mode d'interface utilisateur que vous avez sélectionné, d'autres sections de configuration deviendront disponibles, où vous pouvez adapter plus de détails concernant l'apparence à vos préférences. Consultez le chapitre <link linkend="setup-ui" +>Sélectionner l'interface utilisateur</link +> pour plus de détails. </para> + +<note +><para +>N'oubliez pas de redémarrer &tdevelop; afin que vos sélections puissent prendre effet. </para +></note> + +</sect2 +> <!-- uimodes-switch --> + +<sect2 id="maximize-workspace"> +<title +>Comment maximiser la zone d'espace de travail</title> + +<indexterm zone="maximize-workspace"> + <primary +>&tdevelop;</primary> + <secondary +>espace de travail</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>&tdevelop;</primary> + <secondary +>maximiser l'espace de travail</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>interface utilisateur</primary> + <secondary +>espace de travail</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>interface utilisateur</primary> + <secondary +>barre de menus</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>interface utilisateur</primary> + <secondary +>mode plein écran</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>mode plein écran</primary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>barre de menus</primary> + <secondary +>masquer / afficher</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>masquer la barre de menus</primary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>afficher la barre de menus</primary +></indexterm> + +<para +>Pour maximiser l'espace, vous disposez d'un mode fenêtre plein écran qui étend la zone de la fenêtre principale jusqu'aux bords de l'écran. Vous pouvez gagner de l'espace supplémentaire en masquant la barre de menus. Et, bien entendu masquer n'importe quelle barre d'outils comme d'habitude dans les applications <application +>KDE</application +>. </para> + +<variablelist> +<varlistentry> +<term +>Mode plein écran</term> +<listitem> +<para +>Pour basculer vers, ou depuis le mode plein écran, sélectionnez <menuchoice +> <guimenu +>Affichage</guimenu +> <guimenuitem +>Mode plein écran</guimenuitem +> </menuchoice +> dans les menus ou appuyez sur <keycombo +> <keycap +>&Ctrl;</keycap +> <keycap +>&Maj;</keycap +> <keycap +>F</keycap +> </keycombo +>. Il y a également une icône <guiicon +>Mode plein écran</guiicon +> disponible dans la <guilabel +>barre d'outils du navigateur</guilabel +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Masquer / Afficher la barre de menus</term> +<listitem> +<para +>Pour <emphasis +>cacher</emphasis +> la barre de menus, sélectionnez <menuchoice +> <guimenu +>Configuration</guimenu +> <guimenuitem +>Afficher la barre de menus</guimenuitem +> </menuchoice +> à partir des menus ou appuyez sur <keycombo +> <keycap +>&Ctrl;</keycap +> <keycap +>M</keycap +> </keycombo +>. Vous pouvez également inclure une icône <guiicon +>Afficher la barre de menus</guiicon +> dans une barre d'outils appropriée, &pex; la <guilabel +>Barre d'outils du navigateur</guilabel +> dans ce but. Pour <emphasis +>afficher</emphasis +> la barre de menus, vous devez appuyer sur <keycombo +> <keycap +>&Ctrl;</keycap +> <keycap +>M</keycap +> </keycombo +> ou utiliser l'icône <guiicon +>Afficher la barre de menus</guiicon +> si elle est disponible. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- maximize-workspace --> + +</sect1 +> <!-- uimodes-survey --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="ui-elements"> +<title +>Éléments de l'interface utilisateur</title> + +<para +>(... à écrire ...) </para> + +<sect2 id="ui-elements-workarea"> +<title +>La zone de travail</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-workarea --> + +<sect2 id="ui-elements-titlebar"> +<title +>La barre de titre de &tdevelop;</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-titlebar --> + +<sect2 id="ui-elements-statusbar"> +<title +>La barre d'état de &tdevelop;</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-statusbar --> + +<sect2 id="ui-elements-menubar"> +<title +>La barre de menus</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-menubar --> + +<sect2 id="ui-elements-toolbars"> +<title +>Les barres d'outils</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-toolbars --> + +<sect2 id="ui-elements-treetoolviews"> +<title +>Les vues des outils en arborescence</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-treetoolviews --> + +<sect2 id="ui-elements-outputtoolviews"> +<title +>Les vues des outils de visualisation des sorties</title> + +<para +>(... à écrire ...) </para> +</sect2 +> <!-- ui-elements-outputtoolviews --> + +</sect1 +> <!-- ui-elements --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="makesystems"> +<title +>Systèmes de gestion des projets</title> + +<indexterm zone="makesystems"> + <primary +>gestion des projets</primary +></indexterm> + +<para +>Globalement, un projet repose sur une certaine forme de système de gestion de projet. &tdevelop; offre quatre <emphasis +>systèmes de gestion de projet</emphasis +> permettant au programmeur de faire son choix quand il crée un nouveau projet. <itemizedlist> + <listitem +><para +>Les <link linkend="automake-project" +>projets Automake</link +> utilisent les outils standard de développement de &GNU;. </para +></listitem> + <listitem +><para +>Les <link linkend="qmake-project" +>projets QMake</link +> utilisent le gestionnaire de projet QMake Trolltech. </para +></listitem> + <listitem +><para +>Les <link linkend="ant-project" +>projets ANT</link +> utilisent le gestionnaire de projet Apache ANT pour le développement en &Java;. </para +></listitem> + <listitem +><para +>Les <link linkend="custom-project" +>projets personnalisés</link +> exigent que vous mainteniez vos propres <filename +>Makefiles</filename +>. </para +></listitem> +</itemizedlist> +</para> + +<sect2 id="automake-project"> +<title +>Projets Automake</title> + +<indexterm zone="automake-project"> + <primary +>projets</primary> + <secondary +>automake</secondary +></indexterm> +<indexterm zone="automake-project"> + <primary +>automake</primary> + <secondary +>projets</secondary +></indexterm> + +<para +>Les projets créés avec l'&automanag; de &tdevelop; facilitent considérablement aux développeurs l'utilisation des outils standard de développement de &GNU;. Ils fournissent <itemizedlist> + <listitem +><para +>une meilleure façon de générer un fichier <filename +>Makefile</filename +> et </para +></listitem> + <listitem +><para +>une méthode excellente et fiable pour une adaptation rapide à différents systèmes par scripts <filename +>configure</filename +> générés par autoconf. </para +></listitem> +</itemizedlist> +</para> +</sect2 +> <!-- automake-project --> + +<sect2 id="qmake-project"> +<title +>Projets QMake</title> + +<indexterm zone="qmake-project"> + <primary +>projets</primary> + <secondary +>qmake</secondary +></indexterm> +<indexterm zone="qmake-project"> + <primary +>qmake</primary> + <secondary +>projets</secondary +></indexterm> + +<para +>Pour les développeurs qui apprécient la souplesse et le profil du système qmake de &Qt;, &tdevelop; offre la capacité de gérer des projets basés sur qmake (fichiers .pro) au sein de l'interface graphique. </para> +<para +>Pour plus d'informations sur le gestionnaire de projet QMake, reportez-vous au « Guide de l'utilisateur qmake » qui devrait être inclus dans votre distribution ou jetez un coup d'Å“il à la page d'accueil de la <ulink url="http://doc.trolltech.com/" +>Documentation de TROLLTECH</ulink +> : vous y trouverez la documentation QMake de votre version du « Qt C++ GUI Application Development Toolkit ». </para> +</sect2 +> <!-- qmake-project --> + +<sect2 id="cmake-project"> +<title +>Projets CMake</title> + +<indexterm zone="cmake-project"> + <primary +>projets</primary> + <secondary +>cmake</secondary +></indexterm> +<indexterm zone="cmake-project"> + <primary +>cmake</primary> + <secondary +>projets</secondary +></indexterm> + +<para +>CMake sera le système de construction &kde; pour &kde; 4 et &tdevelop; fournit déjà quelques modèles basés sur CMake en C et C++. Il ne vous faut que le programme cmake dans votre $<envar +>PATH</envar +> pour les construire. </para> +<para +>Pour configurer un nouveau projet C ou C++ dans &tdevelop; sélectionnez <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Nouveau projet...</guimenuitem +> <guimenuitem +>C ou C++</guimenuitem +> <guimenuitem +>Projets basés sur CMake</guimenuitem +> <guimenuitem +>Un modèle de bibliothèque partagé ou le programme « Bonjour tout le monde »</guimenuitem +> </menuchoice +>. </para> +</sect2 +> <!-- cmake-project --> + +<sect2 id="ant-project"> +<title +>Projets ANT (projets &Java;)</title> + +<indexterm zone="ant-project"> + <primary +>projets</primary> + <secondary +>ant</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>ant</primary> + <secondary +>projets</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>projets</primary> + <secondary +>Java</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>Java</primary> + <secondary +>projets</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>développement</primary> + <secondary +>Java</secondary +></indexterm> + +<para +>Les développeurs &Java; peuvent être amenés à utiliser le gestionnaire de projet Apache ANT pour leurs projets. Pour configurer un nouveau projet Ant dans &tdevelop; sélectionnez <menuchoice +><guimenu +>Projet</guimenu +> <guimenuitem +>Nouveau projet...</guimenuitem +> <guimenuitem +>Java</guimenuitem +> <guimenuitem +>Projet Ant</guimenuitem +> <guimenuitem +>Application</guimenuitem +></menuchoice +>. </para> +<para +>Pour plus d'informations, reportez-vous à la page d'accueil du<ulink url="http://ant.apache.org/" +>Projet Apache Ant</ulink +>. </para> +</sect2 +> <!-- ant-project --> + +<sect2 id="custom-project"> +<title +>Projets personnalisés</title> + +<indexterm zone="custom-project"> + <primary +>projets</primary> + <secondary +>personnalisés</secondary +></indexterm> +<indexterm zone="custom-project"> + <primary +>projets personnalisés</primary +></indexterm> +<indexterm zone="custom-project"> + <primary +>Makefile</primary> + <secondary +>projets personnalisés</secondary +></indexterm> + +<para +>Si vous préférez maintenir vos propres fichiers <filename +>Makefiles</filename +> pour votre projet, utilisez l'option de projet personnalisé de &tdevelop;. Cette opération peut s'envisager dans des projets structurés de façon inhabituelle ou si vous souhaitez garder un entier contrôle sur le processus <command +>make</command +>. </para> +<para +>De plus, si vous n'avez pas <emphasis +>réellement besoin</emphasis +> de la souplesse supplémentaire et du contrôle du gestionnaire de projet personnalisé, vous devriez penser à l'&automanag; ou à un des autres gestionnaires de projets, car ils facilitent considérablement la construction du programme et les processus de distribution. </para> +</sect2 +> <!-- custom-project --> + +<sect2 id="makesystems-distribution"> +<title +>Comment distribuer votre application</title> + +<indexterm zone="makesystems-distribution"> + <primary +>distribution</primary +></indexterm> +<indexterm zone="makesystems-distribution"> + <primary +>application</primary> + <secondary +>distribution</secondary +></indexterm> +<indexterm zone="makesystems-distribution"> + <primary +>paquetages exécutables</primary +></indexterm> + +<para +>La distribution de vos applications n'exige pas que l'utilisateur final ait quoi que ce soit d'autre installé que <itemizedlist> + <listitem +><para +>un compilateur approprié,</para +></listitem> + <listitem +><para +>un éditeur de liens, et</para +></listitem> + <listitem +><para +>les bibliothèques de développement appropriées,</para +></listitem> +</itemizedlist> +</para> +<para +>ce qui, au moins pour les applications C++, est le plus souvent le cas. Mais vous pouvez également distribuer des <emphasis +>paquetages exécutables</emphasis +> de votre application. Dans l'une ou l'autre méthode, l'utilisateur final de votre produit n'a pas besoin que &tdevelop; soit installé. </para> +<para +>Pour diffuser vos sources, nous vous conseillons d'inclure le <emphasis +>fichier projet</emphasis +> de &tdevelop; également. Il sera ainsi beaucoup plus facile pour d'autres développeurs—s'ils utilisent &tdevelop; — de travailler avec vos sources. </para> +<para +>Pour les projets dans lesquels <emphasis +>plusieurs développeurs</emphasis +> travaillent peut-être à des endroits différents, ce devrait être la règle. Ainsi, vous pouvez vérifier que la cohérence des <filename +>Makefiles</filename +> ne pose pas de problème. </para> +<para +>En particulier, dans les applications multilangues, les <emphasis +>traducteurs</emphasis +> ne travailleront pas véritablement avec le code source, sauf dans les cas qui exigent une correction pour permettre la prise en charge de la traduction. </para> + +</sect2 +> <!-- makesystems-distribution --> + +</sect1 +> <!-- makesystems --> + +</chapter +> <!-- tdevelop-survey --> diff --git a/tde-i18n-fr/docs/tdevelop/tdevelop/unixdev.docbook b/tde-i18n-fr/docs/tdevelop/tdevelop/unixdev.docbook new file mode 100644 index 00000000000..0b1a49a8de1 --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tdevelop/unixdev.docbook @@ -0,0 +1,649 @@ +<appendix id="unixdev"> + +<appendixinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</appendixinfo> + +<title +>Développement sous &UNIX;</title> + +<indexterm zone="unixdev" +><primary +>développement</primary +></indexterm> +<indexterm zone="unixdev"> + <primary +>&UNIX;</primary> + <secondary +>développement</secondary +></indexterm> + +<sect1 id="history"> +<title +>Quelques remarques d'ordre historique</title> + +<indexterm zone="history" +><primary +>historique</primary +></indexterm> +<indexterm zone="history" +><primary +>langages de scriptage</primary +></indexterm> +<indexterm zone="history"> + <primary +>&UNIX;</primary> + <secondary +>historique</secondary +></indexterm> +<indexterm zone="history"> + <primary +>&UNIX;</primary> + <secondary +>tube</secondary +></indexterm> +<indexterm zone="history"> + <primary +>&UNIX;</primary> + <secondary +>shell</secondary +></indexterm> +<indexterm zone="history"> + <primary +>shell</primary> + <secondary +>&UNIX;</secondary +></indexterm> + +<para +>Dès le début, &UNIX; a maintenu deux paradigmes de développement très différents. L'un est le monde des <emphasis +>langages de programmation de systèmes et d'applications</emphasis +>, dans lequel du code source est traduit en code machine par un programme de traduction, le plus souvent un <emphasis +>compilateur</emphasis +> ou un <emphasis +>interpréteur</emphasis +>. Le langage de programmation C en est un exemple. UNIX a été le premier noyau de système d'exploitation à être écrit dans un langage de si haut niveau au lieu d'un assembleur strictement orienté machine, qui était courant avant cette époque. (En fait, le langage C aurait même été inventé pour écrire le noyau UNIX et les programmes associés sur un ordinateur PDP-11 DEC.) </para> +<para +>L'autre paradigme est le monde des <emphasis +>langages de scriptage</emphasis +>. Cet univers a évolué avec l'invention du shell &UNIX; qui était l'interface de l'utilisateur au système d'exploitation — et en même temps, un langage de programmation de très haut niveau. Un script shell est constuit à partir d'un ensemble de petits programmes utilitaires comme &pex; <command +>grep</command +>, <command +>sed</command +> ou <command +>find</command +>. Chaque utilitaire de ce type est conçu pour une tâche rigoureusement définie. L'astuce est qu'un tel utilitaire peut être connecté à un autre <emphasis +>via</emphasis +> un mécanisme de transport simple, appelé <emphasis +>tube</emphasis +>, qui dirige la sortie de l'utilitaire précédent vers l'entrée de l'utilitaire traité ensuite. Ce mécanisme crée un outil de programmation très puissant et extrêmement souple. </para> +<para +>Au fil du temps, les deux mondes ont évolué. Tandis qu'on utilise encore le C comme langage de programmation système, le C++, en tant que variante du C enrichi par les extensions orientées objet et génériques, a trouvé sa place dans le développement d'applications complexes dans les années 1990. Il y a de nombreux autres langages de programmation, même de plus anciens restent d'actualité — FORTRAN77 et Ada &pex;, défendent toujours leurs positions dans le secteur des applications numériques. </para> +</sect1 +> <!-- history --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-scripting-languages"> +<title +>Langages de scriptage contemporains</title> +<para +>Dans le domaine du scriptage, on a connu la mise à l'écart du shell, qui souffre de problèmes de portabilité, vers des langages qui unifient toute la fonctionnalité habituellement nécessaire dans leurs bibliothèques standard, bien qu'il soit toujours capable d'interfacer vers l'extérieur <emphasis +>via</emphasis +> des tubes en cas de nécessité. </para> +<para +>Tous ces langages de scriptage ont en commun d'être extrêmement portables entre les variantes &UNIX;, Microsoft &Windows;, &Mac; OS, voire VMS. En outre, tous offrent des implémentations largement dstribuables. </para> + +<sect2 id="unixdev-SL-Perl"> +<title +>&perl;</title> + +<indexterm zone="unixdev-SL-Perl" +><primary +>Perl</primary +></indexterm> +<indexterm zone="unixdev-SL-Perl"> + <primary +>langages de scriptage</primary> + <secondary +>Perl</secondary +></indexterm> + +<para +><ulink url="http://www.perl.com" +>&perl;</ulink +> est un langage d'admnistration système et de traitement de texte. Dans les débuts du World Wide Web, les scripts CGI écrits en &perl; étaient une méthode largement utilisée pour créer des pages web dynamiques à partir de bases de données. Aujourd'hui, cette méthode a été remplacée en grande partie par le module externe <command +>mod_perl</command +> pour le serveur web &apache;. Parmi les atouts de &perl;, citons sa gestion intégrée de la correspondance des expressions rationnelles et ses abondantes archives de modules librement distribués. </para> +<para +>Pour plus d'informations, visitez le site web <ulink url="http://cpan.org" +> Comprehensive Perl Archive Network (CPAN)</ulink +>. </para> +</sect2 +> <!-- unixdev-SL-Perl --> + +<sect2 id="unixdev-SL-Python"> +<title +>Python</title> + +<indexterm zone="unixdev-SL-Python" +><primary +>Python</primary +></indexterm> +<indexterm zone="unixdev-SL-Python"> + <primary +>langages de scriptage</primary> + <secondary +>Python</secondary +></indexterm> + +<para +><ulink url="http://www.python.org" +>&python;</ulink +> brille par l'élégance de son système de classes ainsi que la facilité et la souplesse avec laquelle des bibliothèques externes peuvent être encapsulées de telle manière qu'elles apparaissent comme des classes et des fonctions &python; standard. Contrairement à &perl;, &python; a une API d'intégration claire et concise, qui en fait le langage de choix pour créer des programmes C et C++ sous forme de scripts. </para> +</sect2 +> <!-- unixdev-SL-Python --> + +<sect2 id="unixdev-SL-PHP"> +<title +>PHP</title> + +<indexterm zone="unixdev-SL-PHP" +><primary +>PHP</primary +></indexterm> +<indexterm zone="unixdev-SL-PHP"> + <primary +>langages de scriptage</primary> + <secondary +>PHP</secondary +></indexterm> + +<para +><ulink url="http://www.php.net" +>&php;</ulink +> a été inventé en tant que langage directement intégrable dans des pages &HTML; et a en conséquence ses principales utilisations se situent dans la production de contenu dynamique sur le Web. </para> +</sect2 +> <!-- unixdev-SL-PHP --> +</sect1 +> <!-- unixdev-scripting-languages --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +<sect1 id="unixdev-hl-script"> +<title +>Scriptage de niveau plus élevé</title> + +<para +>Les applications &UNIX; de niveau plus élevé font habituellement l'impasse sur la vitesse et la souplesse des mécanismes traditionnels du scriptage shell orienté caractères. Ce comportement est particulièrement vrai dans le monde des interfaces graphiques utilisateur (&GUI;) comme &pex; &kde;. </para> +<para +>Il y a eu des tentatives visant à proposer des mécanismes similaires qui fonctionnent sur un niveau d'application plus élevé, le plus notable étant <link linkend="unixdev-corba" +>CORBA</link +> et, dans l'environnement &kde;, <link linkend="unixdev-dcop" +>&DCOP;</link +>. </para> + +<sect2 id="unixdev-corba"> +<title +>Le protocole CORBA</title> + +<indexterm zone="unixdev-corba" +><primary +>CORBA</primary +></indexterm> +<indexterm zone="unixdev-corba"> + <primary +>langages de scriptage</primary> + <secondary +>CORBA</secondary +></indexterm> +<indexterm zone="unixdev-corba"> + <primary +>communication</primary> + <secondary +>CORBA</secondary +></indexterm> + +<para +><ulink url="http://www.omg.org/gettingstarted/corbafaq.htm" +>CORBA</ulink +> (<emphasis +>Common Object Request Broker Architecture</emphasis +>) est une tentative pour faire interagir des applications informatiques sur des réseaux. Il a été élaboré par le comité de standardisation <ulink url="http://www.omg.org" +>OMG</ulink +> (Object Management Group) composé de fabricants privés, indépendants. </para> +<para +>Les programmes basés sur CORBA utilisent le protocole standard IIOP pour communiquer. Les implémentations basées sur IIOP sont disponibles sur un large éventail de systèmes d'exploitation, de langages de programmation, sur les réseaux et sont donc hautement portables. </para> +<para +>Le principal inconvénient de CORBA réside dans sa vitesse plutôt réduite. Bien que cela puisse être admissible pour les réseaux, c'est un véritable obstacle pour les communications inter-applications dans un environnement non géré par réseau tel que &kde; fonctionnant sur un seul ordinateur. </para> + +</sect2 +> <!-- unixdev-corba --> + +<sect2 id="unixdev-dcop"> +<title +>L'interface &DCOP;</title> + +<indexterm zone="unixdev-dcop" +><primary +>DCOP</primary +></indexterm> +<indexterm zone="unixdev-dcop"> + <primary +>langages de scriptage</primary> + <secondary +>DCOP</secondary +></indexterm> +<indexterm zone="unixdev-dcop"> + <primary +>communication</primary> + <secondary +>DCOP</secondary +></indexterm> + +<para +>Une autre évolution sur le scriptage de type &UNIX; est le protocole <ulink url="http://developer.kde.org/documentation/library/kdeqt/dcop.html" +><emphasis +>DCOP</emphasis +></ulink +> mis au point pour la communication entre les applications &kde; pour venir à bout des limitations de CORBA. </para> +<para +>DCOP signifie <emphasis +>Desktop Communication Protocol</emphasis +> et est implémenté à titre de mécanisme IPC/RPC simple construit pour agir sur des sockets. En effet, celui-ci offre des fonctions similaires au mécanisme traditionnel des tubes &UNIX;. </para> +<para +>Le scriptage shell traditionnel est basé sur de petits programmes utilitaires conçus pour fonctionner sur une base strictement textuelle. &DCOP; permet d'élaborer des programmes graphiques pour communiquer d'une manière assez similaire. Ceci permet &pex; à un programme &kde; d'envoyer des messages à un autre programme &kde; ou d'en recevoir des données pour ses propres objectifs. </para> +<para +>Il y a des inconvénients, cependant. Pour utiliser &DCOP;, un programme doit être conçu pour contenir une interface &DCOP; spéciale. De plus, le processus de communication &DCOP; s'exécute assez lentement (bien qu'il soit beaucoup plus rapide que CORBA). Mais il renvoie une grande partie de la puissance et de la souplesse du scriptage &UNIX; aux programmes de haut niveau basés sur une interface graphique utilisateur. </para> +<para +>Pour plus d'informations, lisez l'article <ulink url="http://developer.kde.org/documentation/library/kdeqt/dcop.html" +>DCOP: Desktop COmmunications Protocol</ulink +> ou la référence à l'&API; <ulink url="http://developer.kde.org/documentation/library/cvs-api/dcop/html/index.html" +>The &DCOP; Desktop Communication Protocol library</ulink +> de la bibliothèque dcop de &kde;. </para> +</sect2 +> <!-- unixdev-dcop --> + +</sect1 +> <!-- unixdev-hl-script --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-buildsystems"> +<title +>Systèmes de construction</title> + +<para +>Sauf dans des cas très simples, un projet de programmation se compose d'un grand nombre de blocs de code source placés chacun dans un fichier séparé pour faciliter la maintenance. Pour que ceci fonctionne, il faut en effet traduire tous ces éléments en quelques unités de langage machine, dans un format approprié permettant au système d'exploitation de charger et d'exécuter le programme. </para> +<para +>Pour ce faire, les outils de base nécessaires sont <itemizedlist> + <listitem +><para +>un <emphasis +>éditeur de texte</emphasis +> pour écrire les fichiers de code source, </para +></listitem> + <listitem +><para +>un programme de traduction, habituellement un <emphasis +>compilateur</emphasis +> pour transformer le code source en fichiers objets, </para +></listitem> + <listitem +><para +>un <emphasis +>gestionnaire de bibliothèques</emphasis +> qui collecte des fichiers objets dans les bibliothèques pour les réutiliser aisément sans qu'il soit nécessaire de recompiler, </para +></listitem> + <listitem +><para +>un <emphasis +>éditeur de liens</emphasis +> qui associe plusieurs fichiers objets et les bibliothèques en un exécutable, </para +></listitem> + <listitem +><para +>un <emphasis +>système make</emphasis +> qui fournit un moyen de gérer tous ces éléments et — sans oublier </para +></listitem> + <listitem +><para +>un <emphasis +>débogueur</emphasis +> pour (si tout se passe bien) trouver toutes les erreurs dans le programme et éventuellement quelques autres outils de diagnostic pour arriver à ce que tout fonctionne parfaitement. </para +></listitem> +</itemizedlist> +</para> + +<para +>Lorsque vous avez un gros projet se composant peut-être de centaines de fichiers de code source, le processus de compilation peut devenir assez laborieux. Vous ne voulez pas recompiler tous les fichiers chaque fois que vous n'en avez changé que quelques-uns. À la place, vous souhaitez uniquement compiler ces fichiers qui sont modifiés par les changements. En général, il n'est pas toujours facile de voir lesquels parmi les fichiers doivent être recompilés. </para> +<para +>Quand &pex; vous changez un prototype de fonction dans un fichier d'en-tête, vous devez compiler chaque fichier incluant ce fichier d'en-tête. Si votre projet contient un grand nombre de fichiers de ce type, il est facile d'en sauter un ou deux si vous devez effectuer cette tâche manuellement. Par conséquent, un moyen d'automatisation est nécessaire. </para> + +<sect2 id="unixdev-buildsystems-make"> +<title +>Le processus make</title> + +<indexterm zone="unixdev-buildsystems-make"> + <primary +>make</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>Makefile</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>règle</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>recompilations</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>cible</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>dépendances</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>commandes</primary +></indexterm> + +<para +>Un outil qui se charge des recompilations est <command +>make</command +>. Il garde la trace de l'ensemble du travail grâce à un ensemble de <emphasis +>règles</emphasis +> décrivant ce qu'il faut faire au cas où un élément d'information (habituellement un fichier de code source ou objet) a été modifié. Toutes les règles appartenant à un projet donné sont enregistrées dans ce qu'on appelle un<filename +>Makefile</filename +>, qui est traité par <command +>make</command +> chaque fois que vous souhaitez mettre à jour votre travail. </para> +<para +>Chaque règle se compose de plusieurs blocs de construction, à savoir <itemizedlist> + <listitem +><para +>une <emphasis +>cible</emphasis +>, &cad; le fichier à construire </para +></listitem> + <listitem +><para +>un ensemble de <emphasis +>dépendances</emphasis +>, essentiellement les noms de ces fichiers dont la cible est tributaire (&pex;, le nom d'un fichier source, dans lequel la cible sera le nom du fichier objet à construire) et </para +></listitem> + <listitem +><para +>les <emphasis +>commandes</emphasis +> qui doivent être exécutées pour <quote +>créer</quote +> (en anglais, <emphasis +>make</emphasis +>) la cible (&cad; pour la compiler ou l'associer à d'autres fichiers objets pour construire un fichier de programme exécutable). </para +></listitem> +</itemizedlist> +</para> +<para +>Avant tout, la commande <command +>make</command +> lit les règles l'une après l'autre, vérifie chaque fichier dans la liste des dépendances d'une cible donnée et crée cette cible à nouveau si l'un quelconque de ces fichiers a changé, à l'aide des commandes répertoriées dans cette règle. </para> +<para +>Il y a plusieurs autres possibilités de contrôler un processus « make » de ce type, et un <filename +>Makefile</filename +> peut ainsi prendre de l'ampleur, jusqu'à devenir très complexe. Nous ne pouvons pas entrer dans les détails ici. Cependant, nous vous recommandons de vous habituer à la syntaxe de <command +>make</command +>. Même si vous ne l'utilisez en principe pas directement, une compréhension des fondamentaux du système de construction a son utilité. Reportez-vous au <ulink url="info://make/Top" +> « GNU Make Manual »</ulink +> pour plus d'informations. </para> +<para +>Pour plus de détails spécifiques à &tdevelop;, consultez le chapitre <link linkend="project-management" +>Construction et gestion de projets</link +> de ce manuel. </para> +<para +>Il y a plusieurs tutoriels disponibles : reportez-vous aux <link linkend="automake-references" +>références</link +> dans le chapitre Construction et gestion de projets. </para> +</sect2 +> <!-- unixdev-buildsystems-make --> + +</sect1 +> <!-- unixdev-buildsystems --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-guidevelopment"> +<title +>Développement d'interfaces graphiques</title> + +<indexterm zone="unixdev-guidevelopment"> + <primary +>interface graphique utilisateur</primary +></indexterm> +<indexterm zone="unixdev-guidevelopment"> + <primary +>interface graphique utilisateur</primary +></indexterm> +<indexterm zone="unixdev-guidevelopment"> + <primary +>interface utilisateur</primary> + <secondary +>interface graphique utilisateur</secondary +></indexterm> + +<para +>Les développeurs d'applications sont encore plus gênés d'avoir non seulement à créer des bibliothèques et une logique de programme, mais aussi de fournir une interface utilisateur sur mesure facile à utiliser, qui soit à la fois intutive et fonctionnelle. La plupart des programmeurs reçoivent peu, voire aucune formation concernant le développement d'interfaces graphiques et, par voie de conséquence, les interfaces utilisateur sont souvent mal conçues. </para> +<para +>Au fil des ans, certains principes de conception communs ont évolué. Il est vivement conseillé d'y adhérer. Ainsi, vos interfaces utilisateur conserveront une apparence (un <emphasis +>look and feel</emphasis +>) que les utilisateurs de votre application apprécieront énormément. </para> +<para +>Un guide de style est disponible pour le développement d'interfaces graphiques &kde;. Vous le trouverez dans les <ulink url="http://developer.kde.org/documentation/standards/kde/style/basics/index.html" +>&kde; User Interface Guidelines</ulink +>, sur la page Developer's Corner de &kde;. </para> +<para +>Vous trouverez une courte introduction aux principes communs de conception des interfaces graphiques <ulink url="http://axp16.iie.org.mx/Monitor/v01n03/ar_ihc2.htm" +>ici</ulink +>. </para> + +</sect1 +> <!-- unixdev-guidevelopment --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-ide"> +<title +>Intégration de concepts et d'outils — l'EDI</title> + +<indexterm zone="unixdev-ide"> + <primary +>EDI</primary +></indexterm> +<indexterm zone="unixdev-ide"> + <primary +>environnement de développement intégré</primary +></indexterm> +<indexterm zone="unixdev-ide"> + <primary +>développement</primary> + <secondary +>EDI</secondary +></indexterm> +<indexterm zone="unixdev-ide"> + <primary +>environnement</primary> + <secondary +>EDI</secondary +></indexterm> + +<para +>Il existe des outils séparés disponibles pour pratiquement toutes les étapes du processus de programmation — planification, édition, gestion des fichiers et processus de compilation, débogage, et autre documentation. Cependant, dès lors que les projets se développent, les processus de programmation deviennent presque à coup sûr entrêmement volumineux. </para> +<para +>La conception, la compilation et le débogage d'un programme nécessite beaucoup de travail répétitif. Une grande partie de ce travail peut être enregistrée à l'aide de modèles et de scripts. En outre, une autre partie non négligeable peut l'être en gardant ces outils facilement disponibles et capables de communiquer l'un avec l'autre sous une interface graphique utilisateur commune. </para> +<para +>Par exemple — ne serait-ce pas pratique si un débogeur était capable d'ouvrir le fichier source en question dans un éditeur et de placer le curseur directement à la position du bogue que vous venez de découvrir ? </para> +<para +>Pour y parvenir plus aisément, on a mis au point les environnements de développement intégrés (en anglais &IDE;s, <emphasis +>Integrated Development Environments</emphasis +>). Un &EDI; de ce type intègre dans un seul environnement tous les modèles, outils et scripts qui sont généralement nécessaires lors du processus de développement. </para> +<para +>&tdevelop; est un EDI de ce type pour la plate-forme &kde;. Il fournit une large palette d'outils qui facilitent le développement et la maintenance des programmes, même pour des langages de programmation différents et des plates-formes diverses. </para> + +<sect2 id="unixdev-ide-tdevelop"> +<title +>Fonctionnalités de base de la &kdevrelease; de &tdevelop;</title> + +<indexterm zone="unixdev-ide-tdevelop"> + <primary +>&tdevelop;</primary> + <secondary +>fonctionnalités</secondary +></indexterm> +<indexterm zone="unixdev-ide-tdevelop"> + <primary +>fonctionnalités</primary +></indexterm> + +<!-- ### copied from web page, needs to be updated --> + +<itemizedlist> + <listitem> + <para +>Gère tous les <emphasis +>outils de développement</emphasis +> requis pour la programmation en C++, comm un compilateur, un éditeur de liens, un débogueur et un système de compilation.</para> + </listitem> + <listitem> + <para +>Fournit un <emphasis +>assistant d'applications</emphasis +> qui génère des exemples d'applications complets, prêts à fonctionner.</para> + </listitem> + <listitem> + <para +>Permet à l'utilisateur de choisir un <emphasis +>éditeur intégré</emphasis +> basé sur l'éditeur &kwrite; du programmeur &kde;, <application +>QEditor</application +> de Trolltech, ou autres.</para> + </listitem> + <listitem> + <para +>Un <emphasis +>générateur de classes</emphasis +>, pour créer de nouvelles classes et les intégrer dans le projet en cours.</para> + </listitem> + <listitem> + <para +>Une <emphasis +>gestion de fichiers</emphasis +> pour les sources, les en-têtes, la documentation &etc; à inclure au projet.</para> + </listitem> + <listitem> + <para +>Une assistance lors de la <emphasis +>création de manuels utilisateur des applications</emphasis +> écrits avec les outils &kde;.</para> + </listitem> + <listitem> + <para +>Une <emphasis +>documentation de l'&API;</emphasis +> automatique en &HTML; des classes d'un projet avec des références croisées aux bibliothèques utilisées.</para> + </listitem> + <listitem> + <para +>Une <emphasis +>prise en charge de l'internationalisation</emphasis +>, permettant aux traducteurs d'ajouter aisément leur langue cible à un projet, y compris la prise en charge de &kbabel;.</para> + </listitem> + <listitem> + <para +>Un support pour la gestion d'un projet <emphasis +>via</emphasis +> un ou plusieurs <emphasis +>systèmes de suivi de versions</emphasis +> (&pex;, &CVS;) en proposant une interface facile à utiliser pour la plupart des fonctions nécessaires.</para> + </listitem> + <listitem> + <para +>Une interface de <emphasis +>débogage</emphasis +> intégrée.</para> + </listitem> + <listitem> + <para +>Un émulateur de <emphasis +>console de shell</emphasis +> intégré.</para> + </listitem> + <listitem> + <para +>Une <emphasis +>coloration syntaxique</emphasis +> dans les textes sources.</para> + </listitem> + <listitem> + <para +>Une capacité d'<emphasis +>auto-complétement du code</emphasis +> des variables de classes, des méthodes de classes, des arguments de fonctions, &etc;.</para> + </listitem> + <listitem> + <para +>Des <emphasis +>modèles pour créer divers projets</emphasis +> (modules &kcontrol;, applets de &kicker; (tableau de bord), KIOSlaves, modules externes (<emphasis +>plugins</emphasis +>) de &konqueror; et styles du bureau).</para> + </listitem> + <listitem> + <para +>Quatre <emphasis +>vues arborescentes de l'affichage</emphasis +> pour naviguer aisément entre les fichiers sources, les fichiers d'en-tête et la documentation, évitant la nécessité d'un gestionnaire de fichiers externe.</para> + </listitem> + <listitem> + <para +>Une <emphasis +>prise en charge de la compilation croisée</emphasis +>, avec la possibilité de spécifier différents compilateurs, drapeaux de compilateurs, architectures cibles, &etc;</para> + </listitem> + <listitem> + <para +>Une prise en charge des <emphasis +>projets Qt/Embedded</emphasis +> (tels que le Zaurus et l'iPAQ).</para> + </listitem> + <listitem> + <para +>Une <emphasis +>inclusion de tout autre programme</emphasis +> dont vous avez besoin pour le développement, en l'ajoutant au menu <guimenuitem +>Outils</guimenuitem +> en fonction de vos besoins individuels.</para> + </listitem> +</itemizedlist> + +</sect2 +> <!-- unixdev-ide-tdevelop --> + +</sect1 +> <!-- unixdev-ide --> + +</appendix +> <!-- unixdev --> + diff --git a/tde-i18n-fr/docs/tdevelop/tip.database b/tde-i18n-fr/docs/tdevelop/tip.database new file mode 100644 index 00000000000..85fe197b20f --- /dev/null +++ b/tde-i18n-fr/docs/tdevelop/tip.database @@ -0,0 +1,29 @@ +...que KDevelop donne une aide rapide avec un clic-droit sur les éléments ? +...que vous pouvez paramétrer le délai de sauvegarde automatique dans le menu de configuration ? +Vous pouvez, si vous le désirez ajouter des aoption à la ligne de commande du make, paramétrez cela dans le menu de configuration. +Si vous utilisez des fonctions dans des librairies avec lesquelles est liée l'application, vous pourvez spécifier ces librairies dans les paramètres du projet. +Si vous voulez changer le numéro de version de votre application, vous pouvez le modifier dans les propriétés du projet, qui mettra a jour automatiquement tout le projet. +Si vous voulez créer un nouveau projet, allez à Projet->Nouveau pour avoir l'assistant. +Si vous n'avez pas de documentation sur les librairies KDE, créez-la avec l'option 'Mise à jour' dans l'onglet documentation du menu de configuration KDevelop. +Si vous modifiez les classes de votre application, vous pouvez mettre à jour votre documentation API en choisissant l'option Construire API-Doc dans le menu Projet. +Vous pouvez gagner du temps en choisissant l'option "Compile le fichier" dans le menu Construire ou la barre d'outils afin de ne compiler que le fichier courant +Si vous cherchez des informations sur une classe ou les membres d'une classe, utilisez "Rechercher aide sur" dans le menu d'aide. +Si vous voulez des informations sur quelque chose dans la fenêtre de KDevelop, utilisez le bouton "Qu'est ce que c'est ?" dans la barre d'outils puis cliquez sur l'élément sur lequel vous désirez des informations. +Astuce : Vous pouvez chercher un mot-clé dans la documentation en sélectionnant le mot puis en choisissant l'option "Examine:" du menu contextuel obtenu avec un clic-droit. +L'équipe KDevelop vous souhaite une bonne journée ! +Si vous trouvez un bogue dans KDevelop, faites-nous en part ! L'adresse où nous contacter se trouve dans le manuel utilisateur. +Si vous voulez ajouter votre propre documentation à l'arbre documentaire, cliquez avec le bouton droit sur la section "Autres" de l'arborescence. Ensuite, configurez l'emplacement et le nom de la documentation. +...que vous pouvez créer une nouvelle classe avec le menu "Projet->Nouvelle classe..." ? +...que vous pouvez imprimer vos fichiers soit avec a2ps, soit avec enscript depuis KDevelop ? +Pour ouvrir un projet, choisissez l'option "Ouvrir" dans le menu Projet. +Si vous avez une erreur à la compilation de votre projet, vous pouvez cliquer sur le message d'erreur pour basculer directement sur le fichier et la ligne où l'erreur s'est produite. +...que vous pouvez utiliser des raccourcis clavier pour afficher ou cacher les fenêtres d'arborecence et d'affichage de messages ? +...que vous pouvez déboguer vos programmes à l'intérieur de KDevelop, avec le menu "Construire->Déboguer..." ou avec l'icône "Déboguer le programme" ? +...que vous pouvez basculer d'une classe à une autre en cliquant sur la liste déroulante des classes dans la barre d'outils ? +...que vous pouvez éditer des xpm avec kiconedit en les sélectionnant dans l'arborescence des fichiers ? +...que vous pouvez paramétrer les avertissements du compilateur dans le dialogue de configuration de projet ? +...que vous pouvez rechercher dans la documentation du texte sélectionné même depuis la visualiseur de documentation avec un simple clic-droit ? +...que vous pouvez copier du texte depuis le visualiseur de documentation avec le menu contextuel, et l'insérer dans vos sources ? +...que vous devez maintenir à jour la documentation de vos librairies après avoir installé de nouvelles librairies. +...que vous pouvez paramétrer les mises en évidences syntaxiques dans l'éditeur ? +...que vous pouvez défaire et refaire vos actions et paramétrer le ombre de niveaux d'annulation dans le dialogue de l'éditeur ? |