From f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 3 Dec 2011 11:05:10 -0600 Subject: Second part of prior commit --- tde-i18n-fr/docs/tdevelop/Makefile.am | 4 + tde-i18n-fr/docs/tdevelop/Makefile.in | 613 +++ tde-i18n-fr/docs/tdevelop/kdearch/Makefile.am | 4 + tde-i18n-fr/docs/tdevelop/kdearch/Makefile.in | 635 +++ tde-i18n-fr/docs/tdevelop/kdearch/index.cache.bz2 | Bin 0 -> 31667 bytes tde-i18n-fr/docs/tdevelop/kdearch/index.docbook | 3704 ++++++++++++++++++ tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.am | 4 + tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.in | 613 +++ .../tdevelop/tdevelop/adv-build-management.docbook | 178 + .../docs/tdevelop/tdevelop/app-changelog.docbook | 85 + .../docs/tdevelop/tdevelop/app-files.docbook | 1676 ++++++++ .../docs/tdevelop/tdevelop/app-menu.docbook | 72 + .../docs/tdevelop/tdevelop/app-misc-info.docbook | 28 + .../tdevelop/tdevelop/app-uimodes-examples.docbook | 172 + .../tdevelop/tdevelop/applicationwizard.docbook | 1354 +++++++ .../docs/tdevelop/tdevelop/class-browsers.docbook | 79 + .../docs/tdevelop/tdevelop/commands.docbook | 2999 +++++++++++++++ tde-i18n-fr/docs/tdevelop/tdevelop/credits.docbook | 40 + tde-i18n-fr/docs/tdevelop/tdevelop/cvs.docbook | 129 + .../docs/tdevelop/tdevelop/debugger.docbook | 331 ++ .../docs/tdevelop/tdevelop/documentation.docbook | 73 + tde-i18n-fr/docs/tdevelop/tdevelop/editing.docbook | 608 +++ .../docs/tdevelop/tdevelop/file-browsers.docbook | 67 + .../docs/tdevelop/tdevelop/getting-started.docbook | 4062 ++++++++++++++++++++ .../docs/tdevelop/tdevelop/nutshell.docbook | 367 ++ .../docs/tdevelop/tdevelop/plugin-tools.docbook | 731 ++++ .../tdevelop/tdevelop/project-advanced.docbook | 111 + .../tdevelop/tdevelop/project-management.docbook | 1271 ++++++ tde-i18n-fr/docs/tdevelop/tdevelop/setup.docbook | 2995 +++++++++++++++ .../docs/tdevelop/tdevelop/survey-manual.docbook | 331 ++ .../tdevelop/tdevelop/tdevelop-install.docbook | 1288 +++++++ .../tdevelop/tdevelop/tdevelop-scripting.docbook | 74 + .../docs/tdevelop/tdevelop/tdevelop-survey.docbook | 786 ++++ tde-i18n-fr/docs/tdevelop/tdevelop/unixdev.docbook | 649 ++++ tde-i18n-fr/docs/tdevelop/tip.database | 29 + 35 files changed, 26162 insertions(+) create mode 100644 tde-i18n-fr/docs/tdevelop/Makefile.am create mode 100644 tde-i18n-fr/docs/tdevelop/Makefile.in create mode 100644 tde-i18n-fr/docs/tdevelop/kdearch/Makefile.am create mode 100644 tde-i18n-fr/docs/tdevelop/kdearch/Makefile.in create mode 100644 tde-i18n-fr/docs/tdevelop/kdearch/index.cache.bz2 create mode 100644 tde-i18n-fr/docs/tdevelop/kdearch/index.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.am create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/Makefile.in create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/adv-build-management.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/app-changelog.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/app-files.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/app-menu.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/app-misc-info.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/app-uimodes-examples.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/applicationwizard.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/class-browsers.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/commands.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/credits.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/cvs.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/debugger.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/documentation.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/editing.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/file-browsers.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/getting-started.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/nutshell.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/plugin-tools.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/project-advanced.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/project-management.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/setup.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/survey-manual.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-install.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-scripting.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/tdevelop-survey.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tdevelop/unixdev.docbook create mode 100644 tde-i18n-fr/docs/tdevelop/tip.database (limited to 'tde-i18n-fr/docs/tdevelop') 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 new file mode 100644 index 00000000000..5ba4417dd50 Binary files /dev/null and b/tde-i18n-fr/docs/tdevelop/kdearch/index.cache.bz2 differ 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 @@ + + + +]> + + + + +Vue d'ensemble de l'architecture de KDE + + + + + +Bernd Gehrmann
bernd@tdevelop.org
+
+
+ + +2001 +2002 +Bernd Gehrmann + + +&FDLNotice; + + +Cette documentation donne une vue d'ensemble de la plate-forme de développement de KDE + + + +KDE +architecture +développement +programmation + + +
+ + +Structure des bibliothèques + + +Bibliothèques par nom + + + + +tdecore +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. + + + +tdeui +La bibliothèque tdeui 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. + + + +kio +La bibliothèque kio 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. + + + +kjs +La bibliothèque kjs fournit une implémentation de JavaScript. + + + +khtml +La bibliothèque khtml contient la partie KHTML, un widget de navigation HTML, l'API et l'analyseur DOM, y compris les interfaces à Java et JavaScript. + + + + + + + + +Classes groupées + +Squelette fondamental d'une application — classes requises par pratiquement toutes les applications. + + + + +<ulink url="kdeapi:tdecore/KApplication" +>KApplication</ulink +> +Initialise et contrôle une application KDE. + + + +<ulink url="kdeapi:tdecore/KUniqueApplication" +>KUniqueApplication</ulink +> +Veille à ce qu'une seule instance d'une application puisse s'exécuter. + + +<ulink url="kdeapi:tdecore/KAboutData" +>KAboutData</ulink +> +Contient des informations sur la zone « À propos ». + + +<ulink url="kdeapi:tdecore/KCmdLineArgs" +>KCmdLineArgs</ulink +> +Traitement des arguments en ligne de commande. + + + + +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. + + + +<ulink url="kdeapi:tdecore/KConfig" +>KConfig</ulink +> +Fournit l'accès à la base de données de configuration de KDE. + + +<ulink url="kdeapi:tdecore/KSimpleConfig" +>KSimpleConfig</ulink +> +Accès aux fichiers de configuration simples, non hiérarchiques. + + +<ulink url="kdeapi:tdecore/KDesktopFile" +>KDesktopFile</ulink +> +Accès aux fichiers .desktop. + + +<ulink url="kdeapi:tdecore/KGlobalSettings" +>KGlobalSettings</ulink +> +Accès pratique aux réglages non spécifiques à une application. + + + + +Gestion des fichiers et des URL — décodage des URL, fichiers temporaires, &etc; + + + +<ulink url="kdeapi:tdecore/KURL" +>KURL</ulink +> +Représente et analyse les URL. + + +<ulink url="kdeapi:tdecore/KTempFile" +>KTempFile</ulink +> +Crée des fichiers uniques pour les données temporaires. + + +<ulink url="kdeapi:tdecore/KSaveFile" +>KSaveFile</ulink +> +Permet d'enregistrer des fichiers atomiquement. + + + + +Communication entre processus — classes d'assistant DCOP et invocation des sous-processus. + + + +<ulink url="kdeapi:tdecore/KProcess" +>KProcess</ulink +> +Invoque et contrôle les processus enfants. + + +<ulink url="kdeapi:tdecore/KShellProcess" +>KShellProcess</ulink +> +Invoque les processus enfants via un shell. + + +<ulink url="kdeapi:tdesu/PtyProcess" +>PtyProcess</ulink +> +Communication avec des processus enfants au moyen d'un pseudoterminal. + + +<ulink url="kdeapi:tdecore/KIPC" +>KIPC</ulink +> +Mécanisme IPC simple utilisant ClientMessages sous X11. + + +<ulink url="kdeapi:dcop/DCOPClient" +>DCOPClient</ulink +> +Messagerie DCOP. + + +<ulink url="kdeapi:tdecore/KDCOPPropertyProxy" +>KDCOPPropertyProxy</ulink +> +Une classe de proxy annonçant les propriétés Qt au moyen de DCOP. + + +<ulink url="kdeapi:tdeui/KDCOPActionProxy" +>KDCOPActionProxy</ulink +> +Une classe de proxy annonçant une interface DCOP pour des actions. + + + + +Classes d'utilitaires — gestion de la mémoire, expressions rationnelles, manipulation des chaînes, nombres aléatoires + + + +<ulink url="kdeapi:tdecore/KRegExp" +>KRegExp</ulink +> +Correspondance des expressions rationnelles POSIX. + + +<ulink url="kdeapi:tdecore/KStringHandler" +>KStringHandler</ulink +> +Une interface luxueuse pour la manipulation des chaînes. + + +<ulink url="kdeapi:tdecore/KZoneAllocator" +>KZoneAllocator</ulink +> +Allocateur de mémoire efficace pour de grands groupes de petits objets. + + +<ulink url="kdeapi:tdecore/KRandomSequence" +>KRandomSequence</ulink +> +Générateur de nombres pseudoaléatoires. + + + + +Accélérateurs clavier — classes aidant à établir des associations de touches cohérentes sur tout le bureau. + + + +<ulink url="kdeapi:tdecore/KAccel" +>KAccel</ulink +> +Collection de raccourcis clavier. + + +<ulink url="kdeapi:tdecore/KStdAccel" +>KStdAccel</ulink +> +Accès aisé aux touches courantes de raccourcis clavier. + + +<ulink url="kdeapi:tdecore/KGlobalAccel" +></ulink +> +Collection de raccourcis clavier pour l'ensemble du système. + + + + +Traitement des images — chargement et manipulation des icônes. + + + +<ulink url="kdeapi:tdecore/KIconLoader" +>KIconLoader</ulink +> +Charge des icônes d'une manière se conformant à un thème. + + +<ulink url="kdeapi:tdecore/KIconTheme" +>KIconTheme</ulink +> +Classes d'aide pour KIconLoader. + + +<ulink url="kdeapi:tdecore/KPixmap" +>KPixmap</ulink +> +Une classe de pixmaps avec des possibilités de tramage étendues. + + +<ulink url="kdeapi:tdeui/KPixmapEffect" +>KPixmapEffect</ulink +> +Effets de pixmaps comme les dégradés et les motifs. + + +<ulink url="kdeapi:tdeui/KPixmapIO" +>KPixmapIO</ulink +> +Conversion rapide QImage en QPixmap. + + + + +Glisser et déposer — objets guides pour les couleurs et les URL. + + + +<ulink url="kdeapi:tdecore/KURLDrag" +>KURLDrag</ulink +> +Un objet guide pour les URL. + + +<ulink url="kdeapi:tdeui/KColorDrag" +>KColorDrag</ulink +> +Un objet guide pour les couleurs. + + +<ulink url="kdeapi:tdecore/KMultipleDrag" +>KMultipleDrag</ulink +> +Permet de construire des objets guides à partir de plusieurs autres. + + + + +Complétement automatique + + + +<ulink url="kdeapi:tdecore/KCompletion" +>KCompletion</ulink +> +Complétement automatique générique des chaînes. + + +<ulink url="kdeapi:kio/KURLCompletion" +>KURLCompletion</ulink +> +Complétement automatique des URL. + + +<ulink url="kdeapi:kio/KShellCompletion" +>KShellCompletion</ulink +> +Complétement automatique des exécutables. + + + + +Widgets — classes de widgets pour le mode liste, les règles, le choix des couleurs, &etc; + + + +<ulink url="kdeapi:tdeui/KListView" +>KListView</ulink +> +Une variante de QListView qui fait honneur aux réglages de KDE sur l'ensemble du système. + + +<ulink url="kdeapi:tdeui/KListView" +>KListBox</ulink +> +Une variante de QListBox qui fait honneur aux réglages de KDE sur l'ensemble du système. + + +<ulink url="kdeapi:tdeui/KListView" +>KIconView</ulink +> +Une variante de QIconView qui fait honneur aux réglages de KDE sur l'ensemble du système. + + +<ulink url="kdeapi:tdeui/KListView" +>KLineEdit</ulink +> +Une variante de QLineEdit avec la prise en charge du complétement. + + +<ulink url="kdeapi:tdeui/KComboBox" +>KComboBox</ulink +> +Une variante de QComboBox avec la prise en charge du complétement. + + +<ulink url="kdeapi:tdeui/KFontCombo" +>KFontCombo</ulink +> +Une zone de liste modifiable pour sélectionner les polices. + + +<ulink url="kdeapi:tdeui/KColorCombo" +>KColorCombo</ulink +> +Une zone de liste modifiable pour sélectionner les couleurs. + + +<ulink url="kdeapi:tdeui/KColorButton" +>KColorButton</ulink +> +Un bouton pour sélectionner les couleurs. + + +<ulink url="kdeapi:tdeui/KURLCombo" +>KURLCombo</ulink +> +Une zone de liste modifiable pour sélectionner les noms de fichiers et les URL. + + +<ulink url="kdeapi:kfile/KURLRequester" +>KURLRequester</ulink +> +Une édition de lignes pour sélectionner les noms de fichiers et les URL. + + +<ulink url="kdeapi:tdeui/KRuler" +>KRuler</ulink +> +Un widget règle. + + +<ulink +url="kdeapi:tdeui/KAnimWidget" +>KAnimWidget</ulink +> +Des animations. + + +<ulink url="kdeapi:tdeui/KNumInput" +>KNumInput</ulink +> +Un widget pour saisir les nombres. + + +<ulink url="kdeapi:tdeui/KPasswordEdit" +>KPasswordEdit</ulink +> +Un widget pour saisir les mots de passe. + + + + +Boîtes de dialogue — boîtes de dialogue complètes pour la sélection des fichiers, des couleurs et des polices. + + + +<ulink url="kdeapi:kfile/KFileDialog" +>KFileDialog</ulink +> +Une boîte de dialogue de sélection des fichiers. + + +<ulink url="kdeapi:tdeui/KColorDialog" +>KColorDialog</ulink +> +Une boîte de dialogue de sélection des couleurs. + + +<ulink url="kdeapi:tdeui/KFontDialog" +>KFontDialog</ulink +> +Une boîte de dialogue pour la sélection des polices. + + +<ulink url="kdeapi:kfile/KIconDialog" +>KIconDialog</ulink +> +Une boîte de dialogue pour la sélection des icônes. + + +<ulink url="kdeapi:tdeui/KKeyDialog" +>KKeyDialog</ulink +> +Une boîte de dialogue pour l'édition des associations de touches clavier. + + +<ulink url="kdeapi:tdeui/KEditToolBar" +>KEditToolBar</ulink +> +Une boîte de dialogue pour l'édition des barres d'outils. + + +<ulink url="kdeapi:tdeui/KTipDialog" +>KTipDialog</ulink +> +Une boîte de dialogue « Astuce du jour ». + + +<ulink url="kdeapi:tdeui/KAboutDialog" +>KAboutDialog</ulink +> +Une boîte de dialogue « À propos ». + + +<ulink url="kdeapi:tdeui/KLineEditDlg" +>KLineEditDlg</ulink +> +Une boîte de dialogue simple pour saisir du texte. + + +<ulink url="kdeapi:kfile/KURLRequesterDlg" +>KURLRequesterDlg</ulink +> +Une boîte de dialogue simple pour saisir les URL. + + +<ulink url="kdeapi:tdeui/KMessageBox" +>KMessageBox</ulink +> +Une boîte de dialogue pour signaler les erreurs et les avertissements. + + +<ulink url="kdeapi:tdeui/KPasswordDialog" +>KPasswordDialog</ulink +> +Une boîte de dialogue pour saisir les mots de passe. + + + + +Actions et interface graphique XML + + + +<ulink url="kdeapi:tdeui/KAction" +>KAction</ulink +> +Abstraction pour une action qui peut être intégrée dans les barres de menus et les barres d'outils. + + +<ulink url="kdeapi:tdeui/KActionCollection" +>KActionCollection</ulink +> +Un ensemble d'actions. + + +<ulink url="kdeapi:tdeui/KXMLGUIClient" +>KXMLGUIClient</ulink +> +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. + + +<ulink url="kdeapi:kparts/KPartManager" +>KPartManager</ulink +> +Gère l'activation des clients XMLGUI. + + + + +Modules externes (plugins) et composants + + + +<ulink url="kdeapi:tdecore/KLibrary" +>KLibrary</ulink +> +Représente une bibliothèque chargée dynamiquement. + + +<ulink url="kdeapi:tdecore/KLibrary" +>KLibLoader</ulink +> +Chargement d'une bibliothèque partagée. + + +<ulink url="kdeapi:tdecore/KLibFactory" +>KLibFactory</ulink +> +Fabrique d'objets dans des modules externes. + + +<ulink url="kdeapi:kio/KServiceType" +>KServiceType</ulink +> +Représente un type de service. + + +<ulink url="kdeapi:kio/KService" +>KService</ulink +> +Représente un service. + + +<ulink url="kdeapi:kio/KMimeType" +>KMimeType</ulink +> +Représente un type MIME. + + +<ulink url="kdeapi:kio/KServiceTypeProfile" +>KServiceTypeProfile</ulink +> +Préférences utilisateur pour la mise en correspondance des types MIME. + + +<ulink url="kdeapi:kio/KServiceTypeProfile" +>KTrader</ulink +> +Requêtes de services. + + + + + + + + + + + +Graphiques + + +Graphiques bas niveau avec QPainter + + +Rendu avec QPainter + +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. + +La classe graphique centrale pour le dessin en 2D avec Qt est QPainter. Elle peut dessiner sur un QPaintDevice. Il y a trois périphériques de dessin possibles implémentés : l'un est QWidget qui représente un widget sur l'écran. Le deuxième est QPrinter qui représente une imprimante et produit une sortie Postscript. Le troisième est la classe QPicture 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. + +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. + +void FooWidget::paintEvent() +{ + QPainter p(this); + // Configurer le pinceau + // Utiliser le pinceau +} + + +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 métrique du périphérique afin d'en calculer les coordonnées. + + + + + +Transformations + +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 + + + + + +La matrice 3x3 dans cette équation peut être définie avec QPainter::setWorldMatrix() et elle est de type QWMatrix. 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 : + + + + +Translations +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 + + + + + + + + + +Changement d'échelle +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 + + + + + + +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. + + + + +Glissement +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 + + + + + + + + + +Rotation +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 + + + + + + +Notez qu'une rotation est équivalente à une combinaison de changement d'échelle et de glissement. + + + + + +Voici quelques images qui montre l'effet de la transformation élémentaire de notre mascotte : + + + + + + + + + + + + + + + + + + + +a) Normale +b) Après rotation de 30 degrés +c) Après glissement de 0.4 +d) Mise en miroir + + + + + +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. + + + + + +Définition des attributs de frappe + +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 QPen. Les propriétés qui y sont enregistrées sont un style, une couleur, un style de jointure et un style de capuchon. + +Le style de crayon est un membre de l'énumération Qt::PenStyle, et peut prendre une des valeurs suivantes : + + + + + +Le style de jointure est un membre de l'énumération Qt::PenJoinStyle. 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 : + + + + + + + + + + + + + + + + +a) MiterJoin (jointure en onglet) +c) BevelJoin (jointure biseautée) +b) RoundJoin (jointure arrondie) + + + + + +Le style de capuchon est un membre de l'énumération Qt::PenCapStyle et spécifie comment sont tracés les points finaux des lignes. Il prend l'une des valeurs provenant du tableau suivant : + + + + + + + + + + + + + + + + +a) FlatCap (capuchon plat) +b) SquareCap (capuchon carré) +c) RoundCap (capuchon rond) + + + + + + + + + +Définition des attributs de remplissage + +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 QBrush comme argument. Les brosses peuvent être construites de quatre manières différentes : + + + +QBrush::QBrush() — crée une brosse qui ne remplit pas les formes. + + +QBrush::QBrush(BrushStyle) — crée une brosse noire avec un des motifs par défaut illustrés ci-dessous. + + +QBrush::QBrush(const QColor &, BrushStyle) — crée une brosse colorée avec un des motifs illustrés ci-dessous. + + +QBrush::QBrush(const QColor &, const QPixmap) — crée une brosse colorée avec le motif personnalisé que vous indiquez comme second paramètre. + + + +Un style de brosse par défaut est un membre de l'énumération Qt::BrushStyle. Voici une illustration de tous les motifs prédéfinis : + + + + + +Une autre manière de personnaliser le comportement de la brosse est d'utiliser la fonction QPainter::setBrushOrigin(). + + + + + +Couleur + +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 QColor. Qt ne prend en charge aucune fonctionnalité graphique avancée comme les profils de couleur ICC (International Color Consortium) 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. + +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é. + + + + + +Autres paramètres + +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 RasterOp. + +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 ». + + + + + +Traçage des primitives graphiques + +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 QRect comme argument, soit un ensemble de quatre entiers. + + + +Traçage d'un seul point — drawPoint(). + + +Traçage des lignes — drawLine(), drawLineSegments() et drawPolyLine(). + + +Traçage et remplissage des rectangles — drawRect(), drawRoundRect(), fillRect() et eraseRect(). + + +Traçage et remplissage des cercles, des ellipses et de parties de ceux-ci — drawEllipse(), drawArc(), drawPie et drawChord(). + + +Traçage et remplissage des polygones en général — drawPolygon(). + + +Traçage des courbes de Bézier — drawQuadBezier() [drawCubicBezier dans Qt 3.0]. + + + + + + + +Traçage des pixmaps et des images + +Qt fournit deux classes très différentes pour représenter les images. + +QPixmap 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 très 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 bitBlt pour transférer le pixmap au widget. Pour des retraçages complexes, cette astuce permet d'éviter le papillottement. + +En revanche, les objets QImage 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. + + + + + +Traçage du texte + +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 Qt::AlignmentFlags et Qt::TextFlags + +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. + +Une manière plus sophistiquée d'afficher du texte marqué est la classe QSimpleRichText. 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 QStyleSheet (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(). + + + + + + + +Graphiques structurés avec QCanvas + +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. + +À titre d'alternative, Qt contient la classe QCanvas 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 QCanvasItem 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 QCanvasView 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. + +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 : + + + + + +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. + +Un didactitiel sur l'utilisation de QCanvas pour écrire des jeux basés sur des objets images se trouve ici. + + + + + +Graphiques en 3D avec OpenGL + + +Interface bas niveau + +Le standard de facto pour le rendu des graphiques en 3D aujourd'hui est OpenGL. 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 contexte GL et n'a aucune interaction avec la boîte à outils de l'environnement + +Qt offre le widget QGLWidget 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. + + + +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. + +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. + +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. + +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. + + + +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. + + + + + +Qt contient quelques exemples de l'utilisation de QGLWidget dans son exemple démo. Vous trouverez ici un ensemble de didactitiels ; d'autres informations et une référence d'OpenGL sont disponibles sur la page d'accueil d'OpenGL. + + + + + +Interfaces haut niveau + +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 Coin, complétée par l'association d'une boîte à outils à Qt appelée SoQt. + +Le concept fondamental d'Open Inventor est celui d'une scène. Une scène peut être chargée depuis un disque et enregistrée dans un format spécial étroitement lié à VRML. Une scène consiste en une collection d'objets appelés nÅ“uds. 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. + +Vous trouverez une introduction à Inventor ici (en général, vous pouvez substituer toutes les mentions de SoXt par SoQt dans cet article). + + + + + + + + + + +Interface utilisateur + + +Le motif de l'action + + + + + + + +Définition des menus et des barres d'outils dans XML + + +Introduction + +Alors que le motif des actions 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. + +Ce problème est résolu par un ensemble de classes appelé XMLGUI. 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 FichierOuvrir ou AideÀ propos de) 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 (plugins) ou parties différents. + +La classe de KDE pour les fenêtres de premier niveau, KMainWindow, hérite de KXMLGUIClient et gère donc XMLGUI en dehors de l'ordinateur. Toutes les actions créées en son sein doivent avoir la actionCollection() du client comme parent. Un appel à createGUI() 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 ui.rc). + + + + + +Un exemple : un menu dans KView + +Dans ce qui suit, nous prenons l'afficheur d'images KView de KDE à titre d'exemple. Il a un fichier ui.rc nommé kviewui.rc qui est installé avec le fragment Makefile.am + +rcdir = $(kde_datadir)/kview +rc_DATA = kviewui.rc + + +Voici un extrait du fichier kviewui.rc. Pour la simplicité, nous n'afficherons que la définition du menu Affichage. + +<!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> + + +La partie correspondante de la configuration en C++ est : + +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" ); + + +Le menu Affichage résultant de la définition de cette interface graphique ressemble à celle de cette capture d'écran : + + + + + +Le fichier XML commence par une déclaration de type de document. La DTD pour kpartgui se trouve dans les sources tdelibs dans tdeui/kpartgui.dtd. 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 ui.rc, KDE s'assure que toute version personnalisée du fichier est éliminée et que le nouveau fichier est utilisé à la place. + +La ligne suivante, <MenuBar>, contient une déclaration d'une barre de menus. Vous pouvez aussi insérer n'importe quel nombre de déclarations <ToolBar> 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, KView a un sous-menu avec le titre « Image » déclaré comme suit : + +<Menu name="image" > + <text>&amp;Image</text> + ... +</Menu> + + +Dans l'environnement automake de KDE, de tels titres sont automatiquement extraits et placés dans le fichier .po 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; ». + +Revenons à notre exemple. Le menu Affichage de KView contient quelques actions personnalisées : zoom50, zoom100, zoom200, zoomMaxpect et fullscreen, déclarées avec un élément <Action>. Le séparateur dans les captures d'écran correspond à l'élément <Separator>. + +Vous noterez que certains éléments de menus n'ont pas d'élément correspondant dans le fichier XML. Ce sont des actions standard. Les actions standard sont créées par la classe KStdAction. 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 tdeui/ui_standards.rc, dans les sources tdelibs. + + + + + +Un exemple : les barres d'outils dans Konqueror + +Pour l'étude des barres d'outils, passons à la définition de l'interface graphique de Konqueror. Cet extrait définit la barre d'URL qui contient le champ de saisie des URL. + +<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> + + +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 : + + + +fullWidth : 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. + +newline : 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. + +noEdit : normalement, les barres d'outils peuvent être personnalisées par l'utilisateur, &pex; dans Configuration Configurer les barres d'outils dans Konqueror. 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 Konqueror. + +iconText : 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). + + +hidden : si ceci est « true », la barre d'outils n'est pas visible initialement et doit être activée par un élément de menu. + + +position : 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 ». + + + + + + + +Menus dynamiques + +À 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 Document de Konqueror contient un ensemble d'éléments Ouvrir avec quelque chose 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 listes d'actions. 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 Konqueror : + +<Menu name="filchier"> + <text>&amp;Location</text> + ... + <ActionList name="openwith"> + ... +</Menu> + + +La fonction KXMLGUIClient::plugActionList() est alors utilisée pour ajouter des actions à afficher, alors que la fonction KXMLGuiClient::unplugActionList() supprime toutes les fonctions « enfichées ». Voici à quoi ressemble la routine responsable de la mise à jour : + +void MainWindow::updateOpenWithActions() +{ + unplugActionList("openwith"); + openWithActions.clear(); + for ( /* itérer sur les services pertinents */ ) { + KAction *action = new KAction( ...); + openWithActions.append(action); + } + plugActionList("openwith", openWithActions); +} + + +Notez que, contrairement aux actions statiques, celles qui sont créées ici ne sont pas 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 openWithActions.setAutoDelete(true) dans l'exemple ci-dessus. + + + + + +Menus contextuels + +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 createGUI() (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 : + +void MainWindow::popupRequested() +{ + QWidget *w = factory()->container("context_popup", this); + QPopupMenu *popup = static_cast<QPopupMenu *>(w); + popup->exec(QCursor::pos()); +} + + +La méthode KXMLGUIFactory::container() 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 : + +... +<Menu name="context_popup"> + <Action name="file_add"/> + <Action name="file_remove"/> +</Menu> +... + + + + + + + + +Mise à disposition d'une aide en ligne + +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 : + + + +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. + +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 MajF1, 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. + +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é. + +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 texte enrichi, &cad; différentes polices, du texte en gras et en italique, voire des images et des tableaux. + +Un exemple de l'aide « Qu'est-ce que c'est ? » : + + + + + + + +Pour finir, tous les programmes devraient avoir un manuel. Un manuel s'affiche en principe dans KHelpCenter en activant le menu Aide. 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 DocBook. + + + +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 QToolTip. + +QToolTip::add(w, i18n("Ce widget ne fait rien")) + + +Si les barres de menus et les barres d'outils sont créées à l'aide du motif d'actions, la chaîne employée comme bulle d'aide est dérivée du premier argument du constructeur KAction : + +action = new KAction(i18n("&Delete"), "editdelete", + SHIFT+Key_Delete, actionCollection(), "del") + + +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 : + +action->setStatusText(i18n("Supprime le fichier marqué")) + + +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 : + +QWhatsThis::add(w, i18n("<qt>This demonstrates <b>Qt</b>'s" + " rich text engine.<ul>" + "<li>Foo</li>" + "<li>Bar</li>" + "</ul></qt>")) + + +Pour les éléments de menu, utilisez + +action->setWhatsThis(i18n("Supprime le fichier marqué")) + + +L'invocation de KHelpCenter est encapsulée dans la classe KApplication. Pour afficher le manuel de votre application, utilisez simplement + +kapp->invokeHelp() + + +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 à invokeHelp(), déterminant l'ancrage vers lequel le navigateur saute. + + + + + + + + +Composants et services + + +Services KDE + + +Que sont les services KDE ? + +La notion de service 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 (plugins) sous la forme de bibliothèques partagées, ou bien il peut s'agir de programmes contrôlés via DCOP. En se proclamant être d'un certain type de service, 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. + +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. + +Quelques exemples : + + + +Le moteur de rendu HTML utilisé dans Konqueror est un composant intégrable qui implémente les types de services KParts/ReadOnlyPart et Navigateur/Affichage. +Dans KDevelop HEAD, la majorité des fonctionnalités est conditionnée en modules externes avec le type de service KDevelop/Part. 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. +Dans l'affichage Icône, Konqueror 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 ThumbCreator. + + + +À l'évidence, un service n'est pas seulement caractérisé par les types de services qu'il met en Å“uvre, mais aussi par quelques propriétés. Par exemple, un ThumbCreator ne se se contente pas d'implémenter la classe C++ avec le type ThumbCreator, 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 courtier à part entière dans le style de CORBA, doté d'un langage de requête complexe. + + + + + +Définition des types de services + +Les nouveaux types de services sont ajoutés en installant une description dans le dossier KDEDIR/share/servicetypes. Dans un environnement automake, cette tâche s'effectue avec ce fragment de Makefile.am : + +kde_servicetypesdir_DATA = tdeveloppart.desktop +EXTRA_DIST = $(kde_servicetypesdir_DATA) + + +Voici à quoi ressemble la définition tdeveloppart.desktop d'une « partie » KDevelop : + +[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 + + +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 [PropertyDef::name] dans le fichier de configuration. Dans ce groupe, la ligne Type déclare le type de la propriété. Les types possibles sont tout ce qui peut être enregistré dans une QVariant. + + + + + +Définition des services de bibliothèques partagées + +Les définitions des services sont enregistrées dans le dossier KDEDIR/share/services: + +kde_servicesdir_DATA = kdevdoxygen.desktop +EXTRA_DIST = $(kde_servicesdir_DATA) + + +Le contenu du fichier d'exemple suivant kdevdoxygen.desktop définit le module externe KDevDoxygen avec le type de service KDevelop/Part : + +[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 + + +En plus des déclarations habituelles, X-KDE-Library est une ligne importante. Elle contient le nom de la bibliothèque libtool (sans l'extension .la). Elle fixe également (avec le préfixe init_ 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 : + +extern "C" { + void *init_libkdevdoxygen() + { + return new DoxygenFactory; + } +}; + + +Le type de la classe de fabrique DoxygenFactory 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 KDevFactory (qui hérite de KLibFactory). KParts::Factory est un autre exemple courant supposé produire des objets KParts::ReadOnlyPart ou dans la plupart des cas, la KLibFactory générique. + + + + + +Utilisation des services de bibliothèques partagées + +Pour employer un service de bibliothèque partagée dans une application, vous devez obtenir un objet KService qui le représente. Ce point est étudié dans la section sur les types MIME (et dans une section consacrée au courtier — à écrire) + +Une fois l'objet KService en main, vous pouvez très simplement charger la bibliothèque et obtenir un pointeur vers son objet fabrique : + +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); +} + + +À 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 KLibFactory::create(). Pour KParts, vous devrez transtyper le pointeur de la fabrique vers les KParts::Factory plus spécifiques et employer sa méthode create() : + +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; +} + + + + + + +Définition des services DCOP + +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 kio_uiserver, 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. + +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 : + +X-DCOP-ServiceType spécifie la manière dont le service est démarré. La valeur Unique 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; via KApplication::startServiceByName(), 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 KUniqueApplication. + +La valeur Multi pour X-DCOP-ServiceType 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 None. Dans ce cas, un démarrage du service n'attendra pas jusqu'à ce qu'il soit enregistré avec DCOP. + +X-KDE-StartupNotify 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é. + +Voici la définition de kio_uiserver : + +[Desktop Entry] +Type=Service +Name=kio_uiserver +Exec=kio_uiserver +X-DCOP-ServiceType=Unique +X-KDE-StartupNotify=false + + + + + + +Utilisation des services DCOP + +Un service DCOP est démarré avec une des quelques méthodes que contient la classe KApplication : + +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; +... + + +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. + +Dans l'exemple donné ici, le service a été démarré « par nom », &cad; que le premier argument vers KApplication::startServiceByName() est le nom qui apparaît dans la ligne Name du fichier desktop. Une alternative consiste à utiliser KApplication::startServiceByDesktopName(), qui prend le nom de fichier de son fichier desktop comme argument, &cad; dans ce cas, "kio_uiserver.desktop". + +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 QString. Si le démarrage du service échoue, cet argument devient un message d'erreur traduit. + + + + + + + +Types MIME + + +Que sont les types MIME ? + +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 : + + + +Dans l'affichage Icône de Konqueror, les fichiers sont représentés par des icônes. Chaque type MIME a une certaine icône associée illustrée ici. + +Quand vous cliquez sur l'icône d'un fichier ou le nom d'un fichier dans Konqueror, soit le fichier s'affiche dans une vue intégrée, soit une application associée au type du fichier est ouverte. + +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. + +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. + + + +À 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. + +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 foo.jpg 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 via HTTP au préalable. La méthode basée sur le contenu dépend du fichier KDEDIR/share/mimelnk/magic 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 .desktop : il est efficacement et commodément accessible grâce aux bibliothèques KDE. + + + + + +Définition des types MIME + +Définissons un type « application/x-foo » pour notre nouveau programme foobar. À cette fin, vous devez écrire un fichier foo.desktop et l'installer dans KDEDIR/share/mimelnk/application. (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 Makefile.am : + +mimedir = $(kde_mimedir)/application +mime_DATA = foo.desktop +EXTRA_DIST = $(mime_DATA) + + +Voici à quoi devrait ressembler le fichier foo.desktop : + +[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 + + +La ligne « Comment » est supposée être traduite. Du fait que le fichier .desktop spécifie une icône, installez aussi une icône fooicon.png, qui représente le fichier, &pex; dans Konqueror. + +Dans les bibliothèques KDE, un tel type de définition est mis en correspondance vers une instance de la classe KMimeType. Utilisez-la, comme dans l'exemple suivant : + +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; + + + + + + +Détermination du type MIME des données + +La méthode la plus rapide pour déterminer le type d'un fichier est KMimeType::findByURL(). 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 .pl indiquant un type "text/x-perl". Toutefois, le fichier que livre le serveur est la sortie de ce script, qui est normalement du HTML. Pour un tel cas, KMimeType::findByURL() retourne le type MIME "application/octet-stream" (disponible grâce à KMimeType::defaultMimeType()), indiquant qu'il est impossible de découvrir le type. + +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; + + +(cette méthode a quelques arguments supplémentaires, mais comme ils ne sont pas documentés, ignorons-les.) + +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 KMimeMagic qui gère différemment les erreurs : + +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; + + +Comme variante de cette fonction, vous pouvez aussi déterminer le type d'un bloc de mémoire. Elle est &pex; utilisée dans Kate pour trouver le mode de coloration syntaxique : + +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; + + +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é : + +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; + + +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 KMimeType::findByURL() a retourné "application/octet-stream". + +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 : + +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; +} + + + + + + +Mise en correspondance d'un type MIME vers une application ou un service + +Lorsqu'une application est installée, elle prépare un fichier .desktop 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 .desktop 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 KServiceTypeProfile : + +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; +} + + +La valeur de retour de cette fonction est une liste d'offres de services. Un objet KServiceOffer conditionne un KService::Ptr avec un numéro de préférence. La liste que KServiceTypeProfile::offers() retourne est numérotée dans l'ordre des préférences de l'utilisateur. Ce dernier peut modifier ce comportement en appelant "keditfiletype text/html" ou en choisissant Modifier le type du fichier dans le menu contextuel de Konqueror sur un fichier HTML. + +Dans l'exemple ci-dessus, une liste d'offres des applications prenant en charge text/html a été demandée. Celle-ci contient — entre autres — des éditeurs HTML comme Quanta Plus. Vous pouvez également remplacer le second argument "Application" par "KParts::ReadOnlyPart". Dans ce cas, vous obtenez une liste des composants intégrables pour présenter du contenu HTML, &pex;, KHTML. + +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 : + +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; + + +Pour des requêtes encore plus complexes, il y a un courtier à part entière dans le style de CORBA. + +Pour exécuter un service d'application avec quelques URL, utilisez KRun : + +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); + + + + + + +Divers + +Dans cette section, nous souhaitons répertorier quelques API qui sont plus ou moins liées à l'étude précédente. + +Obtention d'une icône pour une URL. Celle-ci cherche le type de l'URL et retourne l'icône associée. + +KURL url("ftp://ftp.kde.org/pub/incoming/wibble.c"); +QString icon = KMimeType::iconForURL(url); + + +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. + +KURL url("http://dot.kde.org"); +new KRun(url); + + + + + + + + +Transparence réseau + + +Introduction + +À 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 transparence réseau. + +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'asynchronicité 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. + +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 tâche 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. + +L'opération d'arrière-plan est réalisée en démarrant les ioslaves 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 (multi-threading) n'est nécessaire et les esclaves instables ne peuvent pas « planter » l'application qui les utilise. + +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 + +http://www-com.physik.hu-berlin.de/~bernd/article.tgz#tar:/paper.tex + + + + + + +Utilisation de KIO + +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 result(KIO::Job*). Une fois ce signal émis, la tâche se supprime. Ainsi, voici à quoi ressemble un cas classique d'utilisation : + +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; +} + + +Selon le type de tâche, vous pouvez également vous connecter à d'autres signaux. + +Voici une vue d'ensemble des fonctions possibles : + + + +KIO::mkdir(const KURL &url, int permission) +Crée un dossier, optionnellement avec certaines permissions. + + +KIO::rmdir(const KURL &url) +Supprime un dossier. + + +KIO::chmod(const KURL &url, int permissions) +Change les permissions d'un fichier. + + +KIO::rename(const KURL &src, const KURL &dest, bool overwrite) +Renomme un fichier. + + +KIO::symlink(const QString &target, const KURL &dest, bool overwrite, bool showProgressInfo) +Crée un lien symbolique. + + +KIO::stat(const KURL &url, bool showProgressInfo) +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. + + +KIO::get(const KURL &url, bool reload, bool showProgressInfo) +Transfère des données depuis une URL. + + +KIO::put(const KURL &url, int permissions, bool overwrite, bool resume, bool showProgressInfo) +Transfère des données vers une URL. + + +KIO::http_post(const KURL &url, const QByteArray &data, bool showProgressInfo) +Poste des données. Spécial pour HTTP. + + +KIO::mimetype(const KURL &url, bool showProgressInfo) +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. + + +KIO::file_copy(const KURL &src, const KURL &dest, int permissions, bool overwrite, bool resume, bool showProgressInfo) +Copie un seul fichier. + + +KIO::file_move(const KURL &src, const KURL &dest, int permissions, bool overwrite, bool resume, bool showProgressInfo) +Renomme ou déplace un seul fichier. + + +KIO::file_delete(const KURL &url, bool showProgressInfo) +Supprime un seul fichier. + + +KIO::listDir(const KURL &url, bool showProgressInfo) +Répertorie le contenu d'un dossier. Chaque fois que de nouveaux éléments sont connus, le signal KIO::ListJob::entries() est émis. + + +KIO::listRecursive(const KURL &url, bool showProgressInfo) +Similaire à la fonction listDir(), mais celle-ci est récursive. + + +KIO::copy(const KURL &src, const KURL &dest, bool showProgressInfo) +Copie un fichier ou un dossier. Les dossiers sont copiés récursivement. + + +KIO::move(const KURL &src, const KURL &dest, bool showProgressInfo) +Déplace ou renomme un fichier ou un dossier. + + +KIO::del(const KURL &src, bool shred, bool showProgressInfo) +Supprime un fichier ou un dossier. + + + + + + + + +Éléments des dossiers + +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. + +Les types suivants sont actuellement définis : + + + +UDS_SIZE (integer) — taille du fichier. + +UDS_USER (string) — utilisateur propriétaire du fichier. + +UDS_GROUP (string) — groupe propriétaire du fichier. + +UDS_NAME (string) — nom du fichier. + +UDS_ACCESS (integer) — droits d'accès du fichier, comme &pex; enregistrés par la fonction libc stat() dans le champ st_mode. + +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. + +UDS_LINK_DEST (string) — dans le cas d'un lien symbolique, le nom du fichier sur lequel pointe le fichier. + +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. + +UDS_ACCESS_TIME (integer) — l'heure du dernier accès au fichier, comme &pex; enregistré par stat() dans le champ st_atime. + +UDS_CREATION_TIME (integer) — l'heure à laquelle le fichier a été créé, comme &pex; enregistré par stat() dans le champ st_ctime. + +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. + +UDS_MIME_TYPE (string) — type MIME du fichier + +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. + + + +Bien que la manière d'enregister des informations sur les fichiers dans un UDSEntry 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 m_uds est UDS_MIME_TYPE. Heureusement il y a une API beaucoup plus facile à utiliser : la classe KFileItem. + + + + + +Utilisation synchrone + +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 + +KURL source, target; +source = ...; +target = ... +KIO::NetAccess::copy(source, target); + + +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. + +La fonction download(), en combinaison avec removeTempFile() 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. Si 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 removeTempFile() 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 : + +KURL url; +url = ...; +QString tempFile; +if (KIO::NetAccess::download(url, tempFile) { + // load the file with the name tempFile + KIO::NetAccess::removeTempFile(tempFile); +} + + + + + + +Métadonnées + +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'ioslave 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 : + +void FooClass::reloadPage() +{ + KURL url("http://www.tdevelop.org/index.html"); + KIO::TransferJob *job = KIO::get(url, true, false); + job->addMetaData("cache", "reload"); + ... +} + + +La même technique s'emploie dans l'autre sens, &cad; pour la communication depuis l'esclave vers l'application. La méhode Job::queryMetaData() demande la valeur de la clé remise par l'esclave. Pour l'esclave HTTP, un tel exemple est la clé « modified », 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 : + +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; +} + + + + + + +Planification + +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. + +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é. + +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é direct. 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. + +Il y a donc un autre moyen : planifier 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 : + +KURL url("http://developer.kde.org/documentation/kde2arch/index.html"); +KIO::TransferJob *job = KIO::get(url, true, false); +KIO::Scheduler::scheduleJob(job); + + +Une troisième possibilité est orientée connexion. 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 : + +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); + + +Vous pouvez déconnecter l'esclave uniquement après que toutes les tâches qui lui sont affectées sont garanties être terminées. + + + + + +Définition d'un ioslave + +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 : + +protocoldir = $(kde_servicesdir) +protocol_DATA = ftp.protocol +EXTRA_DIST = $(mime_DATA) + + +Voici le contenu du fichier ftp.protocol : + +[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 + + +L'élément « protocol » définit de quel protocole cet esclave est responsable. « exec » 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 « tdeinit » 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. + +Les lignes « input » et « output » ne sont pas utilisées actuellement. + +Dans le fichier .protocol, 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 ftp:), KIO peut lire le fichier source puis écrire les données sur le fichier de destination. Pour que cela fonctionne, le .protocol doit annoncer les actions que son esclave prend en charge. + +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 (plugins) des bibliothèques partagées normales. La fonction appelée pour démarrer l'esclave est dénommée kdemain(). 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 : + +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; +} + + + + + + +Implémentation d'un ioslave + +Les esclaves sont implémentés en tant que sous-classes de KIO::SlaveBase (FtpSlave dans l'exemple ci-dessus). Ainsi, les actions répertoriées dans le .protocol correspondent à certaines fonctions virtuelles dans KIO::SlaveBase que l'implémentation de l'esclave doit réimplémenter. Voici une liste des actions possibles et des fonctions virtuelles correspondantes : + + + +lecture — lit des données depuis une URL +void get(const KURL &url) + +écriture — écrit des données dans une URL et crée le fichier s'il n'existe pas encore. +void put(const KURL &url, int permissions, bool overwrite, bool resume) + +déplacement — renomme un fichier. +void rename(const KURL &src, const KURL &dest, bool overwrite) + +suppression — supprime un fichier ou un dossier. +void del(const KURL &url, bool isFile) + +listage — répertorie le contenu d'un dossier. +void listDir(const KURL &url) + +makedir — crée un dossier. +void mkdir(const KURL &url, int permissions) + + + +En outre, il y a des fonctions réimplémentables non répertoriées dans le fichier .protocol. 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). + + + +Fournit des informations sur un fichier, similaire à la fonction C stat(). +void stat(const KURL &url) + +Modifie les droits d'accès d'un fichier. +void chmod(const KURL &url, int permissions) + +Détermine le type MIME d'un fichier. +void mimetype(const KURL &url) + +Copie un fichier. +copy(const KURL &url, const KURL &dest, int permissions, bool overwrite) + +Crée un lien symbolique. +void symlink(const QString &target, const KURL &dest, bool overwrite) + + + +Toutes ces implémentations devront se terminer par un ou deux appels : si l'opération a réussi, elles devront appeler finished(). Si une erreur s'est produite, error() 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 KIO::Error. Le second argument est habituellement l'URL en question. Elle est utilisée &pex; dans KIO::Job::showErrorDialog() afin de paramétrer le message d'erreur humainement lisible. + +Pour les esclaves qui correspondent aux protocoles de réseau, il pourrait être intéressant de réimplémenter la méthode SlaveBase::setHost(). 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 SlaveBase::metaData(). Vous pouvez vérifier l'existence des métadonnées d'une certaine clé avec SlaveBase::hasMetaData(). + + + + + +Communication à nouveau avec l'application + +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 : + + + +get() envoie des blocs de données. Pour ce faire, elle utilise data(), qui prend un QByteArray 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 data() avec des blocs de données plus petits, de façon à ce que l'application puisse les traiter. Appelez finished() quand le transfert est terminé. + +listDir() signale des informations sur les éléments d'un dossier. À cette fin, appelez listEntries() avec une KIO::UDSEntryList comme argument. De manière analogue à data(), vous pouvez l'appeler plusieurs fois. Quand vous avez fini, appelez listEntry() avec le second argument défini à « true ». Vous pouvez aussi appeler totalSize() pour signaler le nombre total des éléments du dossier, s'il est connu. + +stat() signale des informations sur un fichier, comme sa taille, son type MIME, &etc; Ce genre d'informations est conditionné dans une KIO::UDSEntry, que nous aborderons ci-après. Utilisez statEntry() pour envoyer un tel élément à l'application. + +mimetype() appelle mimeType() avec un argument chaîne. + +get() et copy() peuvent être amenées à fournir des informations sur la progression. Les méthodes totalSize(), processedSize(), speed() s'en chargent. La taille totale et la taille traitée sont signalées sous forme d'octets, la vitesse en octets par seconde. + +Vous pouvez envoyer des paires clé/valeur arbitraires de métadonnées avec setMetaData(). + + + + + + + +Interaction avec l'utilisateur + +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é. + + + +infoMessage() — 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 KIO::Job::infoMessage(). + +warning() — affiche un avertissement dans une boîte de message avec KMessageBox::information(). 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. + +messageBox() — 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 SlaveBase::MessageBoxType à titre de référence. + +openPassDlg() — ouvre une boîte de dialogue pour la saisie du nom d'utilisateur et du mot de passe. + + + + + + + + + + + + +Licence + +&underFDL; +&underGPL; + + + +
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 @@ + +Gestion avancée de la construction +&automake; + + +Configurations de construction multiples +configurations de constructionmultiple + +(... à écrire ...) + + + + + + +Compilation croisée +compilation croisée +compilationcroisée + + +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 pages info de GCC pour plus d'informations. Certaines distributions &Linux; fournissent également des paquetages de binaires. + +Un paquetage basé sur automake peut être facilement cross-compilé en spécifiant l'option au script « configure » et en positionnant les variables d'environnement CC et CXX 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 . Une fois que vous avez créé une nouvelle configuration de construction pour la compilation croisée dans la boîte de dialogue ProjetOptions du projet, ajoutez l'option + +plate-forme + +aux options de « configure ». Le nom plate-forme est un tuple de la forme + +cpu-vendor-os +ou +cpu-vendor-kernel-os + +Pour de nombreuses combinaisons, vous pouvez utiliser une forme abrégée, par exemple i386-linux ou arm-elf. + + + + + + +Qt embarqué +embarquéQt +Qt embarqué +Qtopia +tampon de trame + +&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. + +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 (codebase) pour des deux versions. Si vous faites appel à la gestion de projet autoproject, vous basculez vers la version embarquée en passant l'argument au script « configure ». Vous pouvez régler ce paramètre dans la boîte de dialogue Projet Options du projet sous Options de « configure ». Avec l'option , vous définissez le dossier dans lequel &qte; est installé. + +Après avoir configuré et compilé votre application avec ces options, elle se lie avec la bibliothèque libqpe.so. 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 qvfb (&Qt; Virtual Frame Buffer). Pour ce faire, démarrez qvfb puis votre application avec + +app + +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. + +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 (PIM), 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 QPEApplication et de la lier à la bibliothèque libqpe.so. Si vous développez votre application avec la gestion de projet autoproject, vous devez ajouter aux options de « configure ». + + + + 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 @@ + +Changements + +Changements apportés à ce document + + + + 2003-01-03 Bernd Gehrmann, Caleb Tennis + + a participé à la disposition initiale du manuel + + + a défini le contenu de nombreux chapitres + + + + + + + + 2004-08-01 Bernd Pol, Ian Wadham + + ont réorganisé légèrement le manuel + + + ont écrit quelques chapitres manquants + + + + + + + 2005-05-02 Volker Paul — Nombreux changements, parmi lesquels : + + a réalisé la subdivision d'un fichier par chapitre / annexe + + + a ajouté la référence des commandes triées par menu (descriptions pas encore complètes) + + + Tutoriel AppWizard dans getting-started.docbook + + + a réorganisé des chapitres, guidé par le manuel de Konqueror + + + a déplacé l'installation, le développement Unix, « En quelques mots » dans l'annexe + + + a écrit l'annexe sur les modules externes, y compris le générateur de liste de modules externes listplugins.sh + + + + Encore loin d'être complet, mais un petit pas en avant. + + + + 2006-05-20 Bernd Pol — Complétement de quelques lacunes à  écrir«e   » + + + + + + + + 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 @@ + + + + + + + + BerndPol + + + + +Fichiers de configuration utilisés par &tdevelop; + +&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 : + + Configuration par défaut de &tdevelop; — fichiers configurés quand &tdevelop; a été installé. + Configuration orientée utilisateur — 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. + + + +Configuration par défaut de &tdevelop; + +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 $KDEDIR (habituellement/opt/kde, /usr/local/kde ou n'importe quel autre dossier d'installation défini par l'utilisateur. Reportez-vous au chapitre Installation de &tdevelop;). + + +Configuration par défaut de &tdevelop; + +Il n'y a qu'un seul fichier de configuration par défaut propre à &tdevelop; dans le dossier $KDEDIR/share/config/ : + + + tdeveloprc + Ce fichier contient les réglages de base dont &tdevelop; a besoin pour démarrer. Il sera copié dans le dossier $KDEHOME/share/config de l'utilisateur quand &tdevelop;n'y trouve pas de fichier tdeveloprc au démarrage. + + + + + + +Réglages spécifiques par défaut + +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 Outils modules externes). 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 $KDEDIR/share/apps/. + +On trouve un grand nombre de sous-dossiers de configuration par défaut dans $KDEDIR/share/apps/, dont les noms commencent tous par une séquence kdev. 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 : + Applications autonomes + Composants propres à une tâche + Composants de génération de projet + Composants propres à un langage + + + + + + Applications autonomes + + tdevelop/ — contient les fichiers permettant de configurer l'EDI &tdevelop; : + + licenses/ — contient divers textes de licences. + pics/ — contient les fichiers image utilisés pour &tdevelop;, l'assistant de &tdevelop; et les écrans de bienvenue de &tdevelop; Designer. + profiles/ — contient les réglages par défaut des modules externes. (Actuellement, un seul profil tiny est prévu, qui définit un ensemble minimal de modules externes &tdevelop; actifs.) + eventsrc — contient une grande quantité de chaînes de localisation « Processus réussi ». + tdevelopui.rc — fournit les éléments de menu et de barre d'outils de base que &tdevelop; utilise. + kdevhtml_partui.rc — fournit un élément Imprimer... dans le menu Fichier, un élément Copier dans le menu Édition, ainsi que des flèches Précédent et Suivant dans la barre d'outils du navigateur dans le cas où l'on parcourt un fichier &HTML; depuis le module externe Documentation. + + + kdevassistant/ — fournit les barres de menu et les barres d'outils du navigateur de documentation autonome de l'assistant de &tdevelop;. + kdevdesigner/ et kdevdesignerpart/ — fournissent la barre de menus et les barres d'outil du concepteur d'interface utilisateur autonome de &tdevelop;. + + + + Composants propres à une tâche + + kdevabbrev/ — contient les fichiers utilisés par le module externe Complétement automatique. + + sources/ — contient les fichiers de définition de mots-clés utilisés par la commande Développer le texte. + templates/ — contient les fichiers de définition de modèles utilisés par la commande Compléter automatiquement. + kdevabbrev.rc — fournit les éléments Développer le texte et Compléter automatiquement dans le menu Édition. + + + + kdevappwizard/ — contient les fichiers utilisés par le composant &appwizard;. + + importfiles/ — contient les fichiers du projet .tdevelop qui contrôlent l'initialisation d'un nouveau projet. + imports/ — contient les modèles pour configurer les fichiers .desktop propres à un projet. + template-common/ — contient divers fichiers communément inclus dans les dossiers des sources d'un projet. + templates/ — contient les fichiers de configuration qui décrivent les informations à inclure dans le dossier des sources d'un projet. + *.png — aperçus des images d'un projet utilisées par l'&appwizard;. + *.tar.gz — archives tar contenant les fichiers source à inclure dans le dossier d'un projet nouvellement généré. + + + kdevastyle/ — fournit l'élément Reformater le source dans le menu Édition. + kdevautoproject/ — fournit la plupart des éléments dans le menu Construire et la barre d'outils Barre d'outils de construction (&tdevelop;). + + kdevclassview/ — contient les fichiers utilisés par le module externe de projet Afficheur de classes. + + pics/ — contient les icônes utilisées dans l'arbre d'affichage des classes de Classes. + kdevclassview.tc — fournit l'élément Diagramme d'héritage des classes dans le menu Projet, ainsi que la zone de liste modifiable de navigation des classes dans la Barre d'outils du navigateur. + + + kdevcloser/ — fournit les éléments de fermeture du menu Fenêtre. + kdevctags/ — fournit l'élémentCTags dans le menu Outils pour le module externe de projet Interface pour CTags. + kdevcvsservice/ — fournit l'icône utilisée par l'onglet CvsService 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 Intégration de CVS. + kdevdebugger/ — fournit les éléments du menu Déboguer pour le module externe de projet Interface du débogueur. + kdevdiff/ — fournit l'élément Afficheur de différences dans le menu Outils. + kdevdistpart/ — fournit l'élément Distribution et publication dans le menu Projet pour le module externe de projet Gestion finale du conditionnement en paquetages. + + kdevdocumentation/ — contientles fichiers utilisés par le module externe Documentation. + + en/ et pics/ — contiennent les fichiers utilisés par l'outil de recherche htdig. + tocs/ — contient les fichiers de description du contenu de la documentation de &tdevelop; (reportez-vous à la description dans Structure fondamentale des fichiers TOC de &tdevelop;). + kdevpart_documentation.rc — fournit les éléments relatifs aux recherches dans le menu Aide. + + + kdevdoxygen/ — fournit les éléments de menu pour le module externe Gestion de Doxygen. + + kdevfilecreate/ — contient les fichiers utilisés par le Assistant de création d'un nouveau fichier. + file-templates/ — fournit le contenu initial du texte à placer dans le nouveau fichier source d'un type donné. + kdevpart_filecreate.rc — fournit l'élément Nouveau dans le menu Fichier. + template-info.xml — contient les descriptions des types de fichiers disponibles à afficher dans la vue Nouveau fichier. + + + kdevfilter/ — fournit les éléments Exécuter une commande... et Choix d'un filtre par une commande... dans le menu Outils utilisés par le module externe Filtrage et insertion dans le shell. + kdevfullscreen/ — fournit l'élément Mode plein écran dans le menu Affichage et l'icône de barre d'outils correspondante. + kdevgrepview/ — fournit l'élément Chercher dans les fichiers... dans le menu Édition utilisé par le module externe Interface pour Grep. + kdevhistory/ — fournit les éléments Précédent et Suivant dans le menu Affichage. + kdevjavadebugger/ — fournit un menu Débogueur JAVA afin de déboguer une application &Java;. + kdevoutputviews/ — fournit les éléments Erreur suivante et Erreur précédente dans le menu Affichage. + kdevpartexplorer/ — fournit l'élément Afficheur de composants logiciels dans le menu Outils utilisé par le module externe Outil d'exploration des composants. + kdevquickopen/ — fournit l'élément Quick Open File.. dans le menu Fichier ainsi que les éléments Ouverture rapide de classe... et Ouverture rapide de méthode... dans le menu Outils utilisé par le module externe de projet Ouverture rapide. + kdevregexptest/ — fournit l'élément Déboguer l'expression rationnelle... dans le menu Outils utilisé par le module externe Débogueur d'expressions rationnelles. + kdevreplace/ — fournit l'élément Rechercher / Sélectionner / Remplacer... dans le menu Édition utilisé par le module externe Outil de remplacement. + kdevtipofday/ — fournit l'élément Astuce du jour dans le menu Aide, ainsi qu'un fichier HTML contenant les astuces disponibles. + kdevtools/ — contrôle divers éléments de menu créés par les réglages du menu Outils et du menu Outils externes fournis par le module externe Suppléments au menu « Outils ». + kdevvalgrind/ — fournit les éléments Vérification des pertes de mémoire avec « Valgrind » et Profiler avec KCachegrind dans le menu Déboguer utilisés par le module externe Interface Valgrind. + + + + Composants de génération de projet + kdevadaproject/ — fournit les éléments pour le menu Construire et les icônes de barre d'outils correspondantes pour construire une application en Ada. + kdevantproject/ — fournit les éléments pour le menu Construire lors de l'emploi du générateur de projet Ant. + kdevautoproject/ — fournit les éléments pour le menu Construire 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 Ajouter une traduction... et Configuration de compilation au menu Projet. + kdevcustomproject/ — fournit les éléments pour le menu Construire et les icônes de barre d'outils correspondantes quand le projet est basé sur des Makefiles personnalisés. + kdevgenericproject/ — 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). + kdevhaskellproject/ — fournit les éléments pour le menu Construire et les icônes de barre d'outils correspondantes pour construire une application en Haskell. + kdevpascalproject/ — fournit les éléments pour le menu Construire et les icônes de barre d'outils correspondantes pour construire une application en Pascal. + kdevtrollproject/ — fournit les éléments pour le menu Construire et les icônes de barre d'outils correspondantes pour construire une application utilisant le gestionnaire de projet QMake de &Qt;. + + + + Composants propres à un langage + kdevadasupport/ — fournit les éléments dans le menu Outils et les icônes de barre d'outils correspondantes nécessaires pour développer des applications en Ada. + kdevbashsupport/ — fournit les éléments dans le menu Construire et les icônes de barre d'outils correspondantes nécessaires pour développer des scripts Bash. + + kdevcppsupport/ — contient les fichiers utilisés par l'&appwizard; pour construire des applications en C++. + + newclass/ — contient les modèles d'en-têtes et de sources à partir desquels l'&appwizard; construit les fichiers sources correspondants. + subclassing/ — contient les modèles que l'&appwizard; utilise pour configurer les déclarations et définitions de classes initiales dans les fichiers sources. + templates — 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. + configuration — modèle factice pour ajouter des macros. + kdevcppsupport.rc — fournit les éléments Compléter le texte et Ajouter un membre pour le menu Édition, l'élément Basculer entre la déclaration / l'implémentation pour le menu Affichage et l'élément Nouvelle classe pour le menu Projet, ainsi qu'une icône Nouvelle classe pour la Barre d'outils du navigateur. + + + kdevfortransupport/ — fournit des éléments dans le menu Construire nécessaires pour développer des applications en Fortran. + kdevhaskellsupport/ — fournit les éléments dans le menu Construire et les icônes de barre d'outils correspondantes nécessaires pour développer des applications en Haskell. + kdevjavasupport/ — contient la définition d'interface utilisateur nécessaire pour développer des applications en &Java;. + kdevpascalsupport/ — contient la définition d'interface utilisateur nécessaire pour développer des applications en Pascal. + kdevperlsupport/ — fournit les éléments de menu Projet et Aide nécessaires pour développer des scripts en Perl. + kdevphpsupport/ — contient les fichiers de définition d'interface utilisateur et de fonctions PHP nécessaires pour développer des scripts en PHP. + kdevpythonsupport/ — fournit les éléments de menu Construire et Aide et les icônes de barre d'outils correspondantes nécessaires pour développer des scripts en Python. + kdevrubysupport/ — fournit les éléments de menu Construire et les icônes de barre d'outils correspondantes nécessaires pour développer des scripts en Ruby. + kdevscriptproject/ — fournit les définitions d'interface utilisateur nécessaires pour développer des projets personnalisés. Non utilisé actuellement (version 3.1.0). + kdevsqlsupport/ — fournit les définitions d'interface utilisateur nécessaires pour développer des projets en SQL. Non utilisé actuellement (version 3.1.0). + + + + + + + + + + + +Configuration orientée utilisateur + +Toutes les informations sur les réglages définis par l'utilisateur sont conservées dans deux sous-dossiers de $KDEHOME, à savoir : + Configuration propre à une application dans le dossier $KDEHOME/share/apps/ et + Fichier de configuration des ressources dans le dossier $KDEHOME/share/config/. + + + + +Configuration propre à une application + +Tout changement par l'utilisateur apporté aux réglages dans la configuration par défaut de &tdevelop; aussi bien que les réglages propres à l'utilisateur, qui ne sont conservés dans aucun des fichiers de configuration des ressources se trouvent dans les sous-dossiers kdev... du dossier $KDEHOME/share/apps/. +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. +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 $KDEDIR/apps/ dans le dossier $KDEHOME/apps/ 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. + + + + kdevabbrev/ — contient les fichiers utilisés par le module externe Complétement automatique. + + sources/ — actuellement vide ; &tdevelop; utilise les fichiers de définition par défaut des mots-clés pour la commande Développer le texte. + templates/ — contient les modèles des fichiers de définition utilisés par la commande Compléter automatiquement. + kdevabbrev.rc — fournit les éléments Développer le texte et Compléter automatiquement dans le menu Édition. + + + + kdevappwizard/ — ne fournit que les éléments Nouveau projet... et Importer un projet existant... dans le menu Projet. L'&appwizard; utilisera les réglages par défaut de la configuration pour son fonctionnement réel. + + + kdevastyle/ — fournit l'élément Reformater le code source réel dans le menu Édition. + + + kdevautoproject/ — fournit les éléments réels dans le menu Construire et la barre d'outils Barre d'outils de construction (KDevelop). + + + kdevclassview/ — fournit l'élément Diagramme d'héritage des classes dans le menu Projet ainsi que la zone de liste modifiable du navigateur de classes dans la Barre d'outils du navigateurpar le module externe de projet Afficheur de classes. + + + kdevcloser/ — fournit l'élément Fermer les fenêtres sélectionnées... dans le menu Fenêtre. + + + kdevcppsupport/ — 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 dossier de configuration par défaut. Veuillez vous y reporter pour plus de détail. + + + newclass/ — contient les modèles d'en-têtes et de sources à partir desquels l'&appwizard; construit les fichiers source correspondants. + + + pcs/ — contient les fichiers de base de données dont &tdevelop; se sert pour construire le fichier « Persistent Code Store » (.pcs) d'un projet &kde; en C++. + + + kdevcppsupport.rc — fournit les éléments Compléter le texte et Ajouter un membre pour le menu Édition, l'élément Basculer entre la déclaration / l'implémentation pour le menu Affichage et l'élément Nouvelle classe pour le menu Projet, ainsi qu'une icône Nouvelle classe pour la Barre d'outils du navigateur. + + + + + kdevctags/ — fournit l'élémentCTags dans le menu Outils pour le module externe de projet Interface pour CTags. + + + kdevdebugger/ — fournit les éléments du menu Déboguer pour le module externe de projet Interface du débogueur. + + + kdevdiff/ — fournit l'élément Afficheur de différences dans le menu Outils. + + + kdevdocumentation/ — contient les fichiers réels que le module externe Documentation utilise en plus des fichiers de configuration par défaut. Reportez-vous à celui-ci pour plus de détail. + Les dossiers de kdevdocumentation/ contiennent surtout des informations comptables à proprement parler. Les fichiers de documentation réellement configurés sont conservés dans les fichiers « doc...pluginrc » dans le dossier $KDEHOME/share/config/. + + + bookmarks/ — maintient les éléments dans l'onglet Signets du module externe Documentation de &tdevelop;. + + + index/ — contient divers fichiers de cache que &tdevelop; utilise pour accélérer les recherches de documentation indexée dans l'onglet Index du module externe Documentation. + + + search/ — contient les fichiers utilisés par l'outil de recherche htdig qui prend en charge les appels de recherche depuis l'onglet Recherche du module externe Documentation. + + + kdevpart_documentation.rc — fournit les éléments relatifs aux recherches dans le menu Aide. + + + + + kdevdoxygen/ — fournit les éléments de menu pour le module externe Gestion de Doxygen. + + + tdevelop/ — contient certains réglages effectifs que &tdevelop; emploie pour sa configuration de base. + + profiles/ — fournit un paramétrage réel de profil de module externe. (Initialement, il n'y a qu'un profil FullIDE qui définit un ensemble complet de modules externes &tdevelop; actifs.) + tdevelopui.rc — fournit les éléments de menu et de barre d'outils de base que &tdevelop; utilise. + + + + kdevfilecreate/ — contient les fichiers utilisés par le Assistant de création d'un nouveau fichier. + + file-templates/ — 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 fichiers de configuration par défaut. + kdevpart_filecreate.rc — fournit l'élément Nouveau dans le menu Fichier. + template-info.xml — contient les descriptions des types de fichiers disponibles à afficher dans la vue Nouveau fichier. + + + + kdevfilter/ — fournit les éléments Exécuter une commande... et Choix d'un filtre par une commande... dans le menu Outils utilisés par le module externe Filtrage et insertion dans le shell. + + + kdevfullscreen/ — fournit l'élément Mode plein écran dans le menu Affichage et l'icône de barre d'outils correspondante. + + + kdevgrepview/ — fournit l'élément Chercher dans les fichiers... dans le menu Édition utilisé par le module externe Interface pour Grep. + + + kdevoutputviews/ — fournit les éléments Erreur suivante et Erreur précédente dans le menu Affichage. + + + kdevpartexplorer/ — fournit l'élément Afficheur de composants logiciels dans le menu Outils utilisé par le module externe Outil d'exploration des composants. + + + kdevquickopen/ — fournit l'élément Quick Open File.. dans le menu Fichier ainsi que les éléments Ouverture rapide de classe... et Ouverture rapide de méthode... dans le menu Outils utilisé par le module externe de projet Ouverture rapide. + + + kdevregexptest/ — fournit l'élément Déboguer l'expression rationnelle... dans le menu Outils utilisé par le module externe Débogueur d'expressions rationnelles. + + + kdevreplace/ — fournit l'élément Rechercher / Sélectionner / Remplacer... dans le menu Édition utilisé par le module externe Outil de remplacement. + + + kdevtipofday/ — fournit l'élément Astuce du jour dans le menu Aide. Le fichier HTML contenant les astuces disponibles est fourni à titre de fichier de configuration par défaut seulement. + + + kdevtools/ — contrôle divers éléments de menu créés par les réglages du menu Outils et du menu Outils externes fournis par le module externe Suppléments au menu « Outils ». + + + kdevvalgrind/ — fournit les éléments Vérification des pertes de mémoire avec « Valgrind » et Profiler avec KCachegrind dans le menu Déboguer utilisés par le module externe Interface Valgrind. + + + + + + +Fichier de configuration des ressources + +Ce sont deux groupes de fichiers de configuration de &tdevelop; dans le dossier $KDEHOME/share/config/, distingués par les séquences de caractères qui les entourent. + « doc...pluginrc » désigne les fichiers utilisés par le module externe de documentation. + « kdev...rc » désigne les fichiers de configuration utilisés par &tdevelop; lui-même et ses modules externes disponibles. + + + + +Fichiers de configuration utilisés par &tdevelop; + + kdevabbrevrc — contient l'état actuel de la configuration des Abréviations fournie par le module externe Complétement automatique. + 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 $KDEHOME/share/apps/kdevabbrev/templates/templates. + + + kdevassistantrc — contient quelques états de configuration propres au navigateur autonome de documentation de l'assistant de &tdevelop;. + La plupart des réglages de configuration courants sont partagés avec le fichier tdeveloprc de l'EDI &tdevelop;. + + kdevassistantuimode4rc — contient les états de configuration MDI courants (positions d'incrustation, &etc;) du navigateur autonome de documentation de l'assistant de &tdevelop;. + + kdevclassviewrc — contient le réglage Mode d'affichage de l'onglet du navigateur de classes Classes fourni par le module externe de projet Afficheur de classes. + C'est un réglage global, bien que le module externe Afficheur de classes 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. + + kdevcppsupportrc — 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 Générateur de classes C++. + kdevdocumentationrc — contient les réglages réels que le module externe Documentation utilise. + tdeveloprc — contient les réglages globaux que le l'EDI &tdevelop; et le navigateur autonome de documentation de l'assistant de &tdevelop; utiliseront. + tdevelopuimode4rc — contient les états de configuration MDI actuels (positions d'ancrage, &etc;) de l'EDI &tdevelop;. + kdevfileselectorrc — contient les réglages réels que le module externe Sélecteur de fichiers utilise. + kdevfileviewrc — contient les réglages de couleur des noms de fichiers que le module externe de projet Intégration de CVS (Cervisia) utilise pour l'affichage. + kdevfilterrc — contient les réglages réels que le module externe Filtrage et insertion dans le shell utilise. + kdevgrepviewrc — contient les réglages réels que le module externe Interface pour Grep utilise. + kdevsnippetrc — contient les réglages réels que le module externe Fragments de code utilise. + kdevtoolsrc — contient les réglages réels que le module externe Suppléments au menu « Outils » utilise. + + + +Fichiers de configuration utilisés par le module externe Documentation + docchmpluginrc — contient des informations sur les fichiers d'aide CHM de &Microsoft;, comme défini sur la page de configuration Collection de documentation CHM. + doccustompluginrc — contient des informations sur tout fichier de documentation personnalisé défini sur la page de configuration Collection de documentation personnalisée. + docdevhelppluginrc — contient des informations sur les fichiers de documentation réels DevHelp de GNOME 2, comme défini sur la page de configuration Collection de documentation DevHelp. + docdoxygenpluginrc — 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 Collection de documentation Doxygen. + dockdevtocpluginrc — contient des informations sur les fichiers réels de documentation structurée KDevelopTOC, comme défini sur la page de configuration Collection de documentation KDevelopTOC. + docqtpluginrc — contient des informations sur les fichiers de documentation QT inclus réellement sur la page de configuration Collection de documentation QT. + + + + + + + + + +Configuration dépendante d'un projet + +La plus grande partie de la configuration dépendante d'un projet est conservée dans les fichiers de configuration de projet de &tdevelop; <nom-projet>.tdevelop et <nom-projet>.kdevses, 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 : + + <nom-projet>.tdevelop — informations de configuration globales du projet. + <nom-projet>.kdevses — informations de configuration nécessaires pour rétablir les comportements spécifiques de la session en cours. + +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. + + +Fichiers « Persistent Code Store » + +Il y a un troisième fichier de configuration dépendant d'un projet, le <project-name>.tdevelop.pcs 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 Complétement du code de &tdevelop;. + +Des fichiers « Persistant Code Store » additionnels peuvent être configurés sur l'onglet Complétement du code de la page de configuration de projet Spécifique au C++. Des informations sur ces .pcs additionnels sont conservées globalement dans le dossier $KDEHOME/share/apps/kdevcppsupport/pcs/. + + + + + 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 @@ + + + + + BerndPol + + + + +Vue d'ensemble des menus et des barres d'outils + +(... à écrire ...) + + +Menus + +(... à écrire ...) + + +Menus généralement disponibles + +(... à écrire ...) + + + + +Menus propres à un projet + +(... à écrire ...) + + + + +Menus propres aux outils modules externes (plugins) + +(... à écrire ...) + + + + + + +Barres d'outils + +(... à écrire ...) + + + + 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 @@ + +Informations complémentaires + +Obtention des informations +(... à écrire ...) + + + +Rapports de bogues +(... à écrire ...) + + + +Licence +&underFDL; &underGPL; + + + 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 @@ + +Exemples de mode d'interface utilisateur de &tdevelop; + + +Mode IDEAl + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + + Copie d'écran + Mode IDEAI de &tdevelop; + + + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + + Copie d'écran + Mode IDEAI de &tdevelop;, onglets fermés + + + +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. +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. + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + +Mode fenêtre enfant + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + + Copie d'écran + Mode fenêtre enfant de &tdevelop; + + + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + +Mode fenêtre d'onglets + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + + Copie d'écran + Mode fenêtre d'onglets de &tdevelop; + + + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + +Mode fenêtre au premier niveau + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + + Copie d'écran + Mode fenêtre au premier niveau de &tdevelop; + + + +Cliquez ici pour retourner à la vue d'ensemble des modes. + + + + + + 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 @@ + + + + + BerndPol + + + + +Premiers pas — l'&appwizard; + + + + + + &appwizard; + +Dans &tdevelop;, les travaux de développement logiciel sont organisés en projets. 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. +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é. + + +Nouveaux projets + + + + + + projet + nouveau + +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; +&tdevelop; offre un moyen aisé de lancer un nouveau projet de programmation — l'&appwizard;. Vous trouverez l'&appwizard; dans l'élément de menu Projet Nouveau projet. +Une seule et courte série d'étapes suffit pour démarrer un nouveau projet de programmation à l'aide de l'&appwizard; : + + Choisissez le langage de programmation que vous souhaitez utiliser et le type de l'application que vous voulez construire à partir d'un ensemble de modèles prédéfinis. + Indiquez des informations générales comme le nom de l'application, le dossier dans lequel l'application devra être construite, &etc; + Décidez si vous souhaitez utiliser un système de contrôle de versions, comme &pex; CVS, et fournissez les données nécessaires si besoin est. + Configurez quelques modèles pour les en-têtes initiaux et les fichiers sources (si applicable). + Pour finir, donnez l'ordre à l'&appwizard; de configurer des éléments initiaux, 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; + +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. +Examinons tout ceci en détail à présent ... + + +Étapes initiales + + + boîte de dialogue + créer un nouveau projet + + projet + créer un nouveau projet + boîte de dialogue + + projet + modèles + + modèles + projet + +Pour créer un nouveau projet dans &tdevelop;, sélectionnez Nouveau projet dans le menu Projet. La boîte de dialogue Créer un nouveau projet apparaît, affichant une page initiale Géneral : + + + + + + + Boîte de dialogue initiale pour configurer un nouveau projet + + + +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. + + +Choisissez le langage de programmation et le type de l'application + + + projet + type d'application + + projet + langage de programmation + + projet + langage + + langage + + langage de programmation + + application + type + +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 : + + + Ada + Ada + nouveau projet + + C + C + nouveau projet + + C++ + C++ + nouveau projet + + Base de données (projets SQL) + SQL + nouveau projet + + Base de données + nouveau projet + + Fortran + Fortran + nouveau projet + + Haskell + Haskell + nouveau projet + + Java + Java + nouveau projet + + PHP + PHP + nouveau projet + + Pascal + Pascal + nouveau projet + + Perl + Perl + nouveau projet + + Python + Python + nouveau projet + + Ruby + Ruby + nouveau projet + + Shell (scripts pour le shell Bash) + Bash + nouveau projet + + shell + nouveau projet + + + +Pour être précis, ces dossiers ne contiennent pas d'outils de programmation réels à proprement parler. En revanche, ils donnent accès à des modèles 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. +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 courte description 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 capture d'écran de la fenêtre principale que l'application affiche. +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. + + +Sélectionner un système de gestion de projet +Chaque modèle est lié à un système de gestion de projet 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. + + + + + +Fournir des informations générales + + + projet + propriétés + + propriétés + + application + nom + + nom + application + + projet + dossier + + dossier + projet + + chemin + nouveau projet + + projet + auteur + + projet + adresse électronique + + auteur + + adresse électronique + + projet + main.cpp + + main.cpp + + projet + licence + + licence + +La partie inférieure de la boîte de dialogue Créer un nouveau projet de la page Général est un champ encadré intitulé Propriétés. 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. + +Nom de l'application +Votre application a bien entendu besoin d'un nom. Saisissez ce dernier dans le champ Propriétés supérieur, appelé Nom de l'application. Nous utiliserons MyApp à titre d'exemple. + +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 : + les caractères en majuscules et en minuscules + les nombres + le caractère de soulignement + + +Une cause notable de cette restriction est que l'&appwizard; utilise ce nom d'application comme base de certains noms de classes 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. + +Le dossier du projet +Vous pouvez voir l'autre cause notable de cette restriction sur la ligne inférieure de la zone Propriétés. Elle est intitulée Emplacement cible et affiche le dossier dans lequel l'&appwizard; crée l'application. + +Lorsque vous saisissez le nom de l'application, vous remarquez que l'&appwizard; répète votre saisie à la fin de la ligne Emplacement cible, en utilisant uniquement des caractères en minuscules. +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 Suivant > désactivé (grisé). De plus, il vous avertira dans ce cas en ajoutant ( le o«ssier / fichier existe déjà) » à la fin de la ligne Emplacement cible. + + +Le chemin de démarrage +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. + +Le champ de saisie de la deuxième ligne de Propriétés, dénommé Emplacement permet de le faire. Ce que vous saisissez correspond au chemin de démarrage 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 Emplacement cible pour vous donner un meilleur contrôle sur ce qui se passe. +L'&appwizard; copie une valeur initiale dans le champ Emplacement au démarrage. Celle-ci provient de ce que vous avez choisi dans le champ Dossier des projets par défaut pendant les étapes générales de configuration. Dans notre cas, &tdevelop; est configuré pour utiliser /home/devel/projets/ comme chemin initial pour les nouveaux projets. +Modifiez le contenu du champ Emplacement de façon à ce que le dossier de développement d'application affiché sur la ligne Emplacement cible soit unique. + +Veillez à ce que le chemin que vous saisissez dans le champ Emplacement existe déjà. Sinon, vous ne serez pas en mesure de passer à l'étape suivante. L'&appwizard; vous avertira à propos des chemins non existants en ajoutant ( non va«lable)  à la fin» de la ligne Emplacement cible. + + + + + + + Configurer un nouveau projet pour CVS + + + + +Informations personnelles +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 Auteur ainsi qu'une adresse électronique valable dans le champ Adresse électronique de façon à ce que les utilisateurs puissent vous communiquer leurs réactions sur l'application. + + + + + 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 Créer un nouveau projet, Auteur et Adresse électronique ne conviennent pas, jetez un coup d'Å“il à la configuration de votre courrier dans le ¢reConfiguration;. + 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 main.cpp. + De tous les champs, Adresse électronique est optionnel, 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. + + + + +Infos de version et de licence +Saisissez pour finir un numéro de version de départ pour votre nouvelle application dans le champ Version, et choisissez la licence sous laquelle vous souhaitez que votre application soit placée dans l'onglet Licence. + + +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 Créer un nouveau projet (reportez-vous au chapitre Fournir des modèles de sources et d'en-têtes). +Si vous avez sélectionné « Personnalisée » dans l'onglet Licence, prévoyez un texte de licence qui vous est propre. + +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. + +Une fois que avez correctement saisi toutes ces informations, cliquez sur le bouton Suivant > pour continuer, comme décrit dans les chapitres suivants. + + + + + +Fournir des informations sur le système de versions + + + CVS + nouveau projet + + projet + CVS + + base de données + CVS + + version + base de données + + version + CVS + +Dans une seconde étape, l'&appwizard; vous conduit à la page Système de contrôle des versions dans laquelle vous pouvez décider du système de contrôle de versions que vous souhaitez utiliser. + +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 Utilisation de &CVS; ci-dessous. + + +Aucun système de contrôle de versions souhaité +Initialement, « Aucun » est sélectionné dans l'onglet Système de contrôle de versions : 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 Suivant > et de continuer. + + + +Utilisation de &CVS; +Dans le cas contraire, sélectionnez à nouveau le système de contrôle de versions que vous souhaitez employer dans l'onglet Système de contrôle des versions. 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. + + + + + + + + Configurer un nouveau projet pour CVS + + + +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. + + + CVS + racine + + racine + CVS + + CVS + local + + CVS + distant + + CVS local + + :local: + + CVS + :local: + + +Racine de &CVS; +&CVS; doit gérer 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é &CVS; root. La première étape pour configurer &CVS; pour votre nouveau projet consiste donc à indiquer à &tdevelop; où se trouve cette racine. + + +Local &CVS; root. Il y a deux possibilités essentielles. Soit vous souhaitez utiliser une base de données &CVS; locale, soit une base de données hébergée sur un serveur distant. 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 cvsroot. Voici à quoi elle ressemble : +/home/devel/cvsroot (où devel désigne simplement l'utilisateur d évelop«pement , juste Ȉ titre d'exemple) + +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 :local:. La forme abrégée n'est autorisée que dans les cas où le nom de fichier commence par une barre oblique (/). Le nom complet dans notre exemple de racine du &CVS; local ressemblera exactement à : :local:/home/devel/ cvsroot + +Saisissez le nom du dossier de la racine &CVS; pour lequel votre système a été configuré dans le champ Racine du référentiel CVS. 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. +Initialiser une nouvelle racine &CVS;. 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 Dossier racine pour l'initialisation sous le champ Racine du référentiel CVS. +Comme nous l'avons vu, &tdevelop; ne commande 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é Dossier racine pour l'initialisation par inadvertance sur un dosser racine &CVS; déjà existant. + +Racine du &CVS; distant. 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 Racine du référentiel CVS. Par exemple, pour accéder au serveur &CVS; de &kde; : +:pserver:monlogin@cvs.kde.org:/home/kde (où monlogin désigne le nom de connexion configuré dans votre compte &CVS; &kde;) + + + CVS distant + + :pserver: + + :ext: + + CVS + :local: + + CVS + :pserver: + + CVS + :ext: + + +Types de serveurs &CVS; distants +Il y a essentiellement deux types de serveurs &CVS; distants largement répandus : le serveur pserver qui fonctionne selon un protocole non crypté avec mot de passe sécurisé, et le serveur ext 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 : + + +:pserver: + +pour le s erveur« protégé par mot de passe », de type non crypté, et + +:ext: + +pour un type de serveur crypté rsh ou ssh. Par exemple + +:ext:mylogin@cvs.cervisia.sourceforge.net:/cvsroot/cervisia + +accède à la racine &CVS; de l'outil de gestion &CVS; Cervisia bien connu, sur le serveur de SourceForge. +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 rsh ou ssh dans le champ CVS_RSH de la page Système de contrôle des versions, Créer un nouveau projet. + +Il y a une mise en garde si vous utilisez un serveur crypté pour &CVS; depuis &tdevelop;. Consultez le chapitre Utilisation de &CVS; pour les détails. + + + CVS + référentiel + + référentiel + CVS + + +Le référentiel &CVS; +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é référentiel. + +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. +Saisissez juste le nom du référentiel de votre choix dans le champ Référentiel CVS de la page Système de contrôle des versions, Créer un nouveau projet. Dans notre exemple, il s'agit de : MonApp + +Veillez à ne pas employer un référentiel qui existe déjà ! 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 ! + + +Les champs restants +Il ne reste plus beaucoup de choses à faire. L'&appwizard; a déjà configuré les champs restants à votre place. Dans le détail : + +Le champ Fournisseur 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. +Le champ Message 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. +Le Marqueur pour la version de diffusion contient le nom qui marque l'état initial de votre projet. Ce type de marqueur 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 Utilisation de &CVS;.) +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. + + +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 Messages 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 : + + +* 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 *** + + +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 Nouveau projet dans le menu Projet. + + +Après avoir saisi toutes les informations relatives à &CVS;, cliquez sur le bouton Suivant > pour continuer. + +Pour corriger une erreur sur la page Créer un nouveau projet précédente, il suffit de cliquer sur le bouton < Précédent. Comme l'&appwizard; mémorise vos réglages sur la page actuelle, vous pourrez aisément continuer lorsque vous reviendrez. + + + + +Fournir des modèles d'en-têtes / de sources + +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. +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. +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 : + + +/*************************************************************************** + * 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. * + ***************************************************************************/ + + +D'autres modèles fournissent des informations similaires dans un format approprié aux définitions du langage de programmation que vous souhaitez utiliser. +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 Général de la boîte de dialogue Créer un nouveau projet, notamment le contenu des champs Auteur et Adresse électronique. De plus, les informations de licence correctes ont été insérées en fonction de votre choix dans l'onglet Licence. + + +Comment modifier les modèles + + + modèles + projet + modifier + + projet + modèles + modifier + +Les modèles que vous avez configurés dans la boîte de dialogue Créer un nouveau projet 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. +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'Auteur, d'Adresse électronique et de Licence dans le texte du modèle initial. + + + +Inclure des informations sur des fichiers &doxygen; + +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 : + +/** + * \file $MODULE$.cpp + * \brief (placer une courte description ici). + **/ + +Chaque fois que vous créez un nouveau fichier source, &tdevelop; remplace la variable $MODULE$ par le corps du nom du fichier récemment créé. Par exemple, si vous avez créé une nouvelle classe C++ nommée UnSimpleTest, vous verrez les lignes suivantes dans le fichier unsimpletest.cpp : + +/** + * \file asimpletest.cpp + * \brief (placer une courte description ici). + **/ + +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. + + + + +Le fichier texte de la licence + +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 $LICENSEFILE$ pour ce faire et ajoutez par exemple cette ligne : + + +// Voir $LICENSEFILE$ pour le texte complet de la licence. + +L'&appwizard; remplace la variable $LICENSEFILE$ par le nom du fichier dans lequel se trouve la licence complète, à savoir : + +// Voir COPYING pour le texte complet de la licence. + +pour la licence GPL ou + +// Voir LICENSE.BSD pour le texte complet de la licence. + +Si vous avez décidé de placer votre application sous l'égide de la licence BSD. +&tdevelop; connaît bien sûr d'autres variables. Reportez-vous à la section Édition des modèles dans le chapitre Édition des outils pour savoir ce qui est possible. + + + + +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. + + + + + +Construire les fichiers initiaux du projet + + + projet + nouveau + construire + + projet + construction initiale + +Presque tout est fait à présent. Sur la dernière page des modèles, le bouton Suivant > aura changé pour désormais lire Terminer. +Réfléchissez bien avant de cliquer dessus ! Vous avez encore la possibilité de tout revoir en cliquant à plusieurs reprises sur le bouton < Précédent. 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 référentiel &CVS; (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). +Si jamais vous ne souhaitez pas que le nouveau projet soit construit, interrompez la boîte de dialogue Créer un nouveau projet par le bouton Annuler. Sinon, cliquez sur Terminer et surveillez dans la fenêtre Messages la manière dont l'&appwizard; lance le projet. +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 Messages 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. + +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;.) + +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 modèles, dans votre dossier de projet. Quelques opérations de copies simples suffiront le plus souvent. +Il est ensuite conseillé de compiler le projet initial 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. + + + + + configuration de la construction par défaut + avertissement + + configurations de la construction + avertissement de la construction par défaut + + avertissement + configuration de la construction par défaut + + Avant de compiler votre nouveau projet pour la première fois, jetez un coup d'Å“il à Projet Configuration de construction. S'il y a trois sélections affichées : par défaut, optimisée et débogage, avec débogage sélectionné, collez à celui-ci sans hésiter ou utilisez optimisée à la place. + En raison de certaines restrictions dans l'installation actuelle de autoconf/automake, vous ne devez en aucun cas compiler dans la configuration par défaut. Cette opération corromprait certains paramètres internes du dossier, amenant configure à réagir quand vous essaierez de l'utiliser dans la configuration de construction optimisée ou débogage par la suite. + (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 par défaut, vous devrez bien sûr utiliser cette dernière.) + + + + + + + +Configurer des projets + +(... à écrire ...) + + + + 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 @@ + +Les navigateurs de classes +navigateur de classes + +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. + + +Vue des classes + +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. + +
+Une copie d'écran de la vue des classes + + + +
+ +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 Liste par espaces de noms. 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. + +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 Portées des identifiants complets dans le menu contextuel. + +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 Aller à la déclaration dans le menu contextuel. Dans le menu contextuel pour les classes, se trouvent aussi les éléments Ajouter une méthode... et Ajouter un attribut.... 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. + +
+ + + + +Outils pour la gestion des classes + +La boîte de dialogue des outils pour la gestion des classes est activée dans la vue des classes et en choisissant Outils pour la gestion des classes.... + + + + + + +Hiérarchie des classes + +(... à écrire ...) + + + +
+ + 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 @@ + + + + + + + Volker Paul + JoëlleCornavin
jcornavi@club-internet.fr
Traduction française par
+
+ + 04-03-2005 +
+ +Référence des commandes + +Les combinaisons de raccourcis clavier présentées dans ce chapitre sont celles par défaut. Elles peuvent être changées. + + + + +La barre de menus Notez que certains éléments de menu n'apparaissent que quand ils sont applicables. En particulier, certains élément sont liés à la fonctionnalité module externe qui n'est disponible quand le module externe est activé. + + + + + + + + + +Le menu <guimenu +>Fichier</guimenu +> + + + + &Ctrl;N Fichier Nouveau +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. + + + + &Ctrl;O Fichier Ouvrir +Ouvre un fichier existant dans une boîte de dialogue simple. + + + + &Ctrl;O Fichier Récemment ouvert(s) +Affiche un sous-menu montrant les fichiers récemment ouverts. Sélectionner un de ceux-ci le fait ouvrir à KDevelop. + + + + &Alt;&Ctrl;O Fichier Ouverture rapide +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. + + + + + &Ctrl;S Fichier Enregistrer +Enregistre le fichier actuel. + + + + + &Ctrl;S Fichier Enregistrer sous... +Utilise la boîte de dialogue Enregistrer sous... pour vous permettre d'enregistrer une copie sous un nouveau nom. + + + +Fichier Tout enregistrer +Enregistre tous les fichiers ouverts + + + +F5 Fichier Recharger +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é). + + + +Fichier Tout annuler +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é. + + + + + &Ctrl;P Filchier Imprimer... +Imprime + + + +Fichier Exporter +Exporte + + + + + &Ctrl;F4 Fichier Fermer +Ferme le fichier actuel + + + + +Fichier Tout fermer +Ferme tous les fichiers ouverts + + + + +Fichier Fermer tous les autres +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. +Notez qu'il y a une commande similaire dans le menu Fenêtre. + + + + + &Ctrl;Q Fichier Quitter +Ferme KDevelop + + + + + + + + + + + + +Le menu <guimenu +>Édition</guimenu +> + + + + + + + &Ctrl;Z Édition Annuler +Annule + + + + + &Ctrl;&Maj;Z Édition Refaire +Refait + + + + + &Ctrl;X Édition Couper +Couper + + + + + &Ctrl;C Édition Copier +Copie + + + + + &Ctrl;V Édition Coller +Colle + + + + + &Ctrl;A Édition Tout sélectionner +Sélectionne tout + + + + + &Ctrl;&Maj;A Édition Désélectionner +Désélectionne + + + + + &Ctrl;&Maj;B Édition Mode de sélection par blocs +Mode de sélection par blocs + + + + + Insérer Édition Mode écrasement +Mode écrasement + + + + + &Ctrl;F Édition Chercher +Cherche + + + + + F3 Édition Poursuivre la recherche +Poursuit la recherche + + + + + &Maj;F3 Édition Chercher en arrière +Cherche en arrière + + + + + &Ctrl;R Édition Remplacer +Remplace + + + + + &Ctrl;G Édition Aller à la ligne +Va à la ligne + + + + + &Alt;&Ctrl;F Édition Chercher dans les fichiers +Cherche dans les fichiers + + + + + &Maj;R Édition Chercher / Sélectionner / Remplacer +Cherche, sélectionne et remplace + + + + +Édition Reformater le code source +Reformate le source + + + + + &Ctrl;J Édition Étendre le texte +Étend le texte + + + + + &Ctrl;L Édition Développer l'abréviation +Développe l'abréviation + + + + + &Ctrl;Espace Édition Compléter le texte +Complète le texte + + + + + F2 Édition Ajouter un membre +Ajoute un membre + + + + + + + + + + + + + + +Le menu <guimenu +>Affichage</guimenu +> + + + +Affichage Précédent +Précédent + + + + +Affichage Suivant +Suivant + + + + + &Ctrl;/ Affichage Basculer vers... +Basculer vers... + + + + + &Alt;C Affichage Mettre l'éditeur au premier plan +Met l'éditeur au premier plan + + + + + F4 Affichage Erreur suivante +Erreur suivante + + + + + &Maj;F4 Affichage Erreur précédente +Erreur précédente + + + + + &Maj;F Affichage Mode plein écran +Mode plein écran + + + + + &Ctrl;F12 Affichage Basculer entre la déclaration / implémentation +Bascule entre la déclaration et l'implémentation + + + + +Affichage Vues des outils +Tool Views + + + + +Afffichage Incrustation des outils +Incrustation des outils + + + + + F7 Affichage Basculer dans la ligne de commande +Bascule dans la ligne de commande + + + + +Affichage Schéma +Schéma + + + + + F10 Affichage Retour à la ligne dynamique +Retour à la ligne dynamique + + + + +Affichage Indicateurs de retour à la ligne dynamique +Indicateurs de retour à la ligne dynamique + + + + +Affichage Afficher / Cacher l'indicateur de retour à la ligne statique +Affiche / Cache l'indicateur de retour à la ligne statique + + + + + F6 Affichage Afficher / Cacher la bordure d'icônes +Affiche / Cache la bordure d'icônes + + + + + F11 Affichage Afficher / Cacher les numéros de ligne +Affiche / Cache les numéros de ligne + + + + +Affichage Afficher / Cacher les repères sur les barres de défilement +Affiche / Cache les repères sur les barres de défilement + + + + + F9 Affichage Afficher / Cacher les indicateurs de pliage +Affiche / Cache les indicateurs de pliage + + + + +Affichage Pliage du code +Pliage du code + + + + +Affichage Définir l'encodage +Définit l'encodage + + + + + + + + + + + + + + + +Le menu <guimenu +>Projet</guimenu +> + + + + +Projet Nouveau projet... +Nouveau projet... + + + + +Projet Ouvrir un projet... +Ouvre un projet... + + + + +Projet Projet(s) récemment ouvert(s) +Projet(s) récemment ouvert(s) + + + + +Projet Langage actif +Langage actif + + + + +Projet Importer un projet existant... +Importe un projet existant... + + + + +Projet Nouvelle classe... +Nouvelle classe... + + + + +Projet Diagramme d'héritage des classes +Diagramme d'héritage des classes + + + + +Projet Ajouter une traduction... +Ajoute une traduction... + + + + +Projet Configuration de compilation +Configuration de compilation + + + + +Projet Distribution et publication +Distribution et publication + + + + +Projet Options du projet +Options du projet + + + + +Projet Fermer le projet +Ferme le projet + + + + + + + + + + + + + + +Le menu <guimenu +>Projet</guimenu +> + + + + + F8 Construire Construire le projet +Construit le projet + + + + + F7 Construire Construire la cible active +Construit la cible active + + + + +Construire Compiler le fichier +Compile le fichier + + + + +Construire Exécuter le script « configure » +Exécute le script « configure » + + + + +Construire Exécuter « automake » et ses amis +Exécute « automake » et ses amis + + + + +Construire Installer +Installe + + + + +Construire Installer (en tant qu'utilisateur « root ») +Installe (en tant qu'utilisateur « root ») + + + + +Construire Nettoyer le projet +Nettoie le projet + + + + +Construire Purger +Purge + + + + + &Maj;F9 Construire Extraire et fusionner les messages +Extrait et fusionne les messages + + + + +Construire Exécuter le programme +Exécute le programme + + + + +Construire Construire la documentation de l'API +Construit la documentation de l'API + + + + +Construire Nettoyer la documentation de l'API +Nettoie la documentation de l'API + + + + + Échap Construire Arrêter +Arrête + + + + + + + + + + + + + + + +Le menu <guimenu +>Projet</guimenu +> + + + + +Déboguer Démarrer +Démarre + + + + +Déboguer Arrêter +Arrête + + + + +Déboguer Interrompre +Interrompt + + + + +Déboguer Exécuter jusqu'au curseur +Exécute jusqu'au curseur + + + + +Déboguer À la ligne suivante +À la ligne suivante + + + + +Déboguer Instruction suivante +Instruction suivante + + + + +Déboguer Aller à la ligne suivante +Va à la ligne suivante + + + + +Déboguer Aller à l'instruction suivante +Va à l'instruction suivante + + + + +Déboguer Aller à la ligne suivante en sortant +Va à la ligne suivante en sortant + + + + +Déboguer Basculer le point d'arrêt +Bascule le point d'arrêt + + + + +Déboguer Afficheurs +Afficheurs + + + + +Déboguer Examiner un fichier « core »... +Examine un fichier « core »... + + + + +Déboguer Attacher au processus +Effectue l'attachement au processus + + + + +Déboguer Vérification des pertes de mémoire avec « Valgrind » +Vérifie les pertes de mémoire avec « Valgrind » + + + + +Déboguer Profiler avec « KCachegrind » +Profile avec « KCachegrind » + + + + + + + + + + + + + + + + + + +Le menu <guimenu +>Signets</guimenu +> + + + + + &Ctrl;B Signets Définir un signet +Ajoute la sélection actuelle à vos signets. + + + + +Signets Effacer tous les signets +Efface tous les signets. + + + + + + + + + + + + +Le menu <guimenu +>Fenêtre</guimenu +> + + + + + &Alt;W Fenêtre Fermer les fenêtres sélectionnées... +Ferme les fenêtres sélectionnées... + + + + &Ctrl;F4 Fenêtre Ferme +Ferme la fenêtre + + + +Fenêtre Tout fermer +Ferme tout + + + +Fenêtre Fermer toutes les autres +Ferme toutes les autres + + + + + + + + + + + + + + + + +Le menu <guimenu +>Outils</guimenu +> + + + +Outils Mode lecture seule +Mode lecture seule + + + + +Outils Type de fichier +Mode type de fichier + + + + +Outils Coloration syntaxique +Mode coloration syntaxique + + + + +Outils Fin de ligne +Fin de ligne + + + + +Outils Orthographe +Orthographe + + + + + &Ctrl;I Outils Indenter +Indente + + + + + &Ctrl;&Maj;I Outils Désindenter +Désindentation + + + + +Outils Nettoyer l'indentation +Nettoie l'indentation + + + + + &Ctrl;Tab Outils Aligner +Aligne + + + + + &Ctrl;D Outils Commenter +Commente + + + + + &Ctrl;&Maj;D Outils Décommenter +Décommente + + + + + &Ctrl;U Outils Majuscules +Majuscules + + + + + &Ctrl;&Maj;U Outils Minuscules +Minuscules + + + + + &Alt;&Ctrl;U Outils Mettre une majuscule à chaque mot +Met une majuscule à chaque mot + + + + + &Ctrl;J Outils Fusionner les lignes +Fusionne les lignes + + + + +Outils Effectuer les retours à la ligne dans le document +Effectue les retours à la ligne dans le document + + + + +Outils Afficheur de différences... +Afficheur de différences... + + + + +Outils Exécuter une commande... +Exécute une commande... + + + + +Outils Choix d'un filtre par une commande... +Filtre la sélection via une commande externe à l'aide du module externe « filter ». + + + + +Outils Déboguer l'expression rationnelle...... +Débogue l'expression rationnelle... + + + + +Outils Afficheur de composants logiciels +Afficheur de composants logiciels + + + + + &Alt;&Ctrl;C Tools Ouverture rapide de classe... +Ouverture rapide de classe... + + + + + &Alt;&Ctrl;M Outils Ouverture rapide de méthode... +Ouverture rapide de méthode... + + + + + &Alt;&Ctrl;P Outils Aperçu de la sortie Doxygen +Aperçu de la sortie Doxygen + + + + + &Ctrl;&Maj;S Outils Documenter la fonction actuelle +Documenter la fonction actuelle + + + + + + + + + + + + + + + +Le menu <guimenu +>Configuration</guimenu +> + + + + + + &Ctrl;M Configuration Afficher / Cacher la barre de menus +Afficher / Cacher la barre de menus. + + + +Configuration Barres d'outils +Ouvre un sous-menu où vous pouvez choisir d'afficher ou de cacher les diverses barres d'outils. + + + +Configuration Afficher la barre d'état +Affiche la barre d'état. + + + +Configuration Configurer les raccourcis clavier... +Configure les raccourcis clavier... + + + + +Configuration Configurer les barres d'outils... +Configure les barres d'outils... + + + + +Configuration Configurer les notifications... +Configure les notifications... + + + + +Configuration Configurer l'éditeur... +Configure l'éditeur... + + + + +Configuration Configurer KDevelop... +Configure KDevelop... + + + + + + + + + + + + + + +Le menu <guimenu +>Aide</guimenu +> + + + + +Aide Manuel de KDevelop +Affiche ce document. + + + + &Maj;F1 Aide Qu'est-ce que c'est ? +Trace un point d'interrogation (?) à côté du pointeur de la souris. Cliquez sur un élément de fenêtre tel que le bouton Arrêter affichera alors une brève description. + + + + +Aide Astuce du jour +Astuce du jour + + + + + &Alt;&Ctrl;I Aide Chercher dans l'index de la documentation... +Cherche dans l'index de la documentation... + + + + + &Alt;&Ctrl;S Aide Chercher dans la documentation... +Cherche dans la documentation... + + + + +Aide Pages de manuel... +Pages de manuel... + + + + +Aide Page info... +Page info... + + + + +Aide Rapport de bogue... +Rapport de bogue. + + + +Aide À propos de KDevelop... +Affiche de courtes informations à propos du numéro de version, des auteurs et de l'accord de licence de KDevelop. + + + +Aide À propos de KDE... +Afficher des informations sur la version de &kde; que vous exécutez. + + + + + + + + + + + + + +
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 @@ + +Remerciements + + +Contributions + + + + Le contenu initial de ce manuel a été écrit par Bernd Gehrmann bernd@tdevelop.org et Caleb Tennis caleb@aei-tech.com. + Les chapitres Résumé de &automanag; et Fonctionnement du gestionnaire Automake ont été écrits par Ian Wadham, ianw@netspace.net.au). + + + + + + + + + + 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 @@ + +Utilisation de &CVS; +CVS +contrôle de révision + + +Bases de &CVS; + +&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 référentiel. À 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 verrouiller les fichiers sur lesquels on veut travailler. Ainsi, le développement peut être extrêmement parallélisé. + +Chaque fois qu'un développeur a terminé une tâche, il valide (« 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. + +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; + +&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; () ou TkCVS (). Dans &tdevelop;, seule une petite partie de la fonctionnalité de &cvs; qui est importante pour votre travail quotidien peut être utilisée directement. + +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 . + + + + + + +Commandes &CVS; dans &tdevelop; + +Dans les vues des fichiers, les éléments de menu contextuel suivants sont disponibles : + + + +Ajouter au référentiel + +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). + + + + +Supprimer du référentiel + +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é ! + + + + +Mettre à jour + +Exécute cvs update 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 .cvsrc. + + + + +Valider + +Exécute cvs commit 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. + + + + +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 sourceforge.net. La FAQ de &CVS;/SSH que vous pouvez trouver dans la documentation de SourceForge décrit quelques contournements pour ce problème. + + + + + + +Les coulisses + + +Ce que &CVS; enregistre dans le dossier de travail + +(... à écrire ...) + + + + + 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 @@ + +L'interface du débogueur +débogueur + +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 gdb de &GNU; via un tube. Le débogueur peut être démarré de plusieurs manières : + + + +Avec DéboguerDémarrer, le programme principal de votre projet est chargé dans le débogueur. + + + +À l'aide de Déboguer Démarrer (autre) Examiner un fichier « core ». 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 à ulimit(1)). C'est utile pour l'analyse post mortem d'un programme. + + + +Avec Déboguer Démarrer (autre) Attacher au processus, 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. + + + +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 Options du compilateur. 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. + + + +L'interface du débogueur offre plusieurs vues dans le processus : + +Si vous essayez de déboguer un projet sans dégoguer les informations, vous obtenez le message Pas de source... dans la barre d'état.Si vous essayez de définir un point d'arrêt, il s'affichera sous la forme En attente (ajouter) dans la fenêtre du point d'arrêt (voir ci-dessous). + + + +Variables + +variables de surveillance +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 main(). + +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 Ajouter, soit en appuyant sur Entrée quand l'élément Surveiller est sélectionné. Elles peuvent être supprimées à nouveau via le menu contexuel. + + + + +Pile principale + +pile principale +(... à écrire ...) + + + + +Points d'arrêt + +points d'arrêt +Cette fenêtre vous permet de voir et de manipuler les points d'arrêt. Souvenez-vous que, comme &tdevelop; utilise GDB, pour comprendre pleinement les fonctionnalités de débogage de &tdevelop;, vous devriez avoir quelques notions sur le GDB. + +Si vous souhaitez examiner le code source, les points d'arrêt sont définis dans tdevelop/languages/cpp/debugger/breakpoint.h. + +Sur le bord gauche, la fenêtre comporte des boutons pour : + + +Ajouter un point d'arrêt vide +Modifier le point d'arrêt sélectionné + Supprimer le point d'arrêt sélectionné +Supprimer tous les points d'arrêt + + +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 : + + +Case à cocher de sélection +Type : un parmi : non valable, Fichier : ligne, Point de surveillance, Adresse, Fonction +État. Les valeurs sont : + + Active + 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. + 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 :
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.
+
+
+En attente (effacer) +En attente (modifier) +Emplacement dans le nom de fichier du format : numéro de ligne +Condition +Ignorer le compteur : si c'est un nombre COUNT supérieur à zéro, les prochaines COUNT 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, gdb ne prend aucune mesure. +Trouvés : compte combien de fois un point d'arrêt a été trouvé. +
+ + +
+
+ + +Désassembleur + +désassembleur +(... à écrire ...) + + + +
+ + + +Définition des points d'arrêt + +(... à écrire ...) + + + + + + +Options + + + +Afficher les noms désassemblés + +désassemblage des noms +désassemblagenom + +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;. + +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. + + + + +Essayer de définir des points d'arrêt au chargement d'une bibliothèque + +points d'arrêt paresseux +points d'arrêtparesseux + +Le backend du débogueur gdb 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 dlopen(3)), 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 gdb notifie qu'une bibliothèque est partagée, &tdevelop; essaie de définir les points d'arrêt en attente. + + + + +Afficher la barre d'outils flottante + +barre d'outils du débogueur +barre d'outilsdébogueur + +(... à écrire ...) + + + + + + +
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 @@ + +Documentation + +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. + +La documentation a des facettes multiples. Il y a + la documentation interne au projet, composée principalement + des commentaires dans les fichiers sources / d'en-têtes + la documentation de l'&API; interne de votre projet, générée depuis le fichier de programme par des outils spéciaux, &pex; &doxygen; + + + la documentation externe au projet, comprenant entre autres + la documentation de l'&API; externe &pex; les bibliothèques système courantes (&kde;, &Qt;, &etc;) + toute autre documentation (manuels de langages de programmation, informations générales sur le système, articles « how-to »,&etc;) + + + + +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. + + + + +Le navigateur de documentation + + +
+Une copie d'écran de l'arborescence de la 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 @@ + +Outils d'édition + + +Fragments de code + + + Fonctionnalités (vue d'ensemble préliminaire) + « SnippetPart » ajoute une vue des outils qui par défaut s'inscruste à droite + L'ajout, l'édition et la suppression de fragments est disponible via un menu qui apparaîtt + Double-cliquer sur un fragment depuis une liste l'insère dans la vue active à la position actuelle du curseur + Les infobulles affichent le contenu d'un fragment + Comme les fragments sont stockés dans le répertoire personnel des utilisateurs, chacun peut avoir ses propres fragments + Les fragments peuvent contenir des variables dans le style de $VARNAME$. Lors de l'emploi des fragments, l'utilisateur reçoit une invite à saisir une valeur de remplacement pour les variables + + + + +Correspondance de clavier +associations de touches + +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 ?) + + + + + +Gauche +Se déplace d'un caractère vers la gauche + +Droite +Se déplace d'un caractère vers la droite + +&Ctrl; Gauche +Se déplace d'un mot vers la gauche + +&Ctrl; Droite +Se déplace d'un mot vers la droite + +Haut +Se déplace d'une ligne vers le haut + +Bas +Se déplace d'une ligne vers le bas + +Page Haut +Se déplace d'une page vers le haut + +Page Bas +Se déplace d'une page vers le bas + +&Ctrl; Page Bas +Se déplace au début du fichier + +&Ctrl; Page Bas +Se déplace à la fin du fichier + +Début +Se déplace au début de la ligne + +Fin +Se déplace à la fin de la ligne + + + + + +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. + + + + + +Correction +Supprime un caractère à gauche + +Suppression +Supprime le caractère sous le curseur + +&Ctrl; C +Copie le texte sélectionné dans le presse-papiers + +&Ctrl; V +Colle le texte sélectionné depuis le presse-papiers + +&Ctrl; X +Supprime le texte sélectionné et le place dans le presse-papiers + +&Ctrl; Z +Annuler + +&Maj;&Ctrl; Z +Refaire + + + + + + + + + + +La liste des problèmes + +(... à écrire ...) + + + + + +Recherche et « grep » +rechercher +trouver + + +Recherche de texte + +&Ctrl;F- Chercher &Ctrl;R- Remplacer + + + + + +ISearch +isearch +recherche incrémentale +rechercheincrémentale + +La recherche conventionnelle avec Édition Chercher 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é ISearch 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. + + + + + +Grep +recherchedans les fichiers + +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 Chercher dans les fichiers... dans le menu Édition. C'est essentiellement une interface pour le programme &grep;(1). + +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 Récursif, la recherche itère via tous les dossier dans la hiérarchie au-dessous de celle-ci. + +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 "\<K.*" 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 : + + + + + + + . +Correspond à n'importe quel caractère + + ^ +Correspond au début d'une ligne + + $ +Correspond à la fin d'une ligne + + \< +Correspond au début d'un mot + + \> +Correspond à la fin d'un mot + + ? +Le précédent élément correspond à moins d'une fois + + * +L'élément précédent correspond zéro ou plusieurs fois + + + +L'élément précédent correspond une ou plusieurs fois + + {n} +L'élément précédent correspond exactement n fois + + {n,} +L'élément précédent correspond n ou plusieurs fois + + {,n} +L'élément précédent correspond à moins de n fois + + {n,m} +L'élément précédent correspond au moins n fois mais moins de m fois + + + + + +Des références arrières à des expressions entre crochets sont également accessibles via la notation \n. + +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. + +Une fois que commencez la recherche en cliquant sur le bouton Rechercher, elle sera effectuée par un processus externe asynchrone. Tous les éléments trouvés apparaîtront dans la vue appelée Grep. 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. + + + + + + + + +Complétement du code + +(... à écrire ...) + + + + + +Créer de nouveaux fichiers et de nouvelles classes + +(... à écrire ...) + + +Édition des modèles + +(... à écrire ...) + + + + + + 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 @@ + +Les navigateurs de fichiers + +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 : + + + +Arborescence des fichiers + +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. + +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. + +L'arborescence des fichiers cache les fichiers qui sont habituellement sans intérêt, comme les fichiers objets. Dans l'élément Options du projet sous Vues des fichiers, 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. + +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. + +
+Une copie d'écran de l'arborescence des fichiers + + +Une copie d'écran de l'arborescence des fichiers + +
+ +
+
+ +Groupes de fichiers + +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;. + +Les groupes affichés dans cette vue peuvent être configurés sous Vues des fichiers dans la boîte de dialogue Options du projet. 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 Autres devra être le dernier motif. + + + +
+ +
+ + 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 @@ + + + + + + + +BerndPol +JoëlleCornavin
jcornavi@club-internet.fr
Traduction française 
LudovicGrossard
grossard@kde.org
Traduction française
+
+
+ +Premiers pas avec &tdevelop; — visite guidée + +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é). + +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 : + + +Un premier aperçu — les éléments de l'interface utilisateur de l'&EDI; &tdevelop;. +Un peu de configuration initiale. +Comment créer un nouveau projet. + +Quelques astuces sur la manipulation des documents. +Comment compiler l'application dans ce projet. +Comment ajouter des classes et d'autres détails à votre projet. +Que faire pour déboguer l'application. +Quelques outils de base pour construire un programme ou une documentation utilisateur. +Et pour finir, les raccourcis clavier + + +Avant de commencer, une notion importante devra être éclaircie. + + +Qu'espérer ? +Comme indiqué, &tdevelop; est un environnement de développement intégré. 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. + + +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. + +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 Développement sous &UNIX; et dedans, tout particulièrement au chapitre Intégrer des concepts et des outils. + + +Les exposés suivants s'appliquent au cas par défaut, où &tdevelop; démarre en mode fenêtre IDEAl simplifié. 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 Configuration Configurer KDevelop... Interface utilisateur. + + + +Un tout premier coup d'Å“il à &tdevelop; + +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 : + + +Qu'y a-t-il en surface ? +Comment obtenir de l'aide. +Qu'y a-t-il dans les menus ? +À quoi servent ces vues des outils ? + + + +En surface + +Quand vous démarrez &tdevelop; pour la première fois, vous obtenez un affichage similaire à celui-ci : + + + + + + + +La disposition initiale de &tdevelop; +(En fait, la fenêtre initiale de &tdevelop; sera plus grande mais les éléments que vous voyez sont les mêmes.) + + + + + +Zone d'espace de travail et onglets des vues des outils +Dans ce cas initial, &tdevelop; utilise ce qu'on appelle le mode d'interface utilisateur IDEAl. 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 fenêtre des vues des outils s'ouvre, qui vous permet de travailler sur une tâche précise. + + + +Barres de menus et barres d'outils +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. + + + +Barre d'état +Enfin, il y a une barre d'état au bas de la fenêtre, affichant de courtes informations sur plusieurs tâches. + + + + +Comment obtenir de l'aide + +Outre le menu Aide qui offre des réponses à des questions données, la barre d'état et deux sortes d'infobulles fournissent quelques brèves informations. + + +Que fait exactement cet élément de menu ? +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. + + + +Quel est le nom de cet élément ? +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. + + + +Que fait exactement cet élément ? +D'autres informations sont disponibles grâce à l'aide étendue sous forme d'infobulles pour de nombreux éléments de l'&EDI;. Sélectionnez Aide Qu'est-ce que c'est ? ou appuyez sur &Maj;F1 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. + + + + +Qu'y a-t-il dans les menus ? + +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. + + +Ce n'est qu'une vue d'ensemble préliminaire. Pour obtenir une description détaillée, reportez-vous à la référence des commandes. + + + + +Fichier + + +Actions habituelles +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. + + + +Tout annuler +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. + + + + + +Édition + +Ce menu n'est utile que si un document est ouvert. + + +Actions habituelles +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. + + + +Recherche et remplacement +Il y a deux fonctions de recherche très puissantes disponibles, Édition Chercher dans les fichiers... et Édition Chercher / Sélectionner / Remplacer.... 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. + + + +Édition de texte avancée +Il y a des ressources pour reformater le document en cours et compléter automatiquement les textes saisis partiellement de différentes manières. + + + + + +Affichage + +Comme le menu Édition, ce menu n'est utile que s'il y a un projet ouvert. Dans ce cas, les actions suivantes seront disponibles (entre autres) : + + +Historique de navigation +Avancez et reculez dans les documents, &etc; que vous avez visités. + + + +Suivi des erreurs +Naviguez jusqu'aux lignes de source des erreurs rencontrées dans le processus de compilation / construction le plus récent. + + + +Actions liées à l'éditeur +Certains éléments du menu Affichage 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 : + + + + +Contrôle le comportement du retour à la ligne dans la fenêtre du document. + + +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. + + +Contrôle de l'affichage des sections repliées (cachées temporairement) dans un texte source. + + + + + + +Projet + +Tout le fonctionnement de &tdevelop; est basé sur des projets, 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 : + + +Ouverture d'un projet +Permet de créer de nouveaux projets, d'ouvrir des projets existants et d'en importer d'autres environnements. + + + +Options d'un projet +Permet de définir un ensemble complet des différentes propriétés d'un projet. + + + +Gestion des classes +Ajoute de nouvelles au projet et traverse l'arbre d'héritage d'une classe. + + + +Distribution du projet +Aide à construire les paquetages de distribution du projet. + + + + + +Construire + +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 : + + +Compiler, lier, exécuter +Permet de compiler et de lier le projet entier ou des parties de ce dernier, ainsi que de lancer l'application depuis l'&EDI;. + + + +Préparer les opérations de construction +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 Makefile.cvs et configure propres. Il y a aussi des dispositions pour supprimer les fichiers traduits du projets à diverses stades d'intensité. + + + +Installer l'application +Permet d'installer l'application à la fois dans les dossiers locaux et dans les dossiers système accessibles uniquement à l'utilisateur « root ». + + + +Documentation de l'API +Construit ou supprime une documentation d'API basée sur « doxygen », comme défini dans les options du projet. + + + + + +Déboguer + +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 Projet Options du projet). Les actions suivantes sont disponibles dans ce cas : + + +Actions habituelles du débogueur +La première section dans le menu Déboguer 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. + + + +Points d'arrêt +&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 menuBasculer le point d'arrêt. + + + +Débogage avancé +D'autres éléments du menu Déboguer permettent une analyse plus sophistiquée du programme. Appuyez sur &Maj;F1 pour obtenir plus d'informations sur leur objectif. + + + + + +Scripts + +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. + + + + +Fenêtre + +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. + +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. + + + + +Outils + +&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 Outils reflète la majeure partie de cette configuration. + + +Édition avancée +La partie supérieure des éléments du menu Outils sera fournie par le module externe de l'éditeur en service. Vous pouvez choisir votre éditeur de texte favori via Configuration Configurer KDevelop... Éditeur. Une fois qu'un fichier de document modifiable est sélectionné, la partie supérieure du menu Outils fournira les commandes d'édition avancée propres au composant d'édition en service. + + + +Gestion côté web +Dans le cas où la fenêtre de document active contient une page HTML (&pex; affichée à partir d'une sélection Documentation), le menu Outils affichera des éléments de menu additionnels qui offrent divers moyens de gérer les pages web. + + + +Autres outils +D'habitude il existe un groupe d'autres éléments, selon les outils disponibles actuellement. Appuyez sur &Maj; F1 pour obtenir plus d'informations sur leurs objectifs. + + + + + +Configuration + +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;. + + + + +Aide + +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. + + + + + + +À quoi servent ces outils ? + +Dans le mode d'interface utilisateur IDEAl, l'espace de travail sera entourée de trois zones de boutons, ce qu'on appelle les onglets des vues d'outils. Ils fournissent l'accès aux fenêtres de vues d'outils 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. + + + + +Côté gauche +Fournit un accès aux outils de navigation et de sélection. + + + + + +Bas +Ces vues affichent les messages produits par divers outils. + + + + + +Côté droit +Fournit un accès à la documentation et aux outils de gestion des sources. + + + + +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 outils modules externes actuellement disponibles pour &tdevelop;. Vous en saurez plus sur ce sujet dans le chapitre Configuring KDevelop. + +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. + + + +Navigation et sélection + + +Sélecteur de fichiers +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. + + + +Liste des fichiers +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 sessions. 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. + + + + + +Affichages des messages + + +Application +Affiche la sortie d'une application démarrée depuis &tdevelop;. + + + +Diff +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 Outils Afficheur de différences.... + + + +Messages +Affiche les messages produits oar les outils construits depuis &tdevelop;, habituellement à partir du menu Construire. + + + +Chercher dans les fichiers +Affiche la liste des éléments trouvés par l'opération de recherche globale démarrée à partir du menu Édition Chercher dans les fichiers.... Un clic sur une ligne ici ouvrira automatiquement ce fichier à la position spécifiée dans une fenêtre d'édition. + + + +Remplacer +Liste les résultats de l'opération de rechercher-et-remplacer globale émis à partir du menu Édition Rechercher / Sélectionner / Remplacer.... Dans cette vue, vous pouvez décider sur chaque élément trouvé si vous souhaitez réellement qu'il soit remplacé ou non. + + +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 Édition Chercher / Sélectionner / Remplacer... sera en fait désactivé. + + + +Konsole +Ouvre une Konsole &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. + + + + + +Documentation et manipulation des sources + + +Documentation +&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;. + + +Consultez les chapitres Documentation et Configurer la documentation pour plus de détails. + + +Fragments de code +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. + +D'autres informations à ce sujet sont disponibles dans les chapitres Fragments de code et Configuration de l'outil « Fragments de code ». + + + + + + + +Un peu de configuration + +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. + + +Si vous voulez en savoir plus sur la configuration de &tdevelop;, jetez un coup d'Å“il au chapitre Configuration de KDevelop. + + + +Quelques réglages généraux + +Pour configurer &tdevelop;, cliquez sur le menu Configuration et sélectionnez Configurer KDevelop.... S'ouvre la boîte de dialogue Configurer KDevelop, affichant la page Général suivante sur la droite. + + + + + + + +La boîte de dialogue de configuration générale de &tdevelop; + + + + +La plupart des réglages par défaut conviendront. Mais vous serez probablement amené à en changer deux ou trois. + + +Dossier par défaut des projets +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 Ouvrir le sélecteur de fichiers portant une icône de dossier à sa droite. + + +Dans nos exemples, nous supposerons (quelque peu artificiel) un utilisateur appelé devel. Ainsi, remplacez ce « devel » par votre nom d'utilisateur. Notre utilisateur « devel » utilisera le dossier parent /home/devel/projects pour le développement proprement dit. Là encore, remplacez projects par le nom de votre dossier de développement. + +&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 /home/devel/projects/bonjour. + +Vous pouvez naturellement annuler les réglages de ce dossier si nécessaire. Consultez le chapitre &appwizard; pour plus d'informations à ce sujet. + + +Sortie du compilateur +Chaque fois que &tdevelop; compile un source quelconque, il affiche les messages des outils de construction make, etc, dans la fenêtre Messages 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. + + +Selon la version de &tdevelop; que vous utilisez, la sélection Sortie du compilateurt 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. + + +Soyez conscient que seules les informations les plus élémentaires seront affichées dans la fenêtre Messages 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 Messages et sélectionnez par exemple « Sortie du compilateur longue » à partir du menu qui apparaît. + + + + +Initialisation des index de recherche de documentation + +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;. + +Ouvrez la vue des outils Documentation du côté droit de la fenêtre principale de &tdevelop;. Ouvrez la page de dialogue Recherche. + + + + + + +Où générer les index de recherche. + + + +Cliquez maintenant sur le bouton Mettre à jour la configuration 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 OK pour la faire disparaître. + +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 Mettre à jour l'index à droite. Maintenant, la boîte de dialogue Générer l'index de recherche s'ouvre, affichant la progression des opérations de construction de l'index. + + + + + + +&tdevelop; génère les index de recherche de documentation. + + + +L'opération prendra un peu de temps, selon la taille de la documentation et la puissance de votre machine. Finalement, le bouton Annuler laissera la place à OK. Cliquez simplement sur ce bouton pour continuer. + + + + +Cela fermera en principe la boîte de dialogue. Dans certains cas, il se peut que l'application htdig que &tdevelop; utilise pour effectuer ses recherches de texte ne soit pas correctement installée. Consultez le chapitre Configuration des recherches de texte pour obtenir de l'aide dans ce cas. + + +Pour être en mesure de consulter la documentation de l'API propre à &kde; et à &Qt;, il est obligatoire que les KDELibs Apidocs soient présentes lorsque est installé. Si vous rencontrez des problèmes en construisant les indexe ou que vous exécutez les exemples de consultation par identifiants plus loin dans ce chapitre, assurez-vous que cette documentation existe et est accessible à &tdevelop;. Reportez-vous à Installation de KDevelop pour plus de détails. + + + + + + + + +Démarrer un nouveau projet + +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 projets. Ainsi, la première étape pratique pour développer des logiciels dans &tdevelop; consiste habituellement à créer un nouveau projet. + +Heureusement, cela ne pose pas de problème. &tdevelop; fournit ce qu'on appelle l'outil &appwizard; pour ce faire. (consultez le chapitre Premiers pas — l'&appwizard; pour en savoir plus.) + +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 : + + +Comment créer un nouveau projet avec l'aide de l'&appwizard;. +Quels sont les fichiers que l'&appwizard; a configuré initialement. +Qu'en est-il de la vue des outils additionnels affichés avec le projet ? + + + +Comment créer un nouveau projet + +Créons un projet &kde; « Bonjour monde » plutôt simple. Il suffit de suivre ces étapes. + + + +Pour démarrer l'&appwizard; cliquez sur le menu Projet Nouveau projet.... + + + +La boîte de dialogue Créer un nouveau projet apparaît. Dans la fenêtre supérieure gauche Tous les projets sont listés un certain nombre de langages de programmation. + + + +Nous voulons construire un application &kde; en C++ comme d'habitude, donc cliquez sur l'étiquette + à gauche de l'étiquette C++ pour ouvrir cette branche. + + + +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 + à côté de KDE. + + + +S'affiche alors à une série de modèles de projets. Naviguez jusqu'à la fin de cette branche et cliquez sur Application KDE simple. + +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. + + + + + + + +Sélection d'un modèle de projet « Hello World » + + + + + +Notre application nécessitera un nom. Cherchez la zone Propriétés au bas de la boîte de dialogue et saisissez un nom approprié dans le champ d'entrée Nom de l'application. + +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. + + + +Assurez-vous que la zone de texte Emplacement sous le champ d'entrée affiche le dossier de plus haut de votre projet comme configuré dans le chapitre Un peu de configuration 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. + +Si tout s'est bien passé, la ligne Emplacement cible 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 Emplacement existe bien et qu'il est modifiable. + + + +Une fois que tout est correct, le bouton Suivant sur la ligne du bas de la boîte de dialogue est activé. Cliquez sur ce dernier pour continuer. + + + + + +Cette action vousconduit à la boîte de dialogue Options du projet. Assurez-vous que les zones de texte Auteur et Adresse électronique sont correctement remplies. Habituellement, ce seront vos réglages utilisateur &kde; par défaut comme indiqué dans la boîte de dialogue Compte utilisateur et mot de passe du Centre de configuration de &kde;. Sinon, changez-les pour les réglages que vous préférez pour votre application. + + + + + + + +Saisissez votre nom et (éventuellement) votre adresse électronique. + + + + + +Vous devez fournir un nom d'auteur au moins. C'est obligatoire pour la configuration des fichiers de l'application. + + +Si tout est correct, le bouton Suivant est activé. Cliquez sur ce dernier pour continuer. + + + +Les boîtes de dialogue Version Control System, Template for .h Files, and Template for .cpp Files suivantes ne nous intéressent pas pour le moment. Ignorez-les en cliquant sur les boutons Suivant et, pour finir, sur le bouton Terminer. + + + +C'est tout ! L'a&appwizard; prend le relais et construit une série de fichiers initiaux dans le dossier Emplacement cible que vous avez fourni dans l'étape 2c ci-dessus. + +Une fois cette phase de création terminée, &tdevelop; ouvre une fenêtre d'édition pour le fichier d'implémentation de la fenêtre principale de l'application (c'est-à-dire bonjour.cpp dans notre exemple), donc vous pouvez continuer sans problème. + + + +Fichiers initiaux du projet + +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 Arborescence des fichiers sur la partie inférieure gauche. S'ouvre une liste de fichiers similaire à celle ci-dessous. + + + + + + + +Fichiers initiaux dans notre projet « Bonjour tout le monde » + + + + +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 Arborescence des fichiers située à gauche. Cliquez simplement sur les noms des branches dans l'arborescence pour constater par vous-même. + +De plus, juste à titre de démonstration, nous avons également ouvert la majeure partie des branches de la fenêtre de vue des outils Gestionnaire « automake » à droite, où sont listées certaines des sources du projet, également. + + +Aspects liés aux droits d'auteur + +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 fichiers sources individuels et le niveau d'application exécutable (run-time application). L'&appwizard; a déjà placé les informations relatives aux droits d'auteur et à la licence dans les fichiers de projet. + + +Droits d'auteur au niveau des fichiers sources +Vous rappelez-vous de la boîte de dialogue Options du projet 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 bonjour.cpp 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éé. + + +/*************************************************************************** + * Copyright (C) 2006 by Jean Utilisateur * + * jean@utilisateur.com * + * * + * This program is free software; you can redistribute it and/or modify * + + +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 templates. + + +Droits d'auteurs relatifs à l'exécution de l'application +Une fois que votre application &kde; tourne, l'utilisateur peut afficher certaines données À propos, habituellement à partir du menu Aide. L'&appwizard; a également veillé à cet aspect. Si vous jetez un coup d'Å“il au fichier main.cpp, vous trouverez un élément similaires à celui ci-dessous. + + +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" ); + + +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 À propos et liste ses nom et adresse sur la page Auteurs également. + + +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é open souce en faisant cela.. + + + + +Fichiers sources initiaux + +L'&appwizard; a placé les fichiers sources dans le sous-dossier src du dossier du projet. Vous y trouverez les fichiers main.cpp, bonjour.h et bonjour.cpp comme vous vous y attendiez certainement. + +Il y a quelques fichiers supplémentaires que l'on trouve dans une application &kde; classique, à savoir + + + +bonjour.desktop contient des métadonnées utilisées par &tdevelop; pour maintenir et démarrer l'application. + + + +hi16-app-bonjour.png et hi32-app-bonjour.png contiennent quelques icônes initiales par défaut que &tdevelop; emploiera pour l'affichage de l'application. + + + +Pour finir, bonjourui.rc contient une description de l'interface utilisateur de l'application, actuellement les menus que fournira l'application. + + + + + +Documentation intiale de l'application + +Dans le sous-dossier doc/en du projet, vous trouverez le fichier index.docbook. C'est un modèle par défaut à partir duquel vous pouvez commencer à écrire une documentation utilisateur appropriée + + + +Fichiers du projet et auxiliaires + +Vous aurez noté que les fichiers que nous avons introduits jusqu'ici sont listés en gras dans la vue des outils Arborescence des fichiers, 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 fichiers de projet. + +Si vous jetez un coup d'Å“il à la fenêtre Gestionnaire « Automake » 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. + +Les autres fichiers, représentés autrement qu'en gras sont de nature plus auxiliaire. Ils appartiennent à plusieurs classes distinctives comme suit : + + + + +Contrôle de construction d'un projet +Ces fichiers contrôlent les processus de compilation, d'installation, de construction de la documentation, &etc;. Si le projet emploie le mécanisme autotools de &GNU; comme le fait notre exemple, vous trouverez un fichier Makefile.am 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 configure pendant les étapes de construction. Un tel processus de construction produit un Makefile final dans chaque dossier. Et, à partir de là, à son tour l'utilitaire make construira enfin les exécutables (binaires) de l'application. + + +Ces fichiers Makefile.am 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 Makefile.am. + +D'autres fichiers de contrôle de contrôle de la construction du projet actuellement répertoriés sont configure.in.in et subdirs dans le dossier racine du projet. Ils seront traités par certaines des fichiers dans le dossier d'administration admin propre à &kde; pour produire plus de fichiers de type configure et Makefile et enfin, les exécutables de l'application. + + + + +Fichiers de contrôle de &tdevelop; +&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 bonjour.tdevelop, bonjour.tdevelop.pcs et bonjour.kdevses. + + +Le fichier xxx.tdevelop (où « xxx » désigne le nom du projet) est d'une importance toute particulière dans chaque projet. C'est le fichier de projet KDevelop 3 principal, nécessaire si vous voulez par la suite charger ce projet dans l'&EDI;. + + +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. + + + + + +Fichiers de description de projet GNU +Certains fichiers dans le dossier racine du projet sont obligatoires dans toute application se conformant à &GNU;. Ce sont : AUTHORS, ChangeLog, INSTALL, COPYING (qui contient la GNU GENERAL PUBLIC LICENSE), INSTALL, NEWS, README et TODO. + + + + + +Autres fichiers +Quelques fichiers supplémentaires, non encore mentionnés, sont : + + + + +Doxyfile contrôle la création de la documentation de l'interface de programmation interne de l'&API; propre au projet. + + + +Le dossier templates 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. + +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 cpp et h, les fichiers créés à partir de ces modèles sembleront moins incongrus. + + + +Le dossier po servira à des fins de localisation. Il fait essentiellement partie des fichiers de projet (contient un Makefile.am) 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. + + + +Enfin, le dossier admin 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;. + + + + + + + + + +Vues des outils supplémentaires + +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. + + +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 Outils modules externes pour connaître les instructions. + + + +Outils de navigation et de sélection (côté gauche) + + + + +Signets +Vous pouvez marquer une ligne de fichier texte afin de revenir rapidement à sa position depuis n'importe où. &tdevelop; mémorisera tous ces signets, même si vous fermez la fenêtre d'édition après. La vue des outils Signets 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. + + + + + +Classes +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. + + + + + +Groupes de fichiers +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. + + + + + +Variables +Utilisé par l'outil de débogage pour afficher, évaluer et surveiller les variables pendant les exécutions. + + + + + + +Messages (en bas) + + + + +Valgrind +Valgrind 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. + + + + + +Problèmes de sécurité +Il existe un outil de module externe Contrôleur de sécurité 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. + + + + + +Points d'arrêt +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. + + + + + +CTags +Permet de créer une base de données ou des index d'identifiants utilisant l'application CTags 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. + + + + + +Problèmes +&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. + + + + + + +Gestion des sources (côté droit) + + + + +Gestionnaire Automake +L'outil &automanag; est essentiellement une interface graphique pour maintenir le contenu des fichiers Makefile.am 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 fichiers de projet. Chaque sous-dossier de ce type doit contenir un fichier Makefile.am est nommé un sous-projet dans le contexte du &automanag;. + + +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é Makefile.am dans ce sous-projet. + +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 ci-dessous. Consultez le chapitre Construction et gestion de projets pour une description plus exhaustive. + + + + + + + + +Quelques astuces pour travailler avec des documents + +Dans notre exemple de projet, comme l'&appwizard; a laissé le fichier bonjour.cpp 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 : + + +Comment basculer facilement entre les fichiers d'en-tête et d'implémentation. +Comment accéder facilement aux déclarations et aux définitions. +Comment adapter les fenêtres d'édition à vos besoins actuels. +Comment garder un Å“il sur les problèmes courants. + + + +Basculer entre les fichiers d'en-tête et d'implémentation + +&tdevelop; fournit un moyen rapide et facile de passer d'un fichier d'implémentation donné (.cpp) à un fichier d'en-tête correspondant (.h) 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. + + + + + + +Comment basculer entre les fichiers d'implémentation et d'en-tête. + + + +Cherchez l'élément Basculer entre les fichiers d'en-tête et les fichiers d'implémentation 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 bonjour.cpp, le fichier bonjour.h sera affiché et le curseur affiché ici. + +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. + +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. + + + +Comment accéder aux déclarations et aux définitions + +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. + +Deux cas différents sont à prendre en compte, à savoir : + +Accéder aux identifiant s définis extérieurement et +traiter les éléments de texte internes du projet. + + + +Déclarations et définitions externes + +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. + +Examinons un exemple. Dans la fenêtre d'édition bonjour.cpp, cherchez les lignes suivantes. + +Bonjour::Bonjour() + : KMainWindow( 0, "Bonjour" ) +{ + + +Cliquez avec le &BDS; sur KMainWindow. Un menu apparaît. Sélectionnez dedans l'élément Chercher dans la documentation : KMainWindow et relâchez le bouton de la souris. Maintenant, la vue des outils Documentation est ouverte, affichant l'élément KMainWindow en tant qu'élément de recherche sur la sous-page Chercher. 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 KMainWindow. + +Voici quelle en sera l'apparence globale. (Nous avons délibérément ouvert la pageDocumentation, Recherche déjà pour illustrer le résultat de la sélection du menu.) + + + + + + +Comment consulter un identifiant documenté extérieurement. + + + +Vous pourriez également sélectionner Trouver de la documentation : KMainWindow. Dans ce cas, la sous-page Recherche de documentation de la vue des outils Documentation apparaît, offrant habituellement une sélection de pages contenant le terme à rechercher. (Dans notre exemple, ce sera probablement les classes KMainWindow et KMainWindowInterface. Sélectionnez celle qui vous intéresse et la documentation correspondante sera affichée dans une fenêtre d'édition. + + +Si cela ne fonctionne pas, il n'y a probablement pas encore de d'index de documents. Avez-vous initialisé les index comme illustré ci-dessus ? Dans le cas contraire, faites-le puis revenez en arrière et réessayez. + + + + +Déclarations et définitions internes du projet + +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 CTags pour rechercher les sources dans votre projet. + +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 CTags au bas de la zone d'espace de travail. + +Lorsque vous cliquez sur l'onglet CTags, une fenêtre de dialogue s'ouvre, où vous trouverez le bouton suivant dans le coin inférieur droit. + + + + + + +Construire un index CTags avec le bouton Régénérer. + + + +Cliquez sur le bouton Régénérer et attendez quelques secondes. L'élément Aucune base de données de CTags trouvée sera alors remplacé par la date actuelle. Vous êtes à présent prêt à effectuer des consultations par identifiant dans votre projet source. + + +La date située à côté du bouton Régénérer 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. + + +Pour effectuer une consultation par identifiant dans les sources de votre projet, il y a plusieurs possibilités. + + + + +Utiliser la vue des outils CTags +C'est le plus simple. Commencez simplement par saisir un nom d'identifiant qui vous intéresse dans le champ d'entrée Consultation par identifiant 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. + + +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 Consultation par identifiant. &tdevelop; se met immédiatement au travail et vous présente un résultat comme celui-ci : + + + + + + +Comment effectuer une consultation par identifiant dans la vue des outils CTags. + + + +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é. + + + + +Utiliser un menu contextuel dans un fichier source +Cette fonction est pratique lorsque vous travaillez sur un certain fichier source. Supposons que vous examiniez le fichier main.cpp de notre exemple de projet « Bonjour ». Vous y trouvez la ligne suivante + +Bonjour *mainWin = 0; + +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. + + + + + + +Obtention des informations CTags sur un identifiant interne d'un projet. + + + +Cliquez sur celle qui vous intéresse, par exemple CTags - Aller à la définition : Bonjour, et &tdevelop; ouvre immédiatement la fenêtre d'édition bonjour.cpp et positionne le curseur juste devant cette définition de classe : +Bonjour::Bonjour() + : KMainWindow( 0, "Bonjour" ) +{ + + + + + +Faire une recherche globale +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;. + + + +Démarrer une recherche globale à partir du menu Édition Chercher dans les fichiers.... Ou + + +Utiliser directement le menu contextuel à l'aide d'un clic droit de la souris dans la fenêtre d'édition. + + + +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 bonjour.cpp 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;. + +À 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 Grep : Bonjour. + + + + + + +Lancement d'une recherche globale depuis une fenêtre d'édition. + + + +Cette fonction fait s'ouvrir la boîte de dialogue Find in Files suivante (exactement la même que si vous aviez utilisé le menu Édition Chercher dans les fichiers...). + + + + + + +Une interface polyvalente pour effectuer des recherches globales dans le projet. + + + +Comme vous le constatez, c'est un outil très souple pour lancer des recherches avec find et grep 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 Motif. Dans le cas contraire, il suffit de le saisir puis de cliquer sur le bouton Chercher en bas à droite. + +Maintenant la vue des outils Chercher dans les fichiers 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. + +Il y a deux lignes particulièrement intéressantes dans la fenêtre de vue des outils. + + +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. + + + +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 *** ». + + + +&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 Chercher dans les fichiers. + + + + + + +Agencement des fenêtres d'édition + +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. + +Comme supprimer les onglets non nécessaires. +Comment réorganiser les onglets. +Comment visualiser plusieurs fichiers simultanément dans la zone d'espace de travail. +Comment modifier des fichiers sources et d'en-tête C++ simultanément +Comment grouper les fichiers sources en sessions de développement. + + + +Nettoyage de la rangée des onglets + +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. + + +Fermer plusieurs onglets à la fois +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 Fenêtre ou cliquer avec le &BDS; sur un onglet pour soit + + + +fermer la fenêtre d'édition actuellement sélectionnée, + + +fermer toutes les fenêtres d'édition ouvertes, soit + + +fermer toutes les fenêtres d'édition ouvertes (disponibles depuis le menu Fenêtre uniquement). + + + + +Fermer les ensembles sélectionnés d'onglets +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. + + +Illustrons ce comportement dans un exemple simple. Dans notre exemple de projet « Bonjour », supposons qu'il y a avait plusieurs fichiers ouverts pour modification : bonjour.cpp, bonjour.h, bonjour.rc, bonjour.desktop et main.cpp. Maintenant, vous souhaitez les fermer tous, sauf bonjour.cpp et bonjour.h. Le moyen le plus facile de le faire consiste à utiliser la vue des outils Liste des fichiers. 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 : + + + +Ouvrez le menu Liste des fichiers et, en maintenant enfoncée la touche Ctrl, cliquez sur les fichiers que vous voulez voir fermés dans la liste. + + +Ensuite, en laissant le pointeur de la souris sur un nom de fichier dans la liste, cliquez avec le &BDS;. + + +Depuis le menu Liste des fichiers qui apparaît, sélectionnez Fermer la sélection. + + + + + + + + +Comment fermer les fenêtres d'édition sélectionnées en une étape. + + +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. + + + +Comment réorganiser les onglets des fenêtres d'édition + +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 : + + +Installation de base — Où positionner les nouveaux onglets + +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. + +Vous devez changer un paramètre d'interface utilisateur de base dans &tdevelop; pour activer ce comportement. + + +Sélectionnez Configuration Configurer KDevelop... + + +Dans la barre d'icônes à gauche sur la page de dialogue qui apparaît, cliquez sur l'icône Interface utilisateur. La page de dialogueInterface utilisateur s'affiche maintenant. + + +Dans le coin inférieur gauche, se trouve la section étiquetée Navigation par onglets. Supprimer la coche sur la ligne Ouvrir les nouveaux onglets après l'onglet actuel. + + +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. + + + +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;. + + +Comment réorganiser les onglets +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. + +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. + + + +Visualiser plusieurs fichiers simultanément + +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. + +Il y a deux commandes de division que vous pouvez atteindre l'une et l'autre via le menu Fenêtre 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 ». + +Supposons qu'il y ait deux fichiers source ouverts sur la barre d'onglets, bonjour.cpp et bonjour.h. À présent, en travaillant sur le source bonjour.cpp, comme vous devez souvent vous référer aux déclarations dans le fichier d'en-tête bonjour.h, vous serez amené à garder les deux fichiers ouverts simultanément. + +Pour ce faire, cliquez avec le &BDS; sur l'onglet, par exemple bonjour.h. Le menu suivant s'ouvre alors. + + + + + + +Comment scinder la zone d'espace de travail actuelle en deux parties. + + + +Sélectionnez l'élément Scinder horizontalement. Cette action divisera la zone d'espace de travail actuelle au milieu et déplacera la fenêtre d'édition à onglets contenant le fichier bonjour.h dans la partie inférieure. + + + + + + +L'espace de travail a été divisé horizontalement. + + + +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. + +Il y a plusieurs points à noter. + + +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. + + + +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. + + + +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. + + + + + +Modifier des fichiers sources et d'en-tête C++ simultanément + +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 .cpp et son fichier .h 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. + +Cette fonctionnalité est cependant désactivée par défaut. Si vous voulez l'utilisez dans votre projet, il faut l'activer. + +Sélectionnez Projet Options du projet. La boîte de dialogue Options du projet apparaît. Dans la barre d'icônes à gauche ici, sélectionnez Prise en charge du C++ et plus tard l'onglet Navigation sur la page de dialogue qui s'affiche sur le côté droit. + + + + + + +Faire s'afficher les fichiers sources et d'en-tête C++ côte à côte. + + + +Cochez à présent la case Activer la division des fichiers d'en-tête / source. Cette action activera Synchronisation automatique et Vertical par défaut. Gardez ces réglages pour l'instant et cliquez sur OK. + +Pour illustrer cette fonctionnalités, fermons maintenant dans notre exemple de projet à la fois les fenêtres d'édition bonjour.cpp et bonjour.h, si nécessaire. Sélectionnez ensuite bonjour.cpp à nouveau à partir du sous-dossier src du projet. La fenêtre d'édition s'ouvrira comme d'habitude. Mais si vous ouvrez à présent le bonjour.h 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 bonjour.cpp + +Il y a même plus, comme nous l'avons déjà mentionné. Dans l'éditeur bonjour.cpp, cherchez &pex; cette ligne de la définition du constructeur : +Bonjour::Bonjour() + +et placez le curseur dessus. Puis observez la fenêtre bonjour.h au-dessous et notez comment &tdevelop; a navigué vers la ligne de déclaration du constructeur par défaut. + + + + + + +&tdevelop; a navigué automatiquement vers la déclaration du constructeur. + + + +Cela fonctionne vice versa également. Chaque fois que vous placez le curseur à un endroit quelconque dans une structure (construct) dans une fenêtre d'édition, &tdevelop; naviguera vers une structure correspondante dans l'autre. + + + +Grouper des fichiers sources en sessions de développement + +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 Liste des fichiers de &tdevelop; vous permet simplement de le faire. + +En haut de la fenêtre de vue des outils Liste des fichiers, 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 Affichage Affichage des sessions. + +Nous illustrerons cette fonction à nouveau avec notre exemple de projet « Bonjour ». Supposons que vous souhaitiez toujours ouvrir les fichiers bonjour.cpp, bonjour.h et main.cpp 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 ». + + + + + + +Utiliser les sessions de développement pour mémoriser des groupes de fichiers. + + + +C'est une approche à étapes multiples comme suit. + + +Créer une nouvelle session + + +Cliquez sur l'icône Nouvelle session en haut à gauche dans la fenêtre de vue des outils Liste des fichiers. + + +Une boîte de dialogue apparaît. Dans le champ d'entrée Saisissez le nom de la session, donnez à votre nouvelle session un nom, &pex; « sources ». + + +Fermez la boîte de dialogue avec OK. La nouvelle session sera maintenant listée dans la zone de liste déroulante située sur la barre d'outils. + + + + +Cette nouvelle session sera initialement vide. Vous devez la peupler avec les fichiers que que vous voulez garder ici. + + +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 bonjour.cpp, bonjour.h et main.cpp comme prévu. + + +Une fois que votre fichier est complet, cliquez sur l'icône Enregistrer la session dans la barre d'outils. Ne sautez pas cette étape, &tdevelop; oubliera la liste des fichiers sinon. + + + + + +C'est tout. Chaque fois que vous sélectionnez la session sources à partir de la zone de liste déroulante Ouvrir la session, &tdevelop; ferme toutes les fenêtres d'édition actuellement ouvertes et ouvre celles qui sont mémorisées (bonjour.cpp, bonjour.h et main.cpp dans notre exemple) à la place. + +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 Enregistrer la session. 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 Supprimer la session à droite de la barre d'outils. + +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 Projects Options du projet Liste des fichiers. + + + + + + +Laissons le soin à &tdevelop; d'ouvrir une session spécifique lorsque le projet est chargé. + + + + + + +Garder un Å“il sur les problèmes courants + +Lorsque vous ouvrez une fenêtre d'édition contenant un fichier source, &tdevelop; analyse la syntaxe de son contenu. Cette fonction permet au rapporteur de problèmes 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 + +Illustrons cette fonction avec notre exemple de projet « Bonjour ». + + + +Ouvre une fenêtre d'édition avec le fichier source main.cpp. + + + +Assurez-vous qu'il contienne toujours la ligne suivante quelque part vers la fin : +/// @todo do something with the command line args here + +Celle-ci a été insérée par l'&appwizard; lorsque vous avez créé le projet « Bonjour » dans le chapitre Démarrer un nouveau projet ci-dessus. + + + +Ouvrez à présent la vue des outils Problèmes dans la rangée des onglets en bas. Si tout s'est bien passé, il affiche actuellement ce « À faire » : + + + + + +&tdevelop; attire l'attention sur une ligne de code source contenant une marque « À faire ». + + + + + +Le format de la commande /// @todo pour un traitement spécial par le documenteur de code Doxygen, que nous étudierons brièvement dans la section Documentation ci-dessous. Il n'est pas obligatoire d'utiliser ce format, les marques de commentaires les plus courantes TODO et FIXME seront reconnues également. + +Si vous insérez &pex; les lignes de commentaires TODO et FIXME suivantes dans notre exemple de fichier bonjour.cpp +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" ); +} + +vous les trouverez listés dans la vue des outils Problèmes également : + + + + + + +Le rapporteur de problèmes listant les lignes qui requièrent de l'attention dans le fichier en cours d'édition. + + + +Notez que les autres onglets dans la fenêtre de la vue des outils du rapporteur de problèmes, spécialement Corrigez_moi et TODO. Si vous les ouvrez, vous trouverez toutes les lignes marquées FIXME et TODO que &tdevelop; a trouvées jusqu'ici dans cette session. Par exemple, les alertes TODO apparaissent de la manière suivante : + + + + + + +Le rapporteur de problèmes a collecté les alertes TODO. + + + +L'onglet Erreurs 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. + +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 Problèmes régulièrement dans le processus de développement. + + + + +Comment compiler un projet + +Compiler un projet dans &tdevelop; requiert plusieurs étapes de configuration puis la construction de l'application. Toutes sont disponibles via le menu Construire. + + + + + + +Construire un projet requiert plusieurs étapes. + + + +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 Construire le projet, 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. + +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 : + + +D'étudier brièvement le cyle de construction de base. +D'étudier certains moyens pour configurer un projet. + + + +Le cycle de construction de base + +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. + +Comment initialiser le projet pour une première construction. +Comment effectuer la configuration initiale. +Comment construire le projet. +Comment lancer l'application depuis &tdevelop;. + + + +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 QMake 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à. + + + +Initilaiser le projet pour la construction + +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 Construire Construire le projet ou en appyant sur la touche de fonction F8, vous obtiendrez la mise en garde suivante. + + + + + + +Essayer de construire un projet basé sur « automake » brut. + + + +Vous pouvez cliquer sur le bouton Les exécuter, 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 Ne pas exécuter. + +Comme déjà mentionné, la compilation et la liaison de l'application est effectuée via le menu Construire. Appelez-le et sélectionnez Exécuter « automake » et ses amis. + + + + + + +Lancer l'exécution de l'initialisation de base. + + + +&tdevelop; va maintenant ouvrir la fenêtre de la vue des outils Messages 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 *** Success ***. + +Si vous remontez, vous trouverez la ligne de commande que &tdevelop; a émis pour appeler les outils au-dessous de la surface : + +cd '/home/devel/projects/bonjour' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -f Makefile.cvs + + +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 autoconf et automake utilisées pour cette initialisation. Et finalement, il a conseillé l'outil « make » (gmake de &GNU; dans ce cas) pour traiter le fichier « make » Makefile.cvs. + +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 configure nécessaire pour exécuter la prochaine étape de configuration. + + + +Configuration initiale de « Bonjour » + +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. + +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 configure nécessaires seront disponibles. Ceci fait, sélectionnez l'élément de menu Construire Exécuter le script « configure » pour lancer une séquence de configuration. + +&tdevelop; a ouvert la fenêtre de la vue des outils Messages à 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 « Good - your configure finished. Start make now » (qui seront émis par « configure ») suivis du message « *** Success *** » de &tdevelop;. + +Au début de la fenêtre Messages, vous trouverez à nouveau la ligne de commande que &tdevelop; a employé pour lancer l'exécution de cette configuration : + +mkdir '/home/devel/projects/bonjour/debug' && \ +cd '/home/devel/projects/bonjour/debug' && \ +CXXFLAGS="-O0 -g3" "/home/devel/projects/bonjour/configure" --enable-debug=full + + +Vous pouvez indiquer plusieurs détails intéressants à partir de ces commandes. + + + + + + + + + + + + + +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 debug (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 configure et, en outre, un Makefile dans chaque sous-dossier. + + +Dans la section Configurer le projet 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 debug — si nécessaire — avant l'appel de « configure » et que le script configure a créé la sous-structure et tous les Makefiles dedans. + + +Ensuite, depuis le dossier de construction debug, &tdevelop; a appelé le script configure dans le dosser racine de notre projet en utilisant un environnement dédié, où les drapeaux CXXFLAGS="-O0 -g3" 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. + + +Pour finir, le script configure a été appelé avec l'option --enable-debug=full qui lui donne pour instruction de créer chaque Makefile pour que la compilation et la liaison ultérieures aient toutes les informations de débogage nécessaires intégrées et utilisables. + + + + + + +Tous ces réglages sont configurables pour chaque projet. Vous en saurez plus à ce sujet dans le chapitre Gestions de projets. + + + +Construire le projet + +Une fois arrivé à ce stade, vous serez prêt à réelllement construire, &cad; compiler et lier l'application. Si l'on observe le menu Construire, il y a trois options de compilations de ce types dans lesquelles choisir. + + + + + + +Commandes de &tdevelop; pour construire des binaires (exécutables). + + + +De bas en haut, ce sont : + + +Compiler le fichier — 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. + + +Construire la cible active — Cette option est principalement utilisée en liaison avec le Gestionnaire « automake » que nous verrons brièvement ci-dessous. + + +Construire le projet — 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. + + + +Il pourrait être intéressant d'observer ce qui se passe dans le dossier Déboguer créé lors du lancement précédent de configure. Donc gardez-le ouvert avec tous les sous-dossiers dépliés exactement comme représenté ci-dessus. Puis sélectionnez Construire Construire le projet (ou appuyez sur la touche F8) pour lancer la séquence de construction. Comme précédemment, la fenêtre de la vue des outils Messages 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 Déboguer. + +Comme il n'y a pas beaucoup de fichiers sources dans n otre exemple de projet « Bonjour », la fenêtre Messages 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. + +cd '/home/devel/projects/bonjour/debug' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k + + +Sans grande surprise, &tdevelop; a basculé vers la racine du sous-arbre Déboguer afin d'exécuter le Makefile situé ici. Un sous-environnement dédié a été configuré à nouveau comme avant dans l'étape d'initialisation dans laquelle ensuite l'outil gmake a été appelé. + +Notez que l'option -k dans l'appel gmake. 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 Messages. S'il y en a, utilisez les avantages d'un &EDI;: Cliquez juste sur le message d'erreur dans la fenêtre Messages et &tdevelop; vous amènera exactement à la position où l'erreur s'est produite dans le fichier source. + +Et que s'est-il passé à l'intérieur du sous-arbre Déboguer ? Pas grand chose. Quelques lignes se sont affichées sur les branches doc/en et src, plus particulièrement le fichier bonjour dans /home/devel/projects/bonjour/debug/src/. 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 bonjour. + + + +Exécuter l'application + +Il n'y a pas d'étapes supplémentaires impliquées pour lancer cette nouvelle application « Bonjour ». Sélectionnez Construire Exécuter le programme, appuyez sur Maj F9 ou utilisez le bouton Exécuter le programme sur la barre d'outils de construction affichée ci-dessous. + + + + + + +Exécuter une application à partir de la barre d'outils de construction. + + + + +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 Application en bas. Ici; la commande &tdevelop; émise pour exécuter le programme sera affichée sur la ligne du haut : + +./bonjour + + +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 Gestion des projets. + +La ligne ./bonjour sera très probablement suivie d'un message d'avertissment. Ignorez-le pour le moment. Il n'empêche pas notre application Bonjour de tourner. + + + + + + + +Notre application Bonjour initiale. + + + + +Fermez la fenêtre de l'application Bonjour comme d'habitude. Si aucune erreur ne s'est produite, &tdevelop; signalera ceci sous la forme « *** Exited normally *** » dans la fenêtre de la vue des outils Application. + + + + +Configurer le projet + +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. + + +Quelle est l'utilité des configurations de construction ? + +Où définir le comportement du script configure. + +Quelques considérations sur la manière dont make devra s'exécuter. + +Où devra être l'exécutable et comment devra-t-il être appelé ? + + + +Configurations de construction + +Lorsque nous avons lancé une première exécution du script configure dans la section Configuration initiale de « Bonjour » ci-dessus, nous avons noté que &tdevelop; a configuré un sous-dossier debug dédié dans ce but. Dans cette section, nous verrons brièvement certaines conséquences de cette fonctionnalité. + +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. + +Pour découvrie quelles sont les configurations de construction disponibles, jetez un coup d'Å“il au menu Projet Configuration de la construction. + + + + + + +Il existe diverses configurations de construction disponibles pour ce projet. + + + +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 par défaut. + +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. + +Maintenant, jetons un bref coup d'Å“il à ce que fournissent ces configurations de construction. + + + +débogage + +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 debug 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 configure se verra attribuer l'option --enable-debug=full et le CXXFLAGS="-O0 -g3" 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. + + + + +optimisée + +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 optimisée dédié. Aucun argument spécifique au script configure ne sera présélectionné, néanmoins le CXXFLAGS="-O2 -g0" 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. + + + + +par défaut + +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 configure et make/gmake de &GNU;. Aucun autre dossier de construction dédié que débogage ou optimisée 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.). + + +Réfléchissez bien avant de vous décider à utiliser l'environnement de construction par défaut ! + +Il ne peut pas être employé en parallèle avec les configurations débogage ou optimisée. Toute opération de construction utilisant par défaut rendra les deux autres environnements de construction inutilisables. Ce comportement est causé par certaines particularités du processus de construction Makefile utilisant le mécanisme automake/autoconf, dont il n'est pas facile de venir à bout. + + + + + +À 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. + +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. + +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 débogage vers optimisée, 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 débogage et continuez immédiatement votre travail à cet endroit. + +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. + + + +Options de configuration d'un projet + +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 configure et/ou les réglages des drapeaux spécifiques dans l'environnement avant d'exécuter configure comme &pex; le CXXFLAGS dans nos exposés précédents. + +Vous pouvez définir la plupart des options de configuration pour un projet donné depuis l'interface graphique de &tdevelop;. Sélectionnez Projet Options du projet puis depuis la barre d'icônes sur la gauche de la boîte de dialogue de l'icône Options de « configure ». La boîte de dialogue Options de « configure » comprenant plusieurs fenêtre à onglets s'affichera sur le côté droit. + + + + + + +La plupart des options de « configure » peuvent être définies ici. + + + +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 Configurer des projets. Si vous voulez en savoir plus sur la signification des divers drapeaux qui peuvent être définis, consultez info make depuis la console (ou info:make depuis &konqueror;) et là, la section Implicit Rules Implicit Variables. + +Il y a plusieurs fenêtres de configuration de boîtes de dialogue à onglets dont la première, Général 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. + +Sélectionnez la configuration de construction dont les paramètres de configuration doivent être définis depuis la zone de liste modifiable Configuration en haut de la boîte de dialogue Options de « configure ». + + + + + + +Sélectionnez la configuration de construction dont les les paramètres sont à définir. + + + +À 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 Arguments du script « configure » et Dossier de construction changent en fonction des paramètres que nous avons mentionnés dans la liste des confogurations de construction ci-dessus. + + +Paramètres généraux de de la configuration + +Sur la page de dialogue Général, on peut définir ces options de configuration : + + + + +Arguments du script « configure » +Ce sont les options que &tdevelop; affecte à l'appel du script configure dans le processus de construction. Voir l'exemple dans la section « Configuration initiale de « Bonjour » »  ci-dessus. + + + + + +Dossier de construction +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. + + + + + +Dossier racine des sources +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. + + + + + +Drapeaux du préprocesseur C/C++ (CPPFLAGS) +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'exemple dans la section « Configuration initiale de « Bonjour » » ci-dessus pour savoir comment faire. + + + + + +Drapeaux de l'éditeur de liens (LDFLAGS) +Ce sont des informations supplémentaires pour l'outil d'édition de liens ld où il devra rechercher les bibliothèques additionnelles. Il est utilisé pour construire l'environnement de construction temporaire également. + + + + + +Variables d'environnement +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. + + + + + + +Paramètres propres au compilateur + +Les autres onglets sur la page de dialogue Options du script « configure » 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 C++. + + + + + + +Sélectionnez le compilateur et l'environnement de travail que &tdevelop; utilisera ici. + + + +Voici ce que vous pouvez configurer à partir d'ici : + + + + +Compilateur C++ +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. + + + + + +Commande système du compilateur (CXX) +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. + + + + + +Drapeaux du compilateur (CXXFLAGS) +Ici vous pouvez saisir n'importe quelle option supplémentaire que &tdevelop; passera (via le Makefile) 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 Configuration. + + +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 ... à droite de la zone de texte. + + + + + + +Utilisez cette boîte de dialogue pour définir le comportement du compilateur C++ de &GNU;. + + + +Nous avons délibérément choisi l'onglet Optimisation ici. Notez comment l'option Aucune optimisation a été présélectionnée (en fonction de l'option -O0 prédéfinie dans la configuration de construction débogage). + +Malheureusement, vous ne pouvez pas actuellement sélectionner toutes les options à partir de cette boîte de dialogue. L'option -g3, &pex;, utilisée par la configuration de construction debug devra être changée à la main si jamais elle était nécessaire. + + + + + + +Comment « make » devra construire le programme + +Vous pouvez également configurer la manière dont &tdevelop; appellera l'outil make dans la construction du projet. Sélectionnez Projet Options du projet puis l'icône Options de « make » sur le côté gauche de la fenêtre de dialogue. La page de dialogue Options de « make » sera alors affichée sur la droite. + + + + + + +Définissez comment &tdevelop; appellera l'outil make. + + + +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 Arrêter dès la première erreur. Vous le trouverez désactivé dans la majorité des projets. Ce comportement correspond à l'option -k dans l'appel de gmake que nous avons trouvé dans la construction initiale de notre exemple de projet « Bonjour ». + +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 Messages. Cliquez sur Affichage Erreur suivante et Affichage Erreur précédente ou appuyez respectivement sur les touches F4 et Maj F4 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. + +Si par ailleurs, vous souhaitez plutôt arrêter la construction à chaque fois qu'une erreur se produit, cochez l'option Arrêter dès la première erreur dans cette boîte de dialogue. &tdevelop; appellera alors gmake sans l'option -k. + + + +Comment lancer l'exécutable + +Une fois que la construction est achevée, vous pouvez facilement lancer l'application depuis &tdevelop;. Utilisez soit Construire Exécuter le programme, les touches Maj F9, soit le bouton Exécuter le programme dans la barre d'outils de construction de &tdevelop;. + + + + + + +Exécutez le programme à partir d'ici. + + + +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 ? + +Tous ces aspects peuvent être résolus en configurant certaines options d'exécution orientées projet dans &tdevelop;. Cliquez sur Projet Options du projet puis sur l'icône Options d'exécution depuis la barre d'icône située sur le côté gauche de la fenêtre de dialogue. La page de dialogue Options d'exécution s'affichera à droite. + + + + + + +Définissez où et comment votre programme devra être exécuté. + + + +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. + + + + +Dossier +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. + + +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. + + + +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. + + + +Lancez à partir du dossier de construction en fonction de la configuration de construction actuellement sélectionnée. Le nom de ce dossier a été établi dans la page de dialogue Configuration générale. + +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 Projet Configurations de construction. Essayez. + +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 Projet. + + + +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é. + +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. + + + + + + +Programme +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é. + + + +Si vous laissez la zone de texte Programme principal vide, les réglages de la cible active 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. + + + + + +Variables d'environnement +&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. + + + + + +Divers +Deux cases à cocher supplémentaire sont situées au bas de cette page de dialogue. + + + + +Compiler automatiquement avant l'exécution 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. + +Décochez cette case si vous voulez exécuter la version du programme antérieure à la dernière modification. + + + +Lancer dans un terminal externe 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. + + + + + + + + + +Comment étendre un projet — le &automanag; + +(- à écrire -) + + +Un bref coup d'Å“il au mécanisme « Automake » + +(- à écrire -) + + + +Comment placer des icônes dans un dossier séparé + +(- à écrire -) + + + +Comment ajouter de nouvelles classes + +(- à écrire -) + +Soyez prudent quand vous sélectionnez les noms de fichiers de vos classes. Il est extrêmement difficile de changer par la suite. + + + +Qu'y a-t-il dans un sous-projet ? + +(- à écrire -) + + +Concentrez-vous sur votre travail — la cible active + +(- à écrire -) + + + + +Quelques étapes pour restructurer un projet + +(- à écrire -) + + + + + +Comment déboguer + +(- à écrire -) + + + + +Une note sur la documentation de votre projet + +Le projet &kde; utilise docbook 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 Aide Manuel de votre_application 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. +Dans &tdevelop;, tous les modèles basés sur &kde; comportent un sous-dossier « doc » qui contient un modèle index.docbook dans le dossier « en » pour vous permettre de commencer à écrire le manuel utilisateur. Vous devrez modifier ce index.docbook 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;. +Vous devez installer votre projet à l'aide de Construire Installer ou Installer (en tant qu'utilisateur « root ») dans &tdevelop; pour voir le manuel utilisateur dans le ¢reAide;. +Vous pourrez en savoir plus sur la syntaxe docbook sur le site web de la documentation de &kde; (en anglais). + + + +Dernier point mais non des moindres, les raccourcis clavier + +(- à écrire -) + + + +Où aller à partir d'ici + +(- à écrire -) + + +Problèmes fréquents + + +Le chapitre « En quelques mots » +Pages « FAQ » +Forum +Listes de diffusion + + + + +Travailler avec des projets + +(- à écrire -) + + +Utiliser des projets &tdevelop; existants + +(- à écrire -) + + + +Importer des projets externes + +(- à écrire -) + + + + +
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 @@ + +En quelques mots — Trucs et astuces + + + +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;. +Si vous souhaitez plus d'informations sur un sujet, suivez simplement le lien dans le titre placé au début de ce conseil. +Sont disponibles des informations sur ces sujets : + + Apparence + Projets + Compilation + &automanag; + Problèmes avec « make » / la compilation + Autres sujets + + + +Apparence + + +Imposer des onglets plus petits dans les vues des outils en mode IDEAl + +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; Configuration Configurer KDevelop... Interface utilisateur). +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 sous la marque dans votre fichier de configuration $KDEHOME/share/config/tdeveloprc comme suit : + + + : icônes seules + : texte seul (par défaut) + + : icônes et texte + + + + + +Caractères et/ou style d'affichage colorés de façon étrange + +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 : + + +Dans votre fichier de configuration $KDEHOME/share/config/tdeveloprc, cherchez la ligne contenant « Style=Checked » et supprimez-la. Puis redémarrez &tdevelop;. + + +(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é KUIViewer pour afficher la &GUI; produite à partir de ce fichier.) + + + + +Mode plein écran + +Sélectionnez AffichageMode plein écran depuis les menus ou appuyez sur &Ctrl;&Maj;F. + + + + +Cacher / Afficher la barre de menus + +Pour cacher la barre de menus, sélectionnez ConfigurationAfficher la barre de menus depuis les menus ou appuyez sur &Ctrl;M. Pour réafficher la barre de menus uniquement, &Ctrl;M est disponible. + + + + + +Projets + +Créer un nouveau projet + +ProjetNouveau projet... démarrera l'&appwizard;. + + + + +Créer un projet personnalisé + +Il n'y a aucun moyen de créer un projet personnalisé (&cad; un projet qui se sert de ses propres « makefiles »). Utilisez Projet Importer un projet existant à la place. N'oubliez pas de définir le Type de projet approprié, étiqueté par un +> CMakefiles personnalisés) » additionnel, dans la boîte de dialogue. + + + + +Utiliser les options de projet au début + +Chaque fois que vous démarrez un nouveau projet, n'oubliez pas de régler le Projet Options du projet... selon vos besoins. + + + + + +Compilation + +Détail manquant dans les messages de compilation + +Si pendant les compilations vous remarquez qu'il manque certaines informations important dans la fenêtre Affichage des messages de sortie, 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. + + + + + +<link linkend="automake-manager" +>&automanag;</link +> + + +Créer de nouveaux fichiers dans un projet + +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 Créer un nouveau fichier.... + + + + +Ajouter des fichiers existants à un projet + +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 Ajouter des fichiers existants.... + + + + +Supprimer un fichier d'un projet + +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 Supprimer. + + + + + +Problèmes avec « make » / la compilation + +Le projet ne compile plus après avoir basculé vers / depuis la cible par défaut + +Il y a un problème avec la machinerie &automake; / &autoconf;. Si Projet Configuration de compilation offre de choisir parmi trois dossiers de compilation : par défaut, optimisé et débogage, il est presque certain que vous choisissez soit les cibles « par défaut », soit « débogage » / « optimisé ». + + +Une fois que vous avez configuré votre projet avec « par défaut », il ne compilera plus avec « débogage » ou « optimisé ». + + +Une fois que vous avez configuré votre projet avec « débogage » ou « optimisé », il ne compilera plus avec « par défaut ». + + + + + + +« Mauvaise version de autoconf » &etc; Erreur + +Il y a plusieurs messages d'erreur concernant des versions trop anciennes de autoconf, &etc;, empêchant configure de fonctionner correctement. Lancez autoreconf dans l'arborescence de dossiers où se trouvent les fichiers configure.in en question. Cette commande essaiera de mettre à jour les informations dans les fichiers du &GNU; Build System. Reportez-vous à man autoreconf pour plus d'informations. + + + + + +Autres sujets + +Fichiers de configuration utilisés par &tdevelop; + +Habituellement, vous n'aurez pas à leur prêter attention, mais ils peuvent être utiles à connaître en cas d'incident avec votre installation. + + + + + 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 @@ + +Outils modules externes + + + modules externes + +&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. +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. + +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. + +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 : +Core +Global +Projet + + + +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. + +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. + +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é. + +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 Configuration Configurer KDevelop... sous Modules externes. Les modules externes peuvent être activés / désactivés dans Projet Options du projet... sous Modules externes. 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. + +Les modules externes qui sont désactivés n'encombrent pas vos menus et ne sont pas chargés en mémoire. + + +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. +Les modules externes sont groupés par portée (Core, Global, Projet). + +Portée : Core + + +Assistant d'application +Assistant d'application + +Afficheur de différences +Afficheur de différences + +Création de fichiers +Création de fichiers + +Plein écran +Plein écran + +Astuce du jour +Astuce du jour + +Sélection de l'interface utilisateur +Fournit une boîte de dialogue pour la sélection du mode d'interface utilisateur. + +Gestionnaire VCS +Gestionnaire de systèmes de contrôle de versions + + +Portée : Global + + +Expansion des abréviations +Fournit la prise en charge des abréviations personnalisables - mots courts qui s'étendent en structures de code couramment requises. + +Documentation +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. + +Liste des fichiers +Fournit une liste de tous les fichiers actuellement ouverts. (Pratique quand la barre d'onglets n'est pas tout à fait assez large.) + +Sélecteur de fichiers +Puissant utilitaire navigateur de fichiers transparent vis-à-vis du réseau. + +Filtrage et insertion dans le shell +Fournit un moyen de manipuler le texte d'un éditeur à l'aide d'outils en ligne de commande. Apparaît dans le menu Outils. + +Interface Grep +Intègre « find|grep » dans KDevelop - permet la recherche rapide de fichiers multiples à l'aide de motifs ou d'expressions rationnelles. + +Konsole embarquée +Ce module externe donne à KDevelop une console embarquée pour un accès en ligne de commande rapide et facile. + +Ajout du menu « Ouvrir avec » +Ce module externe fournit des alternatives à « Ouvrir » additionnelles pour divers menus contextuels de KDevelop. + +Outil Explorateur de composants +Un outil graphique pour effectuer des requêtes de type KTrader sur des services déclarés + +Testeur d'expressions rationnelles +Outil permettant de concevoir et de tester des expressions régulière par rapport à la syntaxe d'expressions rationnelles communes. + +Composant remplacement +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. + +Scriptage +Le module Scriptage offre un scriptage basé sur KScript de l'application KDevelop + +Fragments de code +Ce module externe vous permet de stocker des fragments de code et de les ajouter à votre code + +Structure du texte +Fournit un vue d'ensemble de la structure et une navigation pour les fichiers HTML et TEX + +Ajout au menu Outils +Ce module externe fournit un moyen facile d'ajouter des applications externes au menu Outils et à la barre d'outils. + +Interface Valgrind +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/ + + +Portée : Projet + + +Module externe Annotation +Description des annotations + +Formateur de code source +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. + +Signets +Module externe qui fournir une navigation et une vue d'ensemble des signets actifs et les rend persistants entre deux sessions. + +Vue des classes +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. + +Copier vers +Module externe simple d'envoi de fichiers. Il effectue une copie de fichier sur n'importe quel protocole KIO pris en charge. + +Interface CTags +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/ + +Prise en charge du conditionnement final +Aide à construire et à publier le projet final. Seul le format de paquetage RPM est pris en charge pour l'instant. + +Prise en charge de Doxygen +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 + +QuickOpen +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é. + +Contrôleur de sécurité +Contrôleur de sécurité du code + +Jusqu'ici, la liste des modules externes générés. + + + +Modules externes de gestion de projet dans &tdevelop; + + + antproject + Gestionnaire de projets ANT (applications &Java;) + + + autoproject + Gestionnaire de projets Automake + + + customproject + Gestionnaire de projets personnalisés + + + trollproject + Gestionnaire de projets basé sur QMake + + +
+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. + + + +Modules externes de gestion des langages dans &tdevelop; + + +cppsupportPrise en charge de C/C++ +fortransupportPrise en charge de Fortran +javasupportPrise en charge de &Java; +perlsupportPrise en charge de Perl +phpsupportPrise en charge de PHP +pythonsupportPrise en charge de Python + +
+ + +Dans ce qui suit, certains des modules externes seront étudiés en détail. + + + + +Le module externe <command +>abbrev</command +> +abbrev + +Ce module externe étend les abréviations en fragments de code fréquemment utilisés. Il est activé en appuyant sur Ctrl Espace. Par exemple, quand vous saisissez « ife » en C++ dans un éditeur et que vous appuyez sur CtrlEspace, vous obtenez un modèle de code if-else 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;. + + +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 Configuration Configurer KDevelop... sous Abréviations. + + + + +Le module externe <command +>filter</command +> +filter + +Celui-ci offre deux fonctionnalités. Si vous sélectionnez Outils Exécuter une commande, 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 Démarrer. + + +Une fonctionnalité connexe est disponible sous OutilsChoix d'un filtre par une commande.... 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 Démarrer, 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. + +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 : <menuchoice><guimenu>Édition</guimenu><guimenuitem>Copier</guimenuitem></menuchoice> 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 : sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/ 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 OutilsChoix d'un filtre par une commande... et appelez ~/bin/mef. Instantanément, « Édition- Copier » est remplacé par <menuchoice><guimenu>Édition</guimenu><guimenuitem>Copier</guimenuitem></menuchoice> + + + + + + + +Le module externe &doxygen; +&doxygen; +outil de documentation +Documentation de l'API + +Celui-ci vous aide à utiliser l'outil de documentation d'API &doxygen; (). Vous pouvez sélectionner Projet Exécuter Doxygen pour générer la documentation de l'API pour votre projet actuel, en fonction de la configuration donnée par le fichier Doxyfile dans le dossier de votre projet. + + +De plus, vous pouvez configurer &doxygen; dans la boîte de dialogue Projet Options du projet.... Cette boîte de dialogue est très similaire à l'outil &doxywizard;. + + + + +Le module externe &ctags; +&ctags; + +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. + + +Vous activez ce module externe sous Outils CTags.... 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é tags dans le dossier de votre projet. C'est un fichier texte contenant tous les symboles de vos fichiers sources. + +Vous pouvez faire une recherche dans la base de données des symboles de deux manières : quand la case Correspondance avec une expression rationnelle 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 .*Widget cherchera tous les symboles se terminant par Widget. Si la case n'est pas cochée, la recherche aura lieu mot à mot. + +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. + +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. + +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 tags à intervalles réguliers en cliquant sur le bouton Régénerer. + + + + +Le module externe <command +>astyle</command +> +astyle +Style artistique +indentation + +Astyle est un module externe pour formater le code source en fonction d'un ensemble spécifié de règles. + + + + + +Le module externe <command +>regexptest</command +> +regexptest +débogageexpressions rationnelles +expressions rationnellesdébogage + +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 Outills Déboguer l'expression rationnelle.... + + +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;. + +Quand vous saisissez une expression, vous avez un retour immédiat sur toute erreur de syntaxe qu'elle contient. En saisissant un texte sous Chaîne de test,vous pouvez voir si l'expression correspond à cette chaîne. En particulier, si votre expression rationnelle inclut des groupes, tels que ([a-z]), le contenu des sous-groupes concordants sera affiché dans une zone de liste. + + + + + + +
+ + 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 @@ + + + + + BerndPol + + + + +Gestion avancée de projet + + +Chargement de projets + + +Chargement d'un projet récemment utilisé + +(... à écrire ...) + + + + + + + Comment ouvrir un projet récent + + + + + + + +Chargement d'un projet existant + +(... à écrire ...) + + + +Conversion d'anciens fichiers projet de KDevelop + +&tdevelop; vous permet d'ouvrir d'anciens fichiers projet KDevelop 2.x et de les convertir en fichiers &tdevelop;. Pour ce faire, allez dans Ouvrir un projet... et choisissez Fichier projet KDevelop version 2 dans le Filtre :. Puis choisissez le fichier projet que vous voulez ouvrir. Le projet est converti en &tdevelop; et enregistré comme un fichier projet &tdevelop;. + + + + +Importation d'un projet existant + +Pour importer un dossier existant dans &tdevelop; sélectionnez Importer un dossier existant dans le menu Projet. Vous devriez voir l'assistant du dossier d'importation, comme ci-dessous : + +
+La boîte de dialogue Importer un dossier + + + +
+ +
+ +
+ + + + +Personnalisation du projet — Options du projet + +(... à écrire ...) + + + +
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 @@ + + + + + BerndPol + IanWadham + + + + +Construction et gestion de projets + +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. + +Vous trouverez ici des informations sur : + + Le résumé du &automanag; contenant une vue d'ensemble initiale du &automanag;, + Le document Fonctionnement du gestionnaire Automake décrivant les bases du travail avec le &automanag;, + + + +Résumé de l'&automanag; + +Dans le chapitre Systèmes de construction, 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. +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 ». + + +La nécessité d'un système de construction automatisé + +Si vous avez un programme « Bonjour tout le monde » simple, écrit en C, vous pouvez le compiler et le lier en utilisant &gcc; -o bonjour bonjour.c, puis l'exécuter à l'aide de la commande ./hello : vous n'avez même pas besoin d'un Makefile. +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 Makefile simple, qui est assez facile à écrire à la main (consultez info Make pour en savoir plus). +Les complications commencent quand : + + votre code source, la documentation, les graphiques, les sons, les traductions, les fichiers de données, &etc;, se trouvent dans plusieurs dossiers, + vous avez une hiérarchie de dossiers et de sous-dossiers, + vous utilisez des bibliothèques qui ne font pas partie de l'ensemble &UNIX; traditionnel, comme la bibliothèque Object de &Qt; ou les bibliothèques Desktopde &kde;, + vous faites appel à un préprocesseur, pour générer une partie de votre code source, tel que le précompilateur MOC de Qt, + 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, + vous exigez une fonction Install et Uninstall automatisée, + vous envisagez que votre application fasse partie de l'ensemble du Bureau &kde;. + + +Si vous êtes dans une, ou toutes les situations décrites ci-dessus, vous avez certainement besoin d'un système de construction. 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. +Un système de construction résoudra ces différences à votre place. + + Il vérifiera que les bibliothèques dont vous avez besoin sont présentes sur chaque machine de destination. + recherchera automatiquement dans tous vos dossiers d'application les fichiers à prétraiter, compiler ou installer et + installera les composants de votre application dans les dossiers corrects, en s'assurant que + les dossiers sont créés dans la machine de destination comme exigé. + + +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 desSystèmes de gestion de projet, &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) : + + Les projets automake qui utilisent les outils de développement standard de &GNU;. + Les projets QMake qui utilisent le gestionnaire de projets QMake Trolltech. + Les projets ANT qui utilisent le gestionnaire de projet Apache ANT pour le développement &Java;. + Les projets personnalisés qui exigent que vous mainteniez vos propres Makefiles. + + + +Du fait qu'une de ces quatre alternatives doit être choisie lorsque vous créez un projet et que le choix est difficile à modifier ultérieurement, vous devrez y accorder beaucoup d'attention avant de démarrer. + + + + + +Tutoriels sur autoconf / automake / libtool +Il y a plusieurs tutoriels disponibles sur le système de construction de &GNU; (Autoconf, Automake et Libtool) qu'utilise l'&automanag;. + + Un court tutoriel autoconf é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 Makefile. + Vous trouverez un tutoriel plus détaillé dans un plus grand éventail de tutoriels dans « Developing software with GNU ». + Et citons pour finir le célèbre « Goat Book », intitulé « Autoconf, Automake, and Libtool ». Il s'agit d'une introduction facile à lire, concise, de tous les aspects principaux des Autotools de &GNU;. + + + + + +Que fait l'&automanag; ? + +L'&appwizard; a configuré quelques fichiers Makefile.am initiaux lorsque vous avez créé un Nouveau projet d'un type qui utilise le système de construction de &GNU;, comme C++ KDE Fenêtre de l'application. Au cours du développement, l'&automanag; crée les autres fichiers Makefile.am 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;. +Il y aura un seul fichier Makefile.am 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 Makefile.am et, éventuellement, à quelques fichiers à compiler, construire et installer. + +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. + +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 : + +./configure +make +make install # Habituellement en tant que « root ».. + + +et désinstallés par la commande make uninstall (habituellement en tant que « root »). + +Comment ceci fonctionne-t-il  ? configure est un script qui + 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 + crée des fichiers Makefile récursifs en complétant les substitutions dans les fichiers Makefile.in correspondants. + + +Les fichiers Makefile.in sont des fichiers « d'entrée » — des modèles qui fournissent des informations de base pour les Makefiles qui en résulteront en complétant certaines informations en fonction du système. Ils sont générés par l'utilitaire Automake à partir des fichiers Makefile.am. +Le processus qui consiste à partir d'un Makefile.am (.am désigne des modèles de fichiers « Automake ») vers des fichiers Makefile est géré automatiquement par le &promanag; de &tdevelop;, à l'aide de l'utilitaire Autoconf, des macros M4 et autres complexités dans lesquelles il n'est pas nécessaire de se lancer ici. +Par conséquent, quand make 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, make install 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. + +Si vous distribuez votre application sous forme de « tarball » (un seul fichier compressé que &tdevelop; peut créer pour vous), il inclut les fichiers Makefile.in et le fichier de script configure, de façon à ce que le destinataire puisse compiler, construire et installer votre application sans avoir Automake, Autoconf ou &tdevelop; sur sa machine. Les fichiers Makefile.am sont également inclus, juste au cas où le destinataire ait besoin d'une modification quelconque du code source. +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;. + + + + +Résumé de ce que fait le gestionnaire du programme Automake + + + Il génère des fichiers Makefile.am dans des sous-dossiers qu'il connaît en tant que « sous-projets ». + Il met à jour les fichiers Makefile.amau fur et à mesure que la structure du projet change. + Il met à jour les fichiers Makefile.am au fur et à mesure que des fichiers sont ajoutés ou supprimés du projet. + Il accepte des définitions sur la manière dont les divers fichiers doivent être compilés ou installés, et modifie le Makefile.am en conséquence. + 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. + + + + + +Contenu des fichiers Automake + +Un fichier Makefile.am 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 bin_PROGRAMS, monapp_SOURCES ou kdelnk_DATA. La seconde partie est appelée primaire et représente un élément à construire ou à installer. La première partie est appelée préfixe et représente : + + un dossier dans lequel effectuer l'installation (&pex;, bin), + un qualificateur pour la primaire (&pex;, monapp pour SOURCES, indiquant que les fichiers souces répertoriés après monapp_SOURCES vont construire monapp), + un préfixe spécial noinst (abrégé pour « no installation »), habituellement utilisé pour répertorier les fichiers d'en-têtes du programme (.h), + ou le préfixe spécial EXTRA, pour tous les éléments dépendants de la configuration. + + +Pour plus d'informations sur les fichiers Automake et Makefile.am, consultez la page info Automake. +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 Makefile.am pour une application classique, appelée monapp. + +## 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 + + +Comme vous pouvez le constater, nombre des éléments du côté droit sont des symboles de la forme $(xxx). Ce sont des variables d'environnement qui sont définies dans l'environnement &kde; proprement dit et substituées par des valeurs réelles quand ./configure génère les fichiers Makefile finaux dans la machine de destination. + +De plus, quelque temps après avoir démarré avec &tdevelop;, il est judicieux d'exécuter la commande ./configure --help 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 : +./configure --prefix=/where/you/wish + redirigera l'installation entière vers une structure de dossiers de votre choix, en modifiant la variable interne $(prefix) vers la valeur /où/vous/le/souhaitez. + + + + + + + + +Fonctionnement du gestionnaire Automake + +Vous trouverez dans ce chapitre une description minimale des éléments du gestionnaire Automake et de leur utilisation. Il couvre : + La fenêtre du gestionnaire Automake : décrit la structure de base de la fenêtre principale du gestionnaire Automake. + La fenêtre d'affichage global : décrit les éléments de la sous-fenêtre supérieure. + La fenêtre d'affichage détaillé : décrit les éléments de la sous-fenêtre inférieure. + Navigation dans la gestionnaire Automake : répertorie quelques opérations fondamentales que vous pouvez exécuter dans le gestionnaire Automake. + Menus contextuels dans le &automake; : décrit les fenêtres qui apparaissent lorsque vous choisissez une action dans le &automake;. + + + + +La fenêtre du gestionnaire Automake + + + + + + + + + + Le gestionnaire Automake s'exécute dans une fenêtre scindée. La partie supérieure est appelée Vue globale et la partie inférieure Vue détaillée. 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. + Sur la partie supérieure de chaque fenêtre, on trouve une barre d'outils 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. + 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 à fermer la fenêtre. Le bouton à point quant à lui gardera la fenêtre ouverte 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.) + + + + + + + +La fenêtre globale d'affichage + +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 Makefile.am est connu dans l'&automanag; en tant que sous-projet. Il y a trois sous-projets typiques dans un projet basé sur &kde;, comme représenté dans l'illustration ci-dessus : + + + src — les fichiers de code source de votre application, + doc — votre manuel utilisateur, + po — 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). + + +Notez que le sous-projet doc comporte toujours un sous-projet en que vous pouvez voir si vous cliquez sur le symbole + à côté du mot doc. Ceci est dû au fait que la langue de base de toute la documentation de &kde; est en anglais (en). 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 fr (le français), de (l'allemand). Les chaînes inclues dans le sous-projet po sont également susceptibles d'être traduites et enregistrées dans d'autres fichiers en po, ce qui permet à votre application d'être utilisée par des personnes qui ne connaissent pas l'anglais. + +Les sous-projets doc et po servent différents objectifs. doc contient de la documentation, comme un manuel utilisateur, po contient des chaînes de texte traductibles de l'interface utilisateur, qui est intégrée dans le code source de cette application. + +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. + + + + +La fenêtre d'affichage détaillé + +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. + + +Cibles + +La liste arborescente de la vue détaillée comporte deux niveaux. Le premier niveau consiste en ce qu'on appelle les cibles du &automanag; et le second niveau contient des listes de fichiers qui vont composer chaque cible. + +Ce concept d'une cible du &automanag; diffère quelque peu de ce qu'est d'ordinaire une cible Makefile. En bref : + + La définition de la manière dont il faut compiler, construire ou installer un ensemble de fichiers est connu en tant que cible dans le &automanag;, mais comme variable dans Automake lui-même. + Une cible dans make prend souvent différents aspects : paramètre d'une commande make (&pex;, make install, make clean). + Cependant, certaines variables Makefile.am représentent une sous-cible sous-jacente dans make. + + + + + + +Navigation dans le &automanag; + +Dans la vue globale et la vue détaillée, un clic gauche sur le signe + ou - 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 sous-projet 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 cible dans la vue détaillée, vous affichez ou masquez la liste de fichiers qui vont dans cette cible. + + + +Ouverture d'un fichier pour édition + +Un clic avec le &BGS; 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;. + + + + +Activation des boutons de barre d'outils du &automanag; + +Un clic avec le &BGS; 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. + + + Il est recommandé d'utiliser le bouton droit de la souris et les menus contextuels au lieu des boutons de la barre d'outils car il est beaucoup plus facile de voir et de comprendre ce que vous faites. + 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. + + + + + +Sélection des actions / Menus qui apparaissent + +Un clic avec le &BDS; 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. + + + + + + + +Menus contextuels dans le &automanag; + +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. + + + +Le menu contextuel pour un fichier + +Lorsque vous cliquez avec le &BDS; sur un nom de fichier 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 hi-16app-monapp.png, le fichier d'icône a été sélectionné à partir de la cible Icônes dans monapp du sous-projet monapp/src. + + + + + + + + + + L'élément principal du menu contextuel d'un fichier est Supprimer le fichier de sa cible (&cad; qu'il ne sera plus utilisé pour compiler, construire ou installer cette cible). + L'élément CVS offre une diversité d'opérations via CVS sur la fichier. + L'élément Ouvrir avec 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 KIcon). + L'élément Perforce est employé pour des opérations similaires à celles de CVS avec le système commercial de contrôle de versions « Perforce ». + + + + + + + +Le menu contextuel pour une cible + +Un clic droit sur une cible 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 monapp (programme dans bin), la cible du sous-projet monapp/src a été sélectionnée. + + + + + + + + + + L'élément Options 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. + L'élément Créer un nouveau fichier 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). + L'élément Ajouter les fichiers existants fait apparaître une boîte de dialogue dans laquelle vous pouvez ajouter un fichier déjà existant à cette cible. + L'élément Supprimer pour une cible vous permet de supprimer logiquement la cible et tous ses fichiers de la structure de projet. + L'élément Construire la cible active ne s'applique qu'aux cibles contenant des fichiers de code source. Les nouveaux fichiers seront toujours ajoutés à ce type de cible active. + L'élément Construire la cible appelle toutes les opérations de compilation et de « make » nécessaires pour construire le code pour cette cible exclusivement. + + + + + + + +Le menu contextuel pour un sous-projet + +Lorsque vous cliquez avec le &BDS;. sur un sous-projet 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éé. + + + + + + + + + + + L'élément Options 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. + L'élément Ajouter un sous-projet crée un nouveau dossier et un un fichier de squelette Makefile.am. + L'élément Ajouter une cible 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. + Ajouter un service (... à écrire ...) + Ajouter une application (... à écrire ...) + Ajouter un sous-projet existant (... à écrire ...) + L'élément Supprimer un sous-projet 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 Makefile.am 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. + L'élément Construire appelle toutes les opérations de compilation et de « make » nécessaires pour construire le code de ce sous-projet exclusivement. + Forcer la réédition (... à écrire ...) + Nettoyer (... à écrire ...) + Installer (... à écrire ...) + Installer (utilisateur « root ») (... à écrire ...) + + + + + + + + + + + + + +Projets Automake +autoproject +&automake; +&autoconf; +&libtool; + +(... à écrire ...) + + + +Autoconf +script configure +script config.status +Makefile.in +config.h.in + +Makefile.in en Makefile + +prefix = @prefix@ +INSTALL = @INSTALL@ +build_triplet = @build@ +CXX = @CXX@ + + +prefix = /home/bernd/kde3 +INSTALL = /usr/bin/ginstall -c -p +build_triplet = i686-pc-linux-gnu +CXX = g++ + + +config.h.in en config.h + +/* Précisez si vous avez libz */ +#undef HAVE_LIBZ +/* La taille d'un « int », comme calculé par sizeof. */ +#undef SIZEOF_INT + + +/* Précisez si vous avez libz */ +#define HAVE_LIBZ 1 +/* La taille d'un « int », comme calculé par sizeof. */ +#define SIZEOF_INT 4 + + + + + + +Automake + +(... à écrire ...) + + + + + +L'&automanag; de &tdevelop; + +
+Une capture d'écran du gestionnaire Automake + + + +
+ +
+ + + +Construction et installation des bibliothèques + + + +-rpath +PIC +static +modules externes  non indéfinis + + + + + +
+ + + + +Makefiles personnalisés et scripts de construction +Makefile +build.xml + +(... à écrire ...) + + + + + + +Options du compilateur + +(... à écrire ...) + + + + + + +Options de Make + +(... à écrire ...) + + + +
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 @@ + + + + + BerndPol + + + + +Configurer &tdevelop; + +&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 ConfigurationConfigurer KDevelop.... 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. + + + + + + + +Sélectionnez un élément de configuration + + Sélectionnez un élément de configuration + + + +Nous aborderons ces configurations dans un ordre différent, en les divisant en thèmes principaux : Configuration générale, Configuration de la documentation et Configuration avancée, ce qui contribue à une lecture plus intuitive. +Si vous souhaitez consulter un certain élément de configuration directement, utilisez l'un des liens suivants. + + + Général + Interface utilisateur + Modèles de fichier +Éditeur + Abréviations + Scriptage + Menu des outils + Outils externes + Documentation + Fragments de code + Liste des fichiers + Sélecteur de fichiers + Générateur de classes C++ + Formatage + Analyse de la syntaxe C++ + + + +Configuration générale + +La configuration générale concerne les tâches les plus courantes pour ajuster &tdevelop;, puisqu'il s'agit des aspects suivants : + + + Configuration générale + + + Sélectionner l'interface utilisateur + + + +Tâches d'édition des sources + + Sélectionner un éditeur + + + Sélectionner un style de format source + + + Configurer l'outil « Fragments de code » + + + + + Configurer le sélecteur de fichiers + + + + +Configuration générale + +La boîte de dialogue de configuration Général permet de définir un comportement de base de &tdevelop;, qui changera rarement dans le travail quotidien. Celle-ci porte sur : + + + +Les options générales du projet comme + + + définir un dossier parent par défaut que &tdevelop; devra utiliser pour les nouveaux projets. + décider si vous souhaitez que &tdevelop; charge automatiquement le projet sur lequel vous avez travaillé en dernier lieu. + + + + + +La sélection d'une police pour les fenêtres de sortie les plus couramment utilisées, à savoir : + + + + +l'affichage des messages de sortie que &tdevelop; utilise pour communiquer &pex; l'avancement de la compilation, et + + +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. + + + + + + + +Un comportement courant portant sur les lignes affichées dans la fenêtre Affichage des messages de sortie, à savoir : + + + +si les longues lignes seront coupées automatiquement et + + +si les messages d'entrée et de sortie du dossier émis par make seront affichés. + + + +Le niveau de détail des messages concernant le processus de compilation affiché dans la fenêtre des messages de sortie. + + + + + + + + + + La boîte de dialogue de configuration générale + + + + + +Ouvrir le dernier projet au démarrage + +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. + + + + + +Dossier par défaut des projets + +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. +Vous pouvez bien sûr changer le chemin du dossier d'un nouveau projet au moment où vous le configurez dans l'&appwizard;. + + + + +Police de caractères + +La fenêtre Vue de la sortie de l'application 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. +Pour sélectionner une police appropriée pour la fenêtre Affichage des messages de sortie, cliquez sur le bouton Police de caractères affichant la police actuellement sélectionnée (« Luxi Sans » dans l'illustration ci-dessus). La boîte de dialogue standard de &kde;Choisir une police apparaît, dans laquelle vous pouvez sélectionner la police à utiliser. +Au premier lancement, &tdevelop; initialise ce paramètre de police à la police standard pour laquelle votre utilisateur &kde; a été configuré. Comme ce réglage est fixe, si vous modifiez PréférencesApparence et thèmesPolices dans le Centre de configuration, il n'affecte pas cette sélection de police de &tdevelop;. Vous devrez sélectionner à nouveau explicitement la police de la fenêtre Vue des messages de sortie. + + + + +Sortie du compilateur + +&tdevelop; prétraite les messages que reçoit la fenêtre Affichage des messages de sortie 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. + + +Très courte +N'affiche que les avertissements, erreurs et noms de fichiers qui sont compilés. + + +Courte +Supprime tous les drapeaux du compilateur et formate la sortie pour une meilleure lisibilité. + + +Complète +Affiche tous les messages de sortie sans modification. + + + +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 Affichage des messages de sortie et sélectionnez le niveau de détail souhaité dans le menu qui apparaît. + + + + +Coupure des lignes + +Par défaut, &tdevelop; coupe les longues lignes dans la fenêtre Vue des messages de sortie 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. +Il y a une autre manière d'activer la coupure des lignes. Cliquez simplement avec le &BDS; dans la fenêtre Affichage des messages de sortie, cochez ou décochez l'élément Coupure des lignes dans le menu qui apparaît. + + + + +Messages de navigation dans les dossiers + +L'outil Make 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 Affichage des messages de sortie, &tdevelop; supprime ces messages par défaut. Cochez la case si vous souhaitez consigner les dossiers dans lesquels make s'est exécuté. +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é. + + + + +Intégration du concepteur d'interfaces graphiques + +Cette fonction vous permet de choisir la manière dont vous souhaitez que les fichiers .ui 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 .ui. + + Utiliser le concepteur imbriqué de &tdevelop; This uses &tdevelop; own designer embedded within &tdevelop; + Exécuter le concepteur de &tdevelop; en tant qu'application séparée L'application KDevDesigner sera exécutée séparément dans sa propre fenêtre. + + + + + + KDevDesigner dans sa propre fenêtre + + + + Lancer Qt Designer Qt Designer depuis votre installation Qt sera démarré de façon externe à chaque fois que vous cliquez sur un fichier .ui dans &tdevelop;. + + + + + +Émulation de terminal + +Choisissez ici le terminal que vous voulez voir intégré dans KDevelop. + + Utiliser le réglage de &kde; Ce comportement utilise le réglage de &kde; comme défini dans &kcontrol; dans l'onglet Composants de &kde; Sélecteur de composants qui définit l'émulateur par défaut utilisé par toutes les applications &kde; qui nécessitent un terminal. + Autre Choisissez un autre terminal différent de celui configuré par défaut. + + + + + + + + + + +Sélectionner l'interface utilisateur + + + interface utilisateur + modes de commutation + + modes de commutation des interfaces utilisateur + +Comme déjà indiqué dans le chapitre Modes d'interface utilisateur disponibles, il y a quatre manières différentes de configurer la zone de travail de &tdevelop;, à savoir : + + + Mode fenêtre IDEAl simplifié + IDEAl + + Mode fenêtre IDEAl + 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. + + Mode fenêtre enfant + 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. + + Mode fenêtre d'onglets + 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. + + Mode fenêtre au premier niveau + 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. + + +Pour changer de mode d'interface utilisateur, sélectionnez Configuration Configurer &tdevelop;... dans les menus. La boîte de dialogue Configurer KDevelop apparaît, dans laquelle vous devrez sélectionner Interface utilisateur dans l'arborescence de la partie gauche. S'affichera alors la boîte de dialogue des réglages suivants dans la partie droite. + + + + + + +Sélectionner un mode d'interface utilisateur + Sélectionner un mode d'interface utilisateur + + + +Clquez sur le bouton radio du mode d'interface utilisateur vers lequel vous souhaitez basculer, puis sur OK. + +N'oubliez pas de redémarrer &tdevelop; afin que l'un quelconque de ces choix prenne effet. + +Lorsque vous avez sélectionné soit le mode fenêtre IDEAl simplifié soit le mode fenêtre IDEAl, deux ou plusieurs sections de configuration deviennent disponibles : Utiliser des onglets et Utiliser la fermeture sur l'onglet au survol. 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. + +En mode fenêtre IDEAl simplifié et en mode fenêtre IDEAl, une seule autre section de configuration sera disponible, Disposition de l'onglet de la vue des outils, 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. + + + +Configuration de l'affichage de la barre d'onglets des documents + +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 Utiliser des onglets. + + + + Toujours + 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;. + + + Lorsque plus d'un onglet + 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 Toujours 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. + + + Jamais + 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 Fenêtre de &tdevelop;. + + + + + + +Configuration de la fermeture d'un document par un clic sur son onglet + +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 Utiliser la fermeture sur l'onglet au survol pour ce faire. + + + + Non + 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;. + + + Oui + 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. + + + Oui, mais non immédiat + Après avoir cliqué sur ce bouton radio, &tdevelop; permet de fermer une fenêtre de document comme décrit dans le cas Oui 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. + + + + + + +Configuration de la disposition de la barre d'onglets + +La section de configuration Disposition de la barre d'onglets 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. + + + + Icônes + + 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. + 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. + + + + Texte + 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. + + + Texte et icônes + 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 Onglets pliés de la vue des outils ci-dessous en montre un exemple. + + + + + + +Onglets pliés de la vue des outils + +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 : + + + + + + +Les onglets des vues des outils se plient pour ne pas être cachés derrière une autre fenêtre de vue + Les onglets des vues des outils se plient pour ne pas être cachés derrière une autre fenêtre de vue + + + +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. + + + + + + + +Modèles de fichiers + + + + + + + +Configurer les modèles de fichiers + Configurer les modèles de fichiers + + + + + +Sélectionner un éditeur + +&tdevelop; vous permet de choisir votre outil d'édition de texte favori. Cochez l'élément Éditeur dans l'arborescence de sélection, sur la partie gauche de la fenêtre Configurer KDevelop. La boîte de dialogue suivante s'affichera sur la partie droite. + + + + + + +Sélectionner un éditeur + Sélectionner un éditeur + + + +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 Important ci-dessous à ce sujet). Cliquez sur l'éditeur qui vous convient et confirmez par OK. Il y a actuellement trois possibilités : + + + + Éditeur de texte avancé intégré + C'est le composant d'édition Kate standard de &kde;. + + + + Éditeur de texte basé sur Qt Designer + C'est l'éditeur que fournit &Qt; dans son composant Designer. + + + +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 Affichage des messages de sortie a été prévue. + +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. + +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é. + +Que faire si le fichier a été modifié par un programme externe : + + + Ne rien faire + Le fichier sera marqué comme modifié par un programme externe et l'utilisateur sera invité à vérifier toute tentative d'écrasement de ce fichier. + + + Alerter l'utilisateur + Une boîte de dialogue avertira l'utilisateur qu'un fichier a été modifié et invitera l'utilisateur à recharger le fichier. + + + Recharger automatiquement le fichier s'il n'y a aucun danger, et alerter l'utilisateur sinon + Tout fichier qui n'a pas été modifié en mémoire est rechargé et une alerte affichée pour tout conflit. + + + + + +Abréviations pour le complétement des mots + +(... à écrire ...) + + + +Scriptage + +(... à écrire ...) + + + +Ajout d'applicatons &kde; standard au menu Outils + +(... à écrire ...) + + + +Ajout d'applications externes aux menus + +(... à écrire ...) + + +Ajout aux menu Outils + +(... à écrire ...) + + + +Ajout au menu contextuel Fichier + +(... à écrire ...) + + + +Ajout au menu contextuel Dossier + +(... à écrire ...) + + + + + +Sélection d'un style de format source + +&tdevelop; formate automatiquement un texte source dans un style prédéfini. Ce style est extrêmement configurable. + +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 astyle pour implémenter cette fonctionnalité. + +Pour configurer un style de format donné, sélectionnez Configuration Configurer &tdevelop;... dans la barre de menus. La boîte de dialogue Configurer KDevelop apparaît, dans laquelle vous sélectionnerez Formatage dans l'arborescence de la partie gauche. S'affiche alors une série de trois onglets de boîtes de dialogue à droite, à savoir Général, Indentation et Autre. + +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 ÉditionReformater le code source. + +Le résultat exact de ces définitions de formatage de style dépend de l'éditeur 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. + +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. + + +Configuration générale du formatage + +L'onglet Généralde la boîte de dialogue Formatage des fichiers sources vous permet de choisir un des cinq styles prédéfinis de format des fichiers sources. + + + + + + +Configuration générale du style de formatage des sources + Configuration générale du style de formatage des sources + + + +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 Défini par l'utilisateur 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. + +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. + + + + +Configuration du style d'indentation + +Une indentation appropriée est le principal moyen d'améliorer la lisibilité d'un texte source. Si vous avez sélectionné l'onglet Indentation de la boîte de dialogue Formatage des fichiers sources, vous voyez s'afficher une série de choix de formatage d'indentation groupée en trois cases comme suit. + + + + + + +Configuration du style d'indentation du formatage des sources + Configuration du style d'indentation du formatage des sources + + + + + +Réglages par défaut + +Les choix des formats prédéfinis feront ressembler le texte source au style de formatage ANSI : + +namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} + + + + + +Définition de la largeur et des caractères d'indentation + +Les boutons radio réunis dans le groupe Remplissage définissent la manière dont les indentations dans le texte source seront dessinées. + + + + Utiliser des tabulations + + 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 ConfigurationConfigurer l'éditeur... pour le redéfinir. + 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 Sélectionner l'éditeur. Vous devrez consulter l'aide de l'éditeur correspondant pour la découvrir. + + + + Utiliser des espaces + 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. + + + + + + +Entités indentées + +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. + +Par défaut, seuls les espaces de noms et les intitulés seront indentés en sus. Vous pouvez être amené à expérimenter divers réglages pour adapter ces indentations supplémentaires à votre goût. + + + + +Lignes suivantes + +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. + +Ce réglage s'applique aux cas de coupures de lignes statiques 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. + + + + Maximum dans une déclaration + + 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. + 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. + + + + Minimum dans une condition + + 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. + 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 Remplissage. 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. + + + + + + + + + + +Autre configuration du formatage + + + + + + +Autres réglages de styles du format des fichiers source + Autres réglages de styles du format des fichiers source + + + + + +Contrôler la position des accolades + +Les boutons radio (quelque peu mal nommés) du groupe Accolades 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. + + + + Cassées + + 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. + +namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} + + + + + Attachées + + 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 else d'une déclaration if sera maintenu en alignement avec l'accolade fermante du bloc précédent. +namespace foospace { + int Foo() { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} + + + + + Style Linux + + 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. +namespace foospace +{ + int Foo() + { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} + + + + + + + + +Contrôle des espaces supplémentaires + +Par défaut, &tdevelop; minimise l'utilisation des espaces dans les textes des fichiers sources. + + +if (isBar(fooArg)==barValue) + + +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. + + + + Ajouter des espaces autour des parenthèses + + 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. +if ( isBar( fooArg )==barValue ) + + + + + Ajouter des espaces autour des opérateurs + + Ce réglage place des espaces autour des opérateurs d'affectation et de comparaison pour améliorer la lisibilité. +if (isBar(fooArg) == barValue) + + + + + + + + +Contrôler le formatage des structures d'une ligne + +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. + + + + Garder une ligne lors d'une déclaration + 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. + + + Garder une ligne lors de la constitution de blocs + 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. + + + + + + + + + + + + +Configuration de l'outil « Fragments de code » + +Lorsque vous éditez dans &tdevelop; vous pouvez mémoriser des parties de code souvent utilisés sous forme de fragments de code. Pour configurer les fonctionnalités du composant « Fragments de code », sélectionnez Configuration Configurer &tdevelop;... dans la barre de menus. La boîte de dialogue Configurer KDevelop apparaît; dans laquelle vous devez sélectionner Fragments de code dans l'arborescence de la partie gauche. Vous voyez alors la boîte de dialogue suivante s'afficher dans la partie droite. + + + + + + +Configuration de l'outil « Fragments de code » + Configuration de l'outil « Fragments de code » + + + + + +Activer l'aperçu d'un fragment + +Cochez la case Afficher le texte du fragment dans une bulle d'aide 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. + + + + +Travailler avec des variables de fragments + +L'outil Fragments de code 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 Fragments de code fournit son propre mécanisme de variables. Vous pouvez configurer son comportement dans le groupe Variables. + + + + Délimiteur + L'outil Fragments de code 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 $ prédéfini dans le champ Délimiteur. + + + Méthode d'entrée des variables + + Une seule boîte de dialogue pour chaque variable d'un fragment de code — 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é. + Une boîte de dialogue pour toutes les variables d'un fragment de code — 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. + + + + + + + + + + +Liste des fichiers + +(... à écrire ...) + + + + +Configurer le sélecteur de fichiers + +&tdevelop; fournit un module externe Sélecteur de fichiers qui, lorsque chargé au démarrage, permet de naviguer dans n'importe quel fichier ou dossier ans le système. + + + + + + +Le sélecteur de fichiers (mode IDEAl) + Le sélecteur de fichiers (mode IDEAl) + + + +Le comportement du Sélecteur de fichiers est extrêmement configurable. Sélectionnez Configuration Configurer &tdevelop;... dans la barre de menus. La boîte de dialogue Configurer KDevelop apparaît, dans laquelle vous devrez cliquer sur Sélecteur de fichiers dans l'arborescence à gauche. La boîte de dialogue suivante apparaît dans la partie droite. + + + + + + + +Configurer le sélecteur de fichiers + Configurer le sélecteur de fichiers + + + + + +Configurer la barre d'outils + +Il y a une barre d'outils en haut du Sélecteur de fichiers que l'on peut configurer comme d'habitude dans le groupe Barre d'outils. + + + Ajouter une action à la barre d'outils + + Choisissez un élément dans la partie droite de la liste Actions sélectionnées, après quoi la nouvelle action devra être insérée. + + + Sélectionnez l'action à insérer dans la partie gauche de la liste Actions disponibles. + + + Cliquez sur la flèche droite (en haut) entre les deux listes. + L'action sera supprimée de la liste Actions disponibles et insérée dans la liste Actions sélectionnées sous l'élément sélectionné. + + + + + Supprimer une action de la barre d'outils + + Sélectionnez l'élément à supprimer dans la partie droite de la liste Actions sélectionnées. + + + Cliquez sur la flèche gauche (en bas) entre les deux listes. + L'élément sélectionné sera supprimé de la liste Actions sélectionnées et placé à nouveau dans la liste Actions disponibles. + + + + + Réordonner les actions sur la barre d'outils + + Sélectionnez l'action à déplacer dans la partie droite de la liste Actions sélectionnées. + + + Cliquez sur la flèche haut ou bas à droite de cette liste. + L'élément sélectionné sera déplacé vers le haut ou vers le bas de la liste Actions sélectionnées. + + + + + + +Définir le moment où le contenu devra changer + +La mise à jour du contenu dans la fenêtre Sélecteur de fichiers prend du temps et des ressources, en particulier lorsqu'on change de dossier. Par conséquent, le Sélecteur de fichiers 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. + +Cliquez sur le bouton Recharger dans la barre d'outils pour mettre à jour le contenu du Sélecteur de fichiers. Ce bouton de barre d'outils n'est pas disponible par défaut, cependant. Vous devez l'insérer ici d'abord. + +Vous pouvez configurer le Sélecteur de fichiers pour répercuter immédiatement certains changements dans votre travail. Les réglages dans le groupe Synchronisation automatique de la boîte de dialogue de configuration sont responsables de ce comportement. + + + + Lorsqu'un document devient actif + Si vous cochez cette case, le contenu de la fenêtre Sélecteur de fichiers 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 Sélecteur de fichiers passe dans le dossier auquel ce fichier appartient et actualise l'affichage pour en montrer le contenu réel. + + + Lorsqu'un document est ouvert + Si vous cochez cette case, le contenu de la fenêtre Sélecteur de fichiers est mis à jour chaque fois qu'un document est ouvert, &pex; par le menu FichierOuvrir. Si nécessaire, le Sélecteur de fichiers passe dans le dossier auquel ce fichier appartient et actualise l'affichage pour en montrer le contenu réel. + + + Lorsque le sélecteur de fichiers devient visible + Si vous cochez cette case, le contenu de la fenêtre Sélecteur de fichiers 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. + + + +Vous pouvez combiner librement ces réglages pour adapter le comportement d'actualisation du Sélecteur de fichiers à votre goût. + + + + +Contrôler l'historique dans les zones de listes modifiables + +Il y a deux zones de listes modifiables en haut et au bas de la fenêtre de contenu du Sélecteur de fichiers, 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. + + + + Mémoriser les emplacements + Saisissez ici le nombre maximal de sélections de dossiers que la zone de liste modifiable du haut devra mémoriser. + + + Mémoriser les filtres + Saisissez ici le nombre maximal de sélections de dossiers que la zone de liste modifiable du bas devra mémoriser. + + + +Contrôler ce qui devra être mémorisé entre les sessions + +Par défaut, le Sélecteur de fichiers 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 configurationSession. + +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. + + + + + Restaurer l'emplacement + + Décochez cette case si vous ne souhaitez pas que l'emplacement affiché soit mémorisé entre les sessions. + Si vous avez sélectionné un des réglages de mise à jour automatique, l'emplacement affiché pourra changer automatiquement, indépendamment de ce qui a été mémorisé depuis la précédente session. + + + + Restaurer les filtres + + Décochez cette case si vous ne souhaitez pas que les filtres appliqués à l'affichage soient mémorisés entre les sessions. + + + + + + + + + + +Générateur de classes C++ + +(... à écrire ...) + + + + +Formatage + +(... à écrire ...) + + + + +Analyse de la syntaxe C++ + +(... à écrire ...) + + + + + + + + +Configurer la documentation + +&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 Documentation sur le bord droit de la zone de travail. + + + + + + +La fenêtre de documentation de &tdevelop; en mode IDEAl + La fenêtre de documentation de &tdevelop; en mode IDEAl + + + +&tdevelop; doit avoir chargé le module externe Documentation pour pouvoir visualiser l'arborescence de la documentation. Consultez la section Outils  modules externes » pour plus d'informations. + +Vous pouvez configurer le contenu et le comportement des diverses parties de cette fenêtre de documentation en sélectionnant Configuration Configurer &tdevelop;... dans la barre de menus. La boîte de dialogue Configurer KDevelop apparaît, dans laquelle vous devez sélectionner Documentation dans la fenêtre de gauche. + +La page de configuration ainsi affichée montre trois pages de boîtes de dialogue de configuration à onglets, à savoir : + + + Collections de documentation + Recherche plein texte + Autre + + + +Configuration des collections de documentation + +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 Contenu de la fonction Documentation de &tdevelop; et comment l'utilisateur peut accéder aux éléments de documentation via des recherches indexées et plein texte. +L'onglet Documentation 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 : + + Collection de documentation &Qt; + Collection de documentation CHM + Collection de documentation Doxygen + Collection de documentation &tdevelop;TOC + Collection de documentation Devhelp + Collection de documentation personnalisée + + + + + + + + +Configuration des collections de documentation + Configuration des collections de documentation + + + + + +Structure commune de configuration de la documentation + +Toutes les pages de configurations dans l'onglet Documentation 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. + + + +Boutons pour maintenir le contenu de la liste de documentation + +Il y a trois boutons disponibles pour maintenir le contenu des pages de configuration de la documentation : + + + + Ajouter + + Ouvre une boîte de dialogue Propriétés du catalogue de la documentation comme illustré ci-dessous, où vous pouvez sélectionner l'emplacement source de l'élément de documentation à ajouter et le nommer. + + + + Modifier + + Ouvre une boîte de dialogue Propriétés du catalogue de la documentation 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. + + + + Supprimer + + Supprime de la liste l'entrée de documentation sélectionnée. + 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. + + + + + + + + + + Ajouter ou changee une entrée de documentation + + + +Le bouton situé à droite du champ Emplacement 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. +Le champ Titre risque de ne pas être accessible, en fonction du type de documentation à maintenir. + + + +Structure de liste de la documentation + +Chaque page de configuration de la documentation affiche les éléments de documentation répertoriés dans un tableau de colonnes : + + + + TOC + + Si cette case est cochée, cet élément de documentation sera affiché sur la page Contenu de la fonction Documentation de &tdevelop;. + Décocher la case TOC désactivera les cases à cocher Index et Recherche (voir ci-dessous). Ainsi, vous pouvez avoir les éléments les collections de documentation indexés mais non affichés dans le contenu. + + + + Index + + 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 Index et (optionnellement) Localisateur de la fonction Documentation de &tdevelop;.. + + L'index interne sera construit la première fois où l'utilisateur sélectionne la page Index. Cette action retardera le premier accès de façon significative car l'index sera lu à partir du disque puis placé dans le cache. + Toutes les recherches indexées ultérieures utiliseront cependant ce cache et iront ainsi beaucoup plus vite. + + + + + Recherche + + 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 Recherche de la fonction Documentation de &tdevelop;. + + &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. + Tout changement de la case à cocher Recherche n'affectera ainsi les actions de recherche qu'après avoir reconstruit l'index sur la page Recherche de la fonction Documentation de &tdevelop;. + + + + + Titre + C'est le nom de l'élément de documentation tel qu'il sera affiché sur la page Contenu de la fonction Documentation de &tdevelop;. + + + +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. + + + + + + + +Collections de documentation &Qt; + +Sur cette page de configuration, toute la documentation &Qt; est configurée. + + + + + + +Configuration de la collection de documentation &Qt; + Configuration de la collection de documentation &Qt; + + + +Normalement,&tdevelop; la remplit lors de son premier démarrage. Il cherche les fichiers de documentation standard *.xml ou *.dcf 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. + +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 boutons situés dans la partie droite du champ de liste. + +&tdevelop; utilisera les titres déjà fournis par la documentation &Qt; installées. Donc, le champ Titre dans la boîte de dialogue Propriétés du catalogue de la documentation ests inaccessible. + +Par défaut, toute la documentation &Qt; n'est pas affichée sur la page Contenu de la fonction Documentation de &tdevelop;. Utilisez la case à cocher TOC dans la table de configuration pour sélectionner la documentation à afficher. + +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 Index et Recherche dans la table de configuration. + + + + +Configuration de la collection de documentation CHM + +Dans cette page de configuration, vous pouvez collecter de la documentation selon le standard des fichiers d'aide CHM &Microsoft;. + + + + + + +Configuration des fichiers de documentation standard CHM &Microsoft; + Configuration des fichiers de documentation standard CHM &Microsoft; + + + +Par défaut, cette page de configuration sera vide (comme illustré ci-dessus). Vous pouvez ajouter de nouvelles entrées à l'aide des boutons situés à droite du champ de liste. &tdevelop; filtrera les fichiers *.chm dans la boîte de dialogue associée aux boutons Ajouter et Modifier. + +Pour plus d'informations sur le format des fichiers *.chm &Microsoft;, reportez-vous &pex; au document « PHP: Documentation - Extended CHM Format » sur le site http://de2.php.net/docs-echm.php. + + + + +Documentation générée par Doxygen + +Dans cette page de configuration, toutes les documentations de l'&API; que génère &doxygen; sont configurées. + + + + + + +Configuration de la documentation de l'&API; générée par Doxygen + Configuration de la documentation de l'&API; générée par Doxygen + + + +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 &doxygen; fourni en externe. +La documentation de l'&API; générée par &doxygen; se compose d'une série de fichiers html commençant par index.html. De plus, il peut exister des fichiers tag qui contiennent des informations à lier aux documentations de l'&API; existantes. Ainsi, &tdevelop; cherchera les fichiers index.html et *.tag lorsqu'il effectue des recherches dans la documentation de l'&API; générée par &doxygen;. +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 index.html 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 .tag et un sous-dossier html/. +Vous pouvez jeter un coup d'Å“il à $KDEDIR/share/doc/HTML/en/tdelibs-apidocs pour voir un exemple d'une telle disposition de documentation de l'&API; générée par &doxygen;. + +L'ancien format de l'&API; générée par le KDoc 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 Collection de documentation personnalisée. + +&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 + + + Soit vous avez fourni la commande configure avec l'option lorsque vous avez compilé &tdevelop; (reportez-vous au chapitre Comment obtenir une documentation de l'&API; &tdevelop;). + Soit la commande configure 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. + Soit en dernier recours, &tdevelop; a toruvé le $KDEDIR/share/doc/HTML/en/tdelibs-apidocs/ lors de son premier démarrage. + + +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 Collection de documentation Doxygen sera vide. + +Vous pouvez ajouter vos propres entrées de documentation de l'&API; (&pex; à partir de vos projets en cours) via les boutons situés à droite. Si vous souhaitez qu'elles soient incluses dans la recherche indexée/plein texte, cochez les cases Index ou Recherche dans la table de configuration. + +&tdevelop; utilise les informations de titre provenant du index.html. Donc; le champ Titre dans la boîte de dialogue Propriétés du catalogue de la documentation est inaccessible. + + + 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 sources (à l'aide des commandes make apidox et make install sur les sources tdebase) puis ajouter une entrée à la liste Collection de documentation Doxygen comme suit : + + + + +Ajout d'une &API; de base &kde; à la liste + Ajout d'une &API; de base &kde; à la liste + + (Naturellement, vous devrez remplacer le dossier /home/dev/mykde-system/ dans l'exemple de champ Emplacement par le chemin vers votre installation &kde;.) + + +Vous devez placer l'&API; de votre projet actuel dans cette Collection de documentation Doxygen également. Les versions antérieures de &tdevelop; la plaçaient dans l'arborescence de la documentation par projet. Ce n'est plus le cas. + + + + +Gestion de la documentation structurée (fichiers KDevelopTOC) + +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 Collection de documentation KDevelopTOC. + + + + + + + Mise en place de l'accès à la documentation structurée KDevelopTOC + + + +&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 TOC dans la table de conifguration. + +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 .toc peut avoir un index défini manuellement à l'aide de la balise <index>. Ainsi, la cse à cocher Index ne sera activée que lorsque &tdevelop; trouvera une balise <index> dans le fichier .toc. (Pour plus de détails, reportez-vous à la description ci- dessous dans la section Fichiers TOC &tdevelop;.) +La case à cocher Recherche dans la table de configuration sera toujours désactivée. + +Vous pouvez ajouter de nouvelles entrées à l'aide des boutons situés dans la partie droite du champ de liste. &tdevelop; filtrera les fichiers *.toc dans la boîte de dialogue des dossiers associée aux boutons Ajouter et Modifier. + +Comme les versions autres que les précédentes de &tdevelop; auront le bouton Supprimer mais ne changent pas les fichiers *.toc sur disque, supprimer l'opération est avisé à présent. + + + + +Fichiers &tdevelop;TOC + +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 distant. + +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. + +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 .toc. Tout fichier TOC &tdevelop; de ce type contient une description &XML; structurée du document auquel accéder. + + + +Dossier standard des fichiers TOC &tdevelop; + +Lorsque &tdevelop; est installé, une série de fichiers .toc prédéfinis est habituellement placée dans le dossier $KDEDIR/share/apps/kdevdoctreeview/tocs. 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. + + + + + + + + + Structure de base des fichiers TOC &tdevelop; + + en-tête + + + + <!DOCTYPE tdeveloptoc> + + + <tdeveloptoc> + + + (titre) + + + (adresse de base) + + + (structure du contenu) + + + (structure de l'index) + + + </tdeveloptoc> + + + La structure &XML; sera analysée par le module externe Documentation 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. + + + + titre + + + <title> (n'importe quelle chaîne de titre) </titre> + + Il s'agit du titre que &tdevelop; affichera aux niveaux de base dans l'arborescence de la documentation. + 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 <titre> dans le fichier .toc. + + + + adresse de base + + + <base href=" (&URL; du document de base) "/> + + 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 <base> pour afficher les fichiers à partir de ce nouvel emplacement. + + + + structure du contenu + + + <tocsect1 name=" (titre de la section) " url=" (&URL; de la section) "> + ... + <tocsectn name=" (titre de la section) " url=" (&URL; de la section) "/> + ... + + </tocsect1> + + + Toutes les informations de navigation et d'accès restantes sont enregistrées dans une série de paires <tocsecti> ... </tocsecti> imbriquées. Chaque i désigne un niveau d'imbrication consécutif jusqu'au nombre n qui correspond à la section de la documentation finalement affichée. + Toute entrée <tocsecti> doit avoir un attribut « name="xxx" » 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. + Il peut y avoir un attribut « url="" » associé à n'importe quel niveau d'imbrication i. 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. + L'entrée <tocsectn/> doit avoir un attribut « url="" » dans tous les cas. Cette <tocsectn/> imbriquée finale n'est pas sous la forme de paires mais sera immédiatement fermée par un / avant l'accolade >. + 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 : /url-basel/url-section#marque-ancrage. + + + + structure de l'index + + + + <index> + + <nom entrée=" (titre de l'entrée d'index) " url=" (&URL; de la section d'index) "/> + + </index> + + + L'index est une liste simple d'entrées - paires de titre et d'&URL;. L'index n'est pas obligatoire. + + + + + + + + +Documentation DevHelp + +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 .devhelp similaire aux fichiers TOC &tdevelop; pour accéder à la documentation pour le bureau GNOME 2. +Vous pouvez vérifier quels devront être les fichiers DevHelp accessibles sur la page de configuration Collection de documentation DevHelp. + + + + + + + Mise en place de la documentation DevHelp + + + +Les fichiers DevHelp étaient à l'origine accessibles sur le site web LiDN, mais il semble qu'ils ne sont pas maintenus depuis quelque temps. De la documentation DevHelp récente est disponible sur la page web DevHelp Books Download. + +Lorsque &tdevelop; est installé, il tente de trouver tous les fichiers .devhelp dans certains emplacements standard du système, &pex; dans les sous-dossiers de /opt/gnome/share/. Initialement, ces fichiers ne seront pas marqués pour être affichés. Si vous souhaitez voir une autre documentation, cochez la case TOC dans la table de configuration. + +Vous pouvez ajouter de nouvelles entrées à l'aide des boutons situés dans la partie droite du champ de liste. &tdevelop; filtrera les fichiers *.toc dans la boîte de dialogue des dossiers associée aux boutons Ajouter et Modifier. + + + + +Configuration des collections de documentation personnalisée + +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. + + + + + + + Mise en place de la documentation personnalisée + + + +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. +La manipulation est très facile ici. Utilisez les boutons à 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 Ajouter et Modifier. + +Vous devrez explicitement sélectionner les éléments à afficher dans la fonction de documentation de &tdevelop;. Cochez la case TOC de l'entrée dans la table de configuration. + +On ne peut ni indexer ni faire de recherche dans la documentation personnalisée. Ainsi, les cases à cocher Index et Recherche n'ont aucun effet ici comme illustré ci-dessus. + + + + + + +Configuration des index de recherche de texte + +(... à écrire ...) + + + + + + + Configuration des index de recherche de texte + + + + + + +Autres réglages de configuration de la documentation + +(... à écrire ...) + + + + + + + + +Configuration avancée + +(... à écrire ...) + + +Outils Modules externes + +(... à écrire ...) + + + + + 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 @@ + +Ce que contient ce manuel + +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. +Vous trouverez ici des information s sur les thèmes suivants : + + +Premiers pas avec &tdevelop; — visite guidée + +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. + + + +Vue d'ensemble des fonctionnalités de &tdevelop; + +É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 (look and feel de cet EDI. + + + + +Configurer &tdevelop; + +Vous montre comment vous pouvez adapter l'EDI pour répondre à vos besoins. + + + + +Premiers pas : l'&appwizard; + +Décrit les bases de la manière de configurer un nouveau projet dans &tdevelop; à l'aide de l'&appwizard;. + + + + +Outils d'édition + +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. + + + + +Les navigateurs de fichiers + +Décrit divers outils permettant d'observer la structure de votre projet et comment accéder aux fichiers avec lesquels vous souhaitez travailler. + + + + +Les navigateurs de classes + +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. + + + + +Documentation + +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. + + + + +Construction et gestion de projets + +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. + + + + +Gestion de projet avancée + +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 Qt/embedded. + + + + +L'interface de débogage + +Décrit comment utiliser l'interface de débogage gdb intégrée pour que vous puissiez traquer les bogues sans quitter &tdevelop;. + + + + + + +Utiliser CVS + +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. + + + + + +Certaines informations couramment employées ont été placées dans l'annexe. Entre autres, celles-ci consistent à : + + + +Installer &tdevelop; + +Vous indique où obtenir &tdevelop; et comment le mettre en place et l'exécuter. + + + + + + +En quelques mots — Trucs et astuces + +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;. + + + + +Développement sous &UNIX; + +Un aperçu historique du développement du programme &UNIX;, les principaux outils nécessaires et pourquoi vous avez besoin d'un EDI. + + + + + + +Fichiers de configuration utilisés par &tdevelop; +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. + + + + +Outils modules externes +Liste les outils enfichables que vous pouvez utiliser pour adapter les possibilités de &tdevelop; à vos besoins. + + + +Exemple de mode d'interface utilisateur de KDevelop +Affiche les modes d'interface utilisateur. + + +Informations complémentaires Obtenir des informations, signaler des bogues, etc. + + +Journal des changements (changelog) +Affiche l'historique de cette documentation. + + +Bibliographie +Bibliographie + + + + + + 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 @@ + + + + + BerndPol + Anne-MarieMahfouf + + + + +Installation de &tdevelop; + + + installation + +Dans ce chapitre, nous étudierons les étapes nécessaires pour compiler et installer l'EDI &tdevelop; : + Le document Comment obtenir &tdevelop; se concentre principalement sur le téléchargement des souces les plus récentes de &tdevelop; depuis SVN. + Le document Conditions requises pour &tdevelop; énumère les programmes et bibliothèques qui doivent être installés pour réussir à compiler l'EDI. + Le document Compilation et installation de &tdevelop; vous guide tout au long des étapes de compilation et d'installation de l'application. + Le document Comment obtenir une documentation de l'&API; &tdevelop; décrit ce qu'est une API et comment vous procurer un outil si utile pour naviguer dans les sources de &tdevelop;. + + + + +Comment obtenir &tdevelop; + + + obtenir &tdevelop; + + &tdevelop; + obtenir + +&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. +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 http://www.tdevelop.org ou sur le site ftp de &kde;. + + +Obtenir les instantanés quotidiens de &tdevelop; depuis SVN + + + svn + +Si vous vous souhaitez être à la pointe du développement actuel, des instantanés sont disponibles sur le référentiel SVN anonyme. +Le nom du module est tdevelop à l'adresse svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop. + + +Extraction initiale depuis SVN + + + extraction + + &tdevelop; + svn + extraction + +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 extraction, suivez ces étapes. + +Nous partons du principe que vous placerez votre copie de &tdevelop; dans le sous-dossier kde3src de votre dossier personnel (~). + + + # Créez le dossier de destination, si nécessaire : + ~> mkdir kde3src + ~> cd kde3src + ~/kde3src> svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop + ~/kde3src> cd tdevelop + + +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. + +Maintenez la charge du serveur faible. Ne faites pas d'extraction chaque fois que vous souhaitez conserver votre &tdevelop; à jour ! Utilisez la mise à jour par SVN à cette fin. + +À présent, compilez votre version de &tdevelop; comme décrit dans la section Compilation et installation de &tdevelop;. + + + + +Gardez votre copie SVN à jour + + + mise à jour + + &tdevelop; + svn + mise à jour + +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 kde3src.) +Notez la commande up (= update) au lieu du co (qui signiifie checkout). + + + ~> cd kde3src + ~/kde3src> cd tdevelop + ~/kde3src> svn up + + +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. + +Maintenant, vous pouvez compiler une nouvelle version de &tdevelop; comme décrit dans le chapitre Considérations de compilation spéciales par SVN. + + + + + + + + + +Conditions requises pour &tdevelop; + + + conditions requises + + &tdevelop; + conditions requises + + GNU + conditions requises + +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. + + +Requis : + + gcc/g++ ≥ 2.95.3 (ou compatible) + gcc + conditions requises + + g++ + conditions requises + + Disponible à l'adresse gcc.gnu.org + + + &GNU; make (ou compatible) + make + conditions requises + + Disponible à l'adresse www.gnu.org/software/make + + + &perl; 5.004 (ou supérieur) + Perl + conditions requises + + Disponible à l'adresse www.perl.com + + + autoconf ≥ 2.52 (ou supérieur) + autoconf + conditions requises + + Disponible à l'adresse www.gnu.org/software/autoconf + + + automake ≥ 1.6 (ou supérieur) + automake + conditions requises + + Disponible à l'adresse www.gnu.org/software/automake + + + flex 2.5.4 (ou supérieur) + flex + conditions requises + + Disponible à l'adresse www.gnu.org/software/flex + + + &Qt; ≥ 3.3.0 (ou supérieur) + Qt + conditions requises + + Disponible à l'adresse www.trolltech.com/products/qt + + + KDE ≥ 3.4.0 (ou supérieur) + KDE + conditions requises + + Disponible à l'adresse www.kde.org + + + + +Optionnels : + L'outil d'exploration des sources ctags, disponible à l'adresse http://ctags.sourceforge.net, 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. ctags + + dot, un compilateur graphique de langage, disponible à l'adresse http:/www.graphviz.org. 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é). dot + + L'outil de documentation &doxygen;, disponible à l'adresse http://www.doxygen.org pour pouvoir générer la documentation concise et puissante de l'API pour vos projets. doxygen + + valgrind disponible à l'adresse http://developer.kde.org/~sewardj/ vous aide à repérer des problèmes de gestion de la mémoire dans vos applications. valgrind + + svn à l'adresse http://subversion.tigris.org/ si vous souhaitez utiliser le système de contrôle de versions SVN. + svn + conditions requises + + 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. + + + + + + Vous pouvez, dans une certaine mesure, vous soustraire à la nécessité de &autoconf; ≥  2.52 et &automake; ≥ 1.6. Supprimez simplement le dossier admin dans votre dossier d'installation &tdevelop; et saisissez + autoconf + se soustraire à la nécessité d'une version + + automake + se soustraire à la nécessité d'une version + + nécessité d'une version + se soustraire pour autoconf / automake + + + (votre-dossier-tdevelop)> ln -s $KDEDIR/share/apps/tdelibs/admin admin + + sur la console. Cette action amène &tdevelop; à utiliser les réglages par défaut dans le dossier admin de &kde; à la place. + + + Veillez à ne pas mélanger plusieurs versions de &Qt;. 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 très étranges. + + + + + + + + + +Compilation et installation de &tdevelop; + + + &tdevelop; + compilation + + &tdevelop; + installation + +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. + + Le document Étapes préliminaires décrit la configuration d'un environnement adéquat. + Le document Compiler &tdevelop; 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;. + Le document Quelques notes sur la configuration des options vous explique comment exécuter &tdevelop; s'il a été installé dans un endroit autre que le dossier &kde;. + + + +Étapes préliminaires + + + préliminaires + Installation de &tdevelop; + + KDEDIR + + QTDIR + + LD_LIBRARY_PATH + + LIBRARY_PATH + + PATH + +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. + +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 .bashrc ou .cshrc. Ainsi, les variables d'environnement seront correctement définies chaque fois que vous démarrez le shell. + + +Définir l'environnement pour le shell bash + +Si vous utilisez le shell bash, ajoutez les lignes suivantes : + + + export KDEDIR=(chemin vers votre installation KDE) + export QTDIR=(chemin vers votre bibliothèque Qt) + export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH + export LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH + export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH + + + + + + +Définir l'environnement pour le shell tcsh + +Si vous utilisez le shell tcsh, ajoutez les lignes suivantes : + + + setenv KDEDIR (chemin vers votre installation KDE) + setenv QTDIR (chemin vers votre bibliothèque Qt) + setenv LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH + setenv LIBRARY_PATH $QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH + setenv PATH $QTDIR/bin:$KDEDIR/bin:$PATH + + + + + + + + +Compiler &tdevelop; + + + make + Installation de &tdevelop; + + compiler + &tdevelop; + +Dans l'étude suivante, nous supposons que vous avez placé vos sources &tdevelop; dans le dossier ~/kde3src/tdevelop. + + +Considérations de compilation spéciales par SVN + +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. + + + +Après une extraction de SVN + +Vous devez initialiser le système « make » après une récente extraction. La même chose est vraie chaque fois que vous devez démarrer ex nihilo. Saisissez : + +~/kde3src/tdevelop> make -f admin/Makefile.common svn-clean +puis toutes les étapes qui suivent. +Vous pourrez être amené à accéder au référentiel SVN pour le nettoyage, si un fichier corrompu ou manquant doit être reconstruit. +La commande cvs-clean supprime du dossier tout fichier non présent dans SVN ! Veillez à sauvegarder les informations qui présentent de l'intérêt avant d'émettre cette commande de nettoyage. + + + + +Après une mise à jour par SVN + +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é) : + +U /un_dossier_path/Makefile.am + +ou, si vous avez juste fait une extraction complète, saisissez : +~/kde3src/tdevelop> make -f Makefile.svn +avant de poursuivre avec toutes les étapes suivantes. + + + + + + +Séquence de commandes <command +>make</command +> de base + +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 Makefiles réels que la commande make utilisera. + +Vous pouvez ignorer l'option dans les lignes de commande configure suivantes si vous voulez que &tdevelop; soit installé dans le dossier &kde; pa défaut. Reportez-vous au chapitre Quelques notes sur les options de configure pour ce faire. + + + +Une version compilée par « debug » + +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 configure : + +~/kde3src/tdevelop> ./configure --enable-debug=full --prefix=(où-se_trouve-votre-kde3) + + + + +Une version compilée par « release » + +Si vous souhaitez n'utiliser &tdevelop; telle quelle, une version « release »(moins volumineuse mais qui s'exécute plus rapidement) suffit. configure règle celle-ci par défaut. + +~/kde3src/tdevelop> ./configure --prefix=(où-se_trouve-votre-kde3) + + +Pour construire votre propre documentation de l'API pour &tdevelop;, vous devez inclure encore une autre option dans la commande configure : + + ~/kde3src/tdevelop> ./configure --(options-comme-ci-dessus) \ --with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs + + + + + + +« Make » et « Install »er &tdevelop; + +configure vérifie le système et construit quelques Makefiles en fonction de ce qu'il a trouvé. La commande make utilise le Makefile principal par défaut. Ainsi + +~/kde3src/tdevelop> make +suffit. Si nécessaire, acquérez à présent les droits de l'utilisateur « root » à l'aide de la commande +~/kde3src/tdevelop> su +et en saisissant le mot de passe « root ». Puis installez l'application : +~/kde3src/tdevelop> make install +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 Dossier d'installation autre que le dossier par défaut ci-dessous. + + + En fait, trois applications basées sur &tdevelop; auront en principe été installées : + + L'EDI &tdevelop; — c'est l'endroit où vous travaillerez habituellement. + 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. + 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;. + + + + + + + + + + + + +Quelques notes sur les options de <command +>configure</command +> + + +Dossier d'installation autre que le dossier par défaut + + + &tdevelop; + installation + dossier autre que le dossier par défaut + + dossier autre que le dossier par défaut + + KDEDIRS + + kbuildsycoca + +Par défaut, configure 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 à configure à l'aide de l'option  : +~/kde3src/tdevelop> ./configure --prefix=(où-se_trouve-votre-kde3) +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.) +Appelez un shell et faites en sorte que les commandes suivantes soient exécutées avant de démarrer &tdevelop; à l'invite du shell. + +Veillez à utiliser le pluriel : Il s'agit de KDEDIRS, pas simplement de KDEDIR) + + + ~> export KDEDIRS=/usr/local/kde:/opt/kde3 + ~> kbuildsycoca + (Démarrez maintenant &tdevelop; :) + ~> tdevelop + + + + La variable d'environnement KDEDIRS doit être positionnée sur la liste des dossiers &kde; actifs dans votre système. Nous n'utilisons + /usr/local/kde:/opt/kde3 + qu'à titre d'exemple. + Le dossier /usr/local/kde peut, par exemple, contenir une version de &kde; incomplète que vous avez compilée à des fins de débogage ; en outre, le dossier /opt/kde3 est susceptible de contenir la version standard de &kde; issus de la distribution que vous employez pour votre travail au quotidien. + + +Dans un shell tcsh, il faut définir les variables d'environnement en utilisant : +~> setenv KDEDIRS /usr/local/kde:/opt/kde3 +La commande kbuildsycoca (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. +(Vous pourriez également placer ces lignes dans votre fichier .bashrc ou .cshrc, mais ce n'est pas à conseiller car kbuildsycoca s'exécutera ensuite chaque fois que vous appellerez le shell.) + +La commande kbuildsycoca ne s'exécute pas sous compte «root». Appelez-la à partir d'un compte utilisateur non « root ». (Mais ce n'est pas une très bonne idée de toute façon de développer des logiciels en tant que « root » !) + + + + + + + + + +Comment obtenir la documentation de l'API &tdevelop; + + + API + &tdevelop; + + &tdevelop; + API + + compiler + &tdevelop; + API + + configure + API &tdevelop; + +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. +La version de l'API la plus récente est disponible sur le site web de KDevelop. Comme elle est automatiquement actualisée toutes les 24 heures, vous pouvez continuer. +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 dans la commande configure quand vous vous préparez à compiler les sources de &tdevelop; : + + + ~/kde3src/tdevelop> ./configure --(options-comme-d_habitude) \ + + --with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs + + + +(make remplacera la variable globale $KDEDIR par le paramètre du dossier &kde; réel enregistré dedans.) Émettez ensuite une commande make comme d'habitude. Une fois que l'EDI &tdevelop; a été construit, vous avez le choix de construire l'API également. Pour cela, saisissez +~/kde3src/tdevelop> make apidocs + +Cette commande construit un Doxyfile dans votre dossier &tdevelop; de base, qui sera à son tour traité par l'application Doxygen pour construire une quantité considérable de fichiers d'API .html. 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 + +~/kde3src/tdevelop> su + +et en saisissant le mot de passe root. Puis installez les fichiers d'API : + +~/kde3src/tdevelop> make install-apidox + +Ensuite, make 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. + +Vous verrez probablement beaucoup de messages d'avertissement et/ou d'erreurs au cours de la construction de l'API exécutée par Doxygen. 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 .html seront utilisables. + + + + 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 @@ + + + + + IanGeiser + + + + +Utilisation des scripts dans KDevelop + + +Exécution de scripts +Pour accéder à un script disponible pour &tdevelop;, utilisez le menu OutilsScripts. 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. + + + +Ajout de scripts +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 : +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 : + +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 » + +Un des outils les plus utiles dans le développement de scripts pour des applications est l'application KDCOP. +
+ KDCOP parcourant des interfaces DCOP dans &tdevelop; + + + +
+ +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. + +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 ». + +
+ Scripts &tdevelop; sur le système de fichiers + + + +
+ +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. + +
+ + +
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 @@ + + + + + BerndPol + + + + +Vue d'ensemble des fonctionnalités de &tdevelop; + + + &tdevelop; + aperçu + + vue globale + + aperçu + +&tdevelop; intègre une pléthore d'outils, de scripts et de modèles dans une interface utilisateur commune. Elle se compose essentiellement de + plusieurs modes d'interface utilisateur à partir desquels vous pouvez choisir l'apparence (ou look and feel) de votre espace de travail, + un &appwizard; qui vous assiste lors de la configuration d'un nouveau projet, + plusieurs systèmes de gestion de projet qui vous assistent lors de la conception et de la gestion de votre projet, + quelques outils d'éditionpour travailler facilement sur les textes de vos programmes, + divers navigateurs de fichiers, qui vous offrent différents affichages sur votre système de fichiers, + divers afficheurs de classes pour vous aider à maintenir les classes de votre projet de programmation orientée objet, ainsi que leurs relations, + une interface de débogage pour chercher et supprimer des erreurs de programmation depuis &tdevelop;, et + plusieurs outils modules externes (ou plugins), 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. + un ensemble d'autres outils de diagnostic, de documentation et d'aide à l'optimisation. + + + + + En fait, il existe trois applications basées sur &tdevelop; : + + L'EDI &tdevelop; — l'endroit où vous travaillerez habituellement. + 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. + 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;. + + + + + +Modes d'interface utilisateur disponibles + + + &tdevelop; + modes d'interface utilisateur + + interface utilisateur + modes &tdevelop; + + modes d'interface utilisateur (IU) + + Fenêtres enfants + + Pages à onglets + + Fenêtres de premier niveau + + IDEAl + +&tdevelop; offre aux développeurs quatre modes d'interface utilisateur séparés (cliquez sur le nom du mode pour afficher un exemple) : + IDEAl + Il s'agit d'une approche originale d'interface utilisateur optimisant à la fois l'espace de travail et la gestion intuitive des outils. + + 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. + 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. + + + + + Fenêtres enfants + + Toutes les vues correspondant aux outils sont intialement intégrées à la fenêtre principale. + 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. + + + + + Pages à onglets + + Toutes les vues correspondant aux outils sont intialement intégrées à la fenêtre principale. + Les vues de l'éditeur et du navigateur seront superposées dans une fenêtre à onglets. + + + + + Fenêtres de premier niveau + + Toutes les vues de l'éditeur, du navigateur et des outils seront des fenêtres de premier niveau directement sur le bureau. + L'élément graphique (« widget ») principal ne contient que le menu, les barres d'outils et la barre d'état. + + + + + + + +Comment changer de mode d'interface utilisateur + + + interface utilisateur + changer de mode + + changer de mode d'interface utilisateur (IU) + +Pour changer le mode d'interface utilisateur, sélectionnez Configuration Configurer KDevelop... dans les menus. La boîte de dialogue Personnaliser KDevelop apparaît, dans laquelle vous sélectionnez Interface utilisaeur dans l'arborescence de la partie gauche. Cette action affichera la page de configuration illustrée ci-dessous. + + + + + + + Choisissez un mode d'interface utilisateur + + + +(Les versions antérieures de &tdevelop; fournissent le début de la section relative au mode de sélection uniquement.) + +Dans la section Mode d'affichage de l'interface utilisateur principale, cliquez sur le bouton radio du mode interface utilisateur dans lequel vous voulez travailler. +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 Sélectionner l'interface utilisateur pour plus de détails. + +N'oubliez pas de redémarrer &tdevelop; afin que vos sélections puissent prendre effet. + + + + +Comment maximiser la zone d'espace de travail + + + &tdevelop; + espace de travail + + &tdevelop; + maximiser l'espace de travail + + interface utilisateur + espace de travail + + interface utilisateur + barre de menus + + interface utilisateur + mode plein écran + + mode plein écran + + barre de menus + masquer / afficher + + masquer la barre de menus + + afficher la barre de menus + +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 KDE. + + + +Mode plein écran + +Pour basculer vers, ou depuis le mode plein écran, sélectionnez Affichage Mode plein écran dans les menus ou appuyez sur &Ctrl; &Maj; F . Il y a également une icône Mode plein écran disponible dans la barre d'outils du navigateur. + + + + +Masquer / Afficher la barre de menus + +Pour cacher la barre de menus, sélectionnez Configuration Afficher la barre de menus à partir des menus ou appuyez sur &Ctrl; M . Vous pouvez également inclure une icône Afficher la barre de menus dans une barre d'outils appropriée, &pex; la Barre d'outils du navigateur dans ce but. Pour afficher la barre de menus, vous devez appuyer sur &Ctrl; M ou utiliser l'icône Afficher la barre de menus si elle est disponible. + + + + + + + + + + + +Éléments de l'interface utilisateur + +(... à écrire ...) + + +La zone de travail + +(... à écrire ...) + + + +La barre de titre de &tdevelop; + +(... à écrire ...) + + + +La barre d'état de &tdevelop; + +(... à écrire ...) + + + +La barre de menus + +(... à écrire ...) + + + +Les barres d'outils + +(... à écrire ...) + + + +Les vues des outils en arborescence + +(... à écrire ...) + + + +Les vues des outils de visualisation des sorties + +(... à écrire ...) + + + + + + + +Systèmes de gestion des projets + + + gestion des projets + +Globalement, un projet repose sur une certaine forme de système de gestion de projet. &tdevelop; offre quatre systèmes de gestion de projet permettant au programmeur de faire son choix quand il crée un nouveau projet. + Les projets Automake utilisent les outils standard de développement de &GNU;. + Les projets QMake utilisent le gestionnaire de projet QMake Trolltech. + Les projets ANT utilisent le gestionnaire de projet Apache ANT pour le développement en &Java;. + Les projets personnalisés exigent que vous mainteniez vos propres Makefiles. + + + + +Projets Automake + + + projets + automake + + automake + projets + +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 + une meilleure façon de générer un fichier Makefile et + une méthode excellente et fiable pour une adaptation rapide à différents systèmes par scripts configure générés par autoconf. + + + + + +Projets QMake + + + projets + qmake + + qmake + projets + +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. +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 Documentation de TROLLTECH : vous y trouverez la documentation QMake de votre version du « Qt C++ GUI Application Development Toolkit ». + + + +Projets CMake + + + projets + cmake + + cmake + projets + +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 $PATH pour les construire. +Pour configurer un nouveau projet C ou C++ dans &tdevelop; sélectionnez Projet Nouveau projet... C ou C++ Projets basés sur CMake Un modèle de bibliothèque partagé ou le programme « Bonjour tout le monde » . + + + +Projets ANT (projets &Java;) + + + projets + ant + + ant + projets + + projets + Java + + Java + projets + + développement + Java + +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 Projet Nouveau projet... Java Projet Ant Application. +Pour plus d'informations, reportez-vous à la page d'accueil duProjet Apache Ant. + + + +Projets personnalisés + + + projets + personnalisés + + projets personnalisés + + Makefile + projets personnalisés + +Si vous préférez maintenir vos propres fichiers Makefiles 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 make. +De plus, si vous n'avez pas réellement besoin 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. + + + +Comment distribuer votre application + + + distribution + + application + distribution + + paquetages exécutables + +La distribution de vos applications n'exige pas que l'utilisateur final ait quoi que ce soit d'autre installé que + un compilateur approprié, + un éditeur de liens, et + les bibliothèques de développement appropriées, + + +ce qui, au moins pour les applications C++, est le plus souvent le cas. Mais vous pouvez également distribuer des paquetages exécutables 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é. +Pour diffuser vos sources, nous vous conseillons d'inclure le fichier projet de &tdevelop; également. Il sera ainsi beaucoup plus facile pour d'autres développeurs—s'ils utilisent &tdevelop; — de travailler avec vos sources. +Pour les projets dans lesquels plusieurs développeurs travaillent peut-être à des endroits différents, ce devrait être la règle. Ainsi, vous pouvez vérifier que la cohérence des Makefiles ne pose pas de problème. +En particulier, dans les applications multilangues, les traducteurs 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. + + + + + + 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 @@ + + + + + BerndPol + + + + +Développement sous &UNIX; + +développement + + &UNIX; + développement + + +Quelques remarques d'ordre historique + +historique +langages de scriptage + + &UNIX; + historique + + &UNIX; + tube + + &UNIX; + shell + + shell + &UNIX; + +Dès le début, &UNIX; a maintenu deux paradigmes de développement très différents. L'un est le monde des langages de programmation de systèmes et d'applications, dans lequel du code source est traduit en code machine par un programme de traduction, le plus souvent un compilateur ou un interpréteur. 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.) +L'autre paradigme est le monde des langages de scriptage. 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; grep, sed ou find. 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 via un mécanisme de transport simple, appelé tube, 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. +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. + + + + + +Langages de scriptage contemporains +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 via des tubes en cas de nécessité. +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. + + +&perl; + +Perl + + langages de scriptage + Perl + +&perl; 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 mod_perl 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. +Pour plus d'informations, visitez le site web Comprehensive Perl Archive Network (CPAN). + + + +Python + +Python + + langages de scriptage + Python + +&python; 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. + + + +PHP + +PHP + + langages de scriptage + PHP + +&php; 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. + + + + + +Scriptage de niveau plus élevé + +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;. +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 CORBA et, dans l'environnement &kde;, &DCOP;. + + +Le protocole CORBA + +CORBA + + langages de scriptage + CORBA + + communication + CORBA + +CORBA (Common Object Request Broker Architecture) est une tentative pour faire interagir des applications informatiques sur des réseaux. Il a été élaboré par le comité de standardisation OMG (Object Management Group) composé de fabricants privés, indépendants. +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. +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. + + + + +L'interface &DCOP; + +DCOP + + langages de scriptage + DCOP + + communication + DCOP + +Une autre évolution sur le scriptage de type &UNIX; est le protocole DCOP mis au point pour la communication entre les applications &kde; pour venir à bout des limitations de CORBA. +DCOP signifie Desktop Communication Protocol 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;. +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. +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. +Pour plus d'informations, lisez l'article DCOP: Desktop COmmunications Protocol ou la référence à l'&API; The &DCOP; Desktop Communication Protocol library de la bibliothèque dcop de &kde;. + + + + + + + +Systèmes de construction + +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. +Pour ce faire, les outils de base nécessaires sont + un éditeur de texte pour écrire les fichiers de code source, + un programme de traduction, habituellement un compilateur pour transformer le code source en fichiers objets, + un gestionnaire de bibliothèques qui collecte des fichiers objets dans les bibliothèques pour les réutiliser aisément sans qu'il soit nécessaire de recompiler, + un éditeur de liens qui associe plusieurs fichiers objets et les bibliothèques en un exécutable, + un système make qui fournit un moyen de gérer tous ces éléments et — sans oublier + un débogueur 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. + + + +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. +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. + + +Le processus make + + + make + + Makefile + + règle + + recompilations + + cible + + dépendances + + commandes + +Un outil qui se charge des recompilations est make. Il garde la trace de l'ensemble du travail grâce à un ensemble de règles 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 unMakefile, qui est traité par make chaque fois que vous souhaitez mettre à jour votre travail. +Chaque règle se compose de plusieurs blocs de construction, à savoir + une cible, &cad; le fichier à construire + un ensemble de dépendances, 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 + les commandes qui doivent être exécutées pour créer (en anglais, make) la cible (&cad; pour la compiler ou l'associer à d'autres fichiers objets pour construire un fichier de programme exécutable). + + +Avant tout, la commande make 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. +Il y a plusieurs autres possibilités de contrôler un processus « make » de ce type, et un Makefile 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 make. 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 « GNU Make Manual » pour plus d'informations. +Pour plus de détails spécifiques à &tdevelop;, consultez le chapitre Construction et gestion de projets de ce manuel. +Il y a plusieurs tutoriels disponibles : reportez-vous aux références dans le chapitre Construction et gestion de projets. + + + + + + + +Développement d'interfaces graphiques + + + interface graphique utilisateur + + interface graphique utilisateur + + interface utilisateur + interface graphique utilisateur + +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. +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 look and feel) que les utilisateurs de votre application apprécieront énormément. +Un guide de style est disponible pour le développement d'interfaces graphiques &kde;. Vous le trouverez dans les &kde; User Interface Guidelines, sur la page Developer's Corner de &kde;. +Vous trouverez une courte introduction aux principes communs de conception des interfaces graphiques ici. + + + + + + +Intégration de concepts et d'outils — l'EDI + + + EDI + + environnement de développement intégré + + développement + EDI + + environnement + EDI + +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. +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. +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 ? +Pour y parvenir plus aisément, on a mis au point les environnements de développement intégrés (en anglais &IDE;s, Integrated Development Environments). 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. +&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. + + +Fonctionnalités de base de la &kdevrelease; de &tdevelop; + + + &tdevelop; + fonctionnalités + + fonctionnalités + + + + + + Gère tous les outils de développement requis pour la programmation en C++, comm un compilateur, un éditeur de liens, un débogueur et un système de compilation. + + + Fournit un assistant d'applications qui génère des exemples d'applications complets, prêts à fonctionner. + + + Permet à l'utilisateur de choisir un éditeur intégré basé sur l'éditeur &kwrite; du programmeur &kde;, QEditor de Trolltech, ou autres. + + + Un générateur de classes, pour créer de nouvelles classes et les intégrer dans le projet en cours. + + + Une gestion de fichiers pour les sources, les en-têtes, la documentation &etc; à inclure au projet. + + + Une assistance lors de la création de manuels utilisateur des applications écrits avec les outils &kde;. + + + Une documentation de l'&API; automatique en &HTML; des classes d'un projet avec des références croisées aux bibliothèques utilisées. + + + Une prise en charge de l'internationalisation, permettant aux traducteurs d'ajouter aisément leur langue cible à un projet, y compris la prise en charge de &kbabel;. + + + Un support pour la gestion d'un projet via un ou plusieurs systèmes de suivi de versions (&pex;, &CVS;) en proposant une interface facile à utiliser pour la plupart des fonctions nécessaires. + + + Une interface de débogage intégrée. + + + Un émulateur de console de shell intégré. + + + Une coloration syntaxique dans les textes sources. + + + Une capacité d'auto-complétement du code des variables de classes, des méthodes de classes, des arguments de fonctions, &etc;. + + + Des modèles pour créer divers projets (modules &kcontrol;, applets de &kicker; (tableau de bord), KIOSlaves, modules externes (plugins) de &konqueror; et styles du bureau). + + + Quatre vues arborescentes de l'affichage 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. + + + Une prise en charge de la compilation croisée, avec la possibilité de spécifier différents compilateurs, drapeaux de compilateurs, architectures cibles, &etc; + + + Une prise en charge des projets Qt/Embedded (tels que le Zaurus et l'iPAQ). + + + Une inclusion de tout autre programme dont vous avez besoin pour le développement, en l'ajoutant au menu Outils en fonction de vos besoins individuels. + + + + + + + + + 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 ? -- cgit v1.2.1