<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kdevelop "<application
>KDevelop</application
>">
  <!ENTITY kdevrelease "3.1.0">
  <!ENTITY apache "<application
>Apache</application
>">
  <!ENTITY appwizard "Application Wizard">
  <!ENTITY autoconf "<command
>autoconf</command
>">
  <!ENTITY automake "<command
>automake</command
>">
  <!ENTITY automanag "Automake Manager">
  <!ENTITY ctags "<command
>ctags</command
>">
  <!ENTITY CVS "<application
>CVS</application
>">
  <!ENTITY cvs "CVS">
  <!ENTITY doxygen "<application
>Doxygen</application
>">
  <!ENTITY doxywizard "<application
>doxywizard</application
>">
  <!ENTITY egrep "<command
>egrep</command
>">
  <!ENTITY grep "<command
>grep</command
>">
  <!ENTITY libtool "<command
>libtool</command
>">
  <!ENTITY nfwizard "New File Wizard">
  <!ENTITY python "<application
>Python</application
>">
  <!ENTITY perl "<application
>Perl</application
>">
  <!ENTITY php "<application
>PHP</application
>">
  <!ENTITY promanag "Project Manager">
  <!ENTITY qte "<application
>Qt/embedded</application
>">
  <!ENTITY ssh "<application
>ssh</application
>">
  <!-- chapters in separate docbook files -->
  <!ENTITY unixdev SYSTEM "unixdev.docbook">
  <!ENTITY kdevelop-survey SYSTEM "kdevelop-survey.docbook">
  <!ENTITY kdevelop-install SYSTEM "kdevelop-install.docbook">
  <!ENTITY getting-started SYSTEM "getting-started.docbook">
  <!ENTITY setup SYSTEM "setup.docbook">
  <!ENTITY applicationwizard SYSTEM "applicationwizard.docbook">
  <!ENTITY project-advanced SYSTEM "project-advanced.docbook">
  <!ENTITY project-management SYSTEM "project-management.docbook">
  <!ENTITY app-files SYSTEM "app-files.docbook">
  <!ENTITY app-menu SYSTEM "app-menu.docbook">
  <!ENTITY kdevelop-scripting SYSTEM "kdevelop-scripting.docbook">
  <!-- book related entities -->
  <!ENTITY kappname "&kdevelop;">
  <!ENTITY % addindex "INCLUDE">
  <!ENTITY % Russian "INCLUDE"
> <!-- change language only here -->
]>

<!--
NOTE:
Entries which require special treatment are marked with comments starting with '###'. They should be visited on a regular basis.
-->

<book lang="&language;">

<bookinfo>
  <title
>Руководство &kdevelop;</title>

  <date
>2004-11-13</date>
  <releaseinfo
>&kdevrelease;</releaseinfo>

  <authorgroup>
    <author
><firstname
>Bernd</firstname
> <surname
>Gehrmann</surname
> <affiliation
> <address
><email
>bernd@kdevelop.org</email
></address>
      </affiliation>
    </author>

    <author
><firstname
>Caleb</firstname
> <surname
>Tennis</surname
> <affiliation
> <address
><email
>caleb@aei-tech.com</email
></address>
      </affiliation>
    </author>

    <author
><firstname
>Bernd</firstname
> <surname
>Pol</surname
> <affiliation
> <address
><email
>bernd.pol@online.de</email
></address>
      </affiliation>
    </author>
  </authorgroup>

  <copyright>
    <year
>2002</year>
    <holder
>Bernd Gehrmann</holder>
  </copyright>
  <copyright>
    <year
>2002</year>
    <holder
>Caleb Tennis</holder>
  </copyright>
  <copyright>
    <year
>2004</year>
    <holder
>Bernd Pol</holder>
  </copyright>

  <!--ROLES_OF_TRANSLATORS-->

  <legalnotice
>&FDLNotice;</legalnotice>

  <abstract>
    <para
>&kdevelop; &mdash; это интегрированная среда разработки (Integrated Development Environment &ndash; IDE), инструмент написания приложений широкого круга применения.</para>
  </abstract>

  <keywordset>
    <keyword
>KDE</keyword>
    <keyword
>KDevelop</keyword>
    <keyword
>IDE</keyword>
    <keyword
>разработка</keyword>
    <keyword
>программирование</keyword>
  </keywordset>

</bookinfo>

<!-- ====================================================================== -->

<chapter id="survey-manual">
<title
>Что есть в этом руководстве</title>

<para
>В руководстве описывается использование элементов среды &kdevelop; &kdevrelease; с точки зрения пользователя. Это не руководство по программированию, и не описание подробностей разработки. Здесь описывается лишь среда создания программ. </para>
<para
>В руководстве затронуты следующие темы: </para>
<itemizedlist>
  <listitem
><para
><link linkend="nutshell"
>Вкратце &mdash; Советы и подсказки</link
> &mdash; краткий перечень наиболее часто используемых команд и действий, а также краткое руководство по решению общих проблем при работе в &kdevelop;. </para
></listitem>

  <listitem
><para
><link linkend="unixdev"
>Разработка программ под UNIX</link
> &mdash; обзор истории развития программных средств для UNIX, основные инструменты и почему вам не обойтись без <acronym
>IDE</acronym
>. </para
></listitem>

  <listitem
><para
><link linkend="kdevelop-install"
>Установка &kdevelop;</link
> &mdash; поскольку автоматизация сборки и установки программного обеспечения под UNIX не доведена до совершенства, такая глава продолжает быть востребованной. </para
></listitem>

  <listitem
><para
><link linkend="getting-started"
>Начало работы с &kdevelop;</link
> &mdash; позволит быстро освоиться с базовой функциональностью IDE, в том числе с основами работы с проектами. </para
></listitem>

  <listitem
><para
><link linkend="kdevelop-survey"
>Обзор возможностей &kdevelop;</link
> &mdash; знание всех элементов, встроенных в <acronym
>IDE</acronym
> поможет вам повысить свою производительность. </para
></listitem>

  <listitem
><para
><link linkend="app-menus"
>Обзор меню и панелей инструментов</link
> (в приложении) &mdash; краткое описание пунктов меню и панелей инструментов. </para
></listitem>

  <listitem
><para
><link linkend="app-shortcuts"
>Комбинации клавиш</link
> (в приложении) &mdash; список комбинаций клавиш &kdevelop;. </para
></listitem>

  <listitem
><para
><link linkend="setup"
>Настройка &kdevelop;</link
> &mdash; поможет вам подстроить <acronym
>IDE</acronym
> под себя. </para
></listitem>


  <listitem
><para
><link linkend="kdevelop-scripting"
>Поддержка сценариев</link
> &mdash; как добавлять сценарии для автоматизации работы в &kdevelop; и не только. </para
></listitem>

<!--  <listitem
><para>
  <link linkend="applicationwizard"
>Getting started: the &appwizard;</link
> &mdash; describes the basics of how to set up a new project in &kdevelop; using the built-in &appwizard;.
  </para
></listitem
>-->

  <listitem
><para
><link linkend="projects-advanced"
>Профессиональное управление проектом</link
> &mdash; как загружать, преобразовывать старые проекты &kdevelop; в новый формат, а также импортировать другие проекты. Также обсуждается настройка параметров проекта для улучшения удобства и повышения производительности. </para
></listitem>

  <listitem
><para
><link linkend="editing"
>Средства редактирования</link
> &mdash; всё, что вам нужно для написания исходного кода ("исходников"): начиная с редактора, поиска текста (как локально, так и в рамках всего проекта), и заканчивая включением новых файлов и классов в существующий проект. </para
></listitem>

  <listitem
><para
><link linkend="file-browsers"
>Обозреватели файлов</link
> &mdash; демонстрация различных средств обзора структуры вашего проекта, упрощающих доступ к файлам, с которыми вы желаете работать. </para
></listitem>

  <listitem
><para
><link linkend="class-browsers"
>Обозреватели классов</link
> &mdash; один из самых мощных инструментов &kdevelop;, обеспечивающий навигацию по зависимостям между классами, создание новых классов и методов. </para
></listitem>

  <listitem
><para
><link linkend="documentation"
>Документация</link
> &mdash; здесь описано как получить доступ богатой встроенной документации &kdevelop;, как создать документацию для вашего проекта, чёткое и мощное описание API (Application Progamming Interface), содержащее обзор исходных кодов вашего проекта, а также написание руководства в формате DocBook. </para
></listitem>
  <listitem
><para
><link linkend="project-management"
>Сборка и управление проектом</link
> &mdash; описание процедур создания и управления проектом, основы autoconf и automake, как создать собственные файлы make, а также использование ключей компилятора и make для тонкой подстройки вашего приложения. </para
></listitem>

  <listitem
><para
><link linkend="adv-build-management"
>Расширенное использование менеджера проектов</link
> &mdash; обзор путей создания нескольких конфигураций сборки, обеспечения кросс-платформенности и создания встроенных систем с использованием библиотеки <application
>Qt/embedded</application
>. </para
></listitem>

  <listitem
><para
><link linkend="debugger"
>Интерфейс отладчика</link
> &mdash; использование интегрированного отладчика <application
>gdb</application
>, благодаря которому вы сможете локализовать ошибки в программе, не покидая &kdevelop;. </para
></listitem>

<!-- ### Currently disabled. Probably too specialized programming stuff. Check later again.
  <listitem
><para>
  <link linkend="python"
>Python</link
> &mdash; an overview of how to create Python-based applications in &kdevelop;.
  </para
></listitem>
  <listitem
><para>
  <link linkend="php"
>PHP</link
> &mdash;  an overview of how to create PHP-based HTML applications in &kdevelop;.
  </para
></listitem
>//-->

  <listitem
><para
><link linkend="cvs"
>Использование CVS</link
> &mdash; применение системы, без которой не обойтись ни одному проекту, особенно с несколькими разработчиками. </para
></listitem>

  <listitem
><para
><link linkend="external-progs"
>Вызов внешних программ</link
> &mdash; запуск внешних утилит из среды &kdevelop;. </para
></listitem>

  <listitem
><para
><link linkend="plugin-tools"
>Подключаемый инструментарий</link
> &mdash; обзор компонентов, формирующих &kdevelop;, которые вы можете подстроить под свои нужды посредством загрузки необходимых из них, как для работы в <acronym
>IDE</acronym
>, так и в рамках конкретного проекта. </para
></listitem>

  <listitem
><para
>Некоторая общая информция помещена в <emphasis
>приложение</emphasis
>. Среди прочего, это: <itemizedlist>
    <listitem
><para
><link linkend="app-menus"
>Обзор меню и панелей инструментов</link
> &mdash; краткое описание пунктов меню и панелей инструментов. </para
></listitem>

    <listitem
><para
><link linkend="app-shortcuts"
>Комбинации клавиш</link
> &mdash; список комбинаций клавиш &kdevelop;, использование которых позволит ускорить повседневную работу. </para
></listitem>

    <listitem
><para
><link linkend="app-files"
>Конфигурационные файлы &kdevelop;</link
> &mdash; обзор всех файлов, хранящих разнообразные внутренние параметры. Это может быть полезно если с инсталляцией среды случилось что-то непредвиденное. </para
></listitem>

    <listitem
><para
><link linkend="plugin-tools"
>Подключаемый инструментарий</link
> &mdash; список вспомогательных модулей, расширяющих функциональность среды разработки. </para
></listitem>
  </itemizedlist>
  </para
></listitem>
</itemizedlist>
</chapter>

<!-- ====================================================================== -->

<chapter id="nutshell">
<title
>Вкратце &mdash; Советы и подсказки</title>

<!-- Traditionally, most of this stuff will have been put into a FAQ section. It is more useful, however, to put it at the very start of a manual, as this is the place the (inexperienced) user first looks for.
This chapter is meant to provide short hints and tips together with (mandatory) navigation links.
There should be an additional FAQ section near the end nevertheless which contains more general stuff not directly related to navigating the manual. -->

<para
>В этой главе описывается начальная информация об оболочке. Кроме того, указаны советы по решению часто встречающихся проблем при работе с &kdevelop;. </para>
<para
>Для получения более подробной информации следуйте по ссылкам, с которых начинаются советы. </para>
<para
>Информация по этим темам: </para>
<simplelist>
  <member
><link linkend="nutshellitem-look-and-feel"
>Внешний вид</link
></member>
  <member
><link linkend="nutshellitem-projects"
>Проекты</link
></member>
  <member
><link linkend="nutshellitem-compilation"
>Сборка</link
></member>
  <member
><link linkend="nutshellitem-automake"
>&automanag;</link
></member>
  <member
><link linkend="nutshellitem-compilemake"
>Проблемы компиляции</link
></member>
  <member
><link linkend="nutshellitem-others"
>Другие темы</link
></member>
</simplelist>

<itemizedlist id="nutshellitem-look-and-feel">
  <title
>Внешний вид</title>

  <listitem>
    <formalpara id="nutshell-IDEAl-tabs">
    <title
><link linkend="setup-ui-toolview"
>Уменьшить размер вкладок отображений в режиме IDEAl</link
></title>
    <para
>По умолчанию &kdevelop; запускаются со слишком большими полосами названий вкладок по краям рабочей области. Вы можете изменить это через пункт меню  <menuchoice
><guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KDevelop...</guimenuitem
> <guimenuitem
>Интерфейс пользователя</guimenuitem
></menuchoice
>). </para>
    </formalpara>
    <para
>Если у вас более старая версия &kdevelop;, это можно изменить вводом параметра <computeroutput
>MDIStyle</computeroutput
> в разделе <computeroutput
>[UI]</computeroutput
> файла <filename
>$KDEHOME/share/config/kdeveloprc</filename
>: </para>
    <simplelist>
      <member
><computeroutput
>MDIStyle=0</computeroutput
>: только значки</member>
      <member
><computeroutput
>MDIStyle=1</computeroutput
>: только текст (по умолчанию)</member>
      <!--<member
><computeroutput
>MDIStyle=2</computeroutput
>: icons only on smaller tabs (not very useful)</member
>-->
      <member
><computeroutput
>MDIStyle=3</computeroutput
>: значки и текст</member>
    </simplelist>
  </listitem>

  <!-- ### remove this entry when the bug is repaired -->
  <listitem>
    <formalpara id="nutshell-weird-style">
    <title
>Стиль отображения</title>
    <para
>Если вы заметите разноцветные буквы в любом месте (на вкладках и т.д.) и &kdevelop;, похоже, использует неверный стиль отображения: </para>
    </formalpara>
    <itemizedlist>
      <listitem
><para
>В <filename
>$KDEHOME/share/config/kdeveloprc</filename
> найдите строку с<quote
><computeroutput
>Style=Checked</computeroutput
></quote
>и удалите её. Перезапустите &kdevelop;. </para
></listitem>
    </itemizedlist>
    <para
>(это может случится, если вы щёлкнули в файловом менеджере на файле с расширением .ui и в &kdevelop; не загрузился <application
>KUIViewer</application
> для показа &GUI;, описанного в этом файле). </para>
  </listitem>

  <listitem>
    <formalpara id="nutshell-full-screen">
    <title
><link linkend="maximize-workspace"
>Полноэкранный режим</link
></title>
    <para
>Для переключения в этот режим (или возврата из него), выберите пункт меню <menuchoice
> <guimenu
>Вид</guimenu
> <guimenuitem
>Полноэкранный режим</guimenuitem
> </menuchoice
> или нажмите <keycombo
> <keycap
>Ctrl</keycap
> <keycap
>Shift</keycap
> <keycap
>F</keycap
> </keycombo
>. </para>
    </formalpara>
  </listitem>

  <listitem>
    <formalpara id="nutshell-hide-menu">
    <title
><link linkend="maximize-workspace"
>Скрытие и показ меню</link
></title>
    <para
>Чтобы скрыть меню, выберите пункт меню <menuchoice
> <guimenu
>Настройка</guimenu
> <guimenuitem
>Показать меню</guimenuitem
> </menuchoice
> или нажмите <keycombo
> <keycap
>Ctrl</keycap
> <keycap
>M</keycap
> </keycombo
>. Чтобы <emphasis
>вернуть</emphasis
> меню, нажмите <keycombo
> <keycap
>Ctrl</keycap
> <keycap
>M</keycap
></keycombo
>. </para>
    </formalpara>
  </listitem>

</itemizedlist>

<itemizedlist id="nutshellitem-projects">
<title
>Проекты</title>

  <listitem>
    <formalpara id="nutshell-new-project">
    <title
><link linkend="new-projects"
>Создание нового проекта</link
></title>
    <para
>Выбор пункта меню <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Новый проект...</guimenuitem
></menuchoice
> приведёт к запуску <link linkend="applicationwizard"
>Мастера приложений</link
>. </para>
    </formalpara>
  </listitem>

  <listitem>
    <formalpara id="nutshell-new-custom-project">
      <title
>Создание специального проекта</title>
      <para
>Нет прямого пути для создания специального проекта (проекта, который использует внешние файлы сборки). Воспользуйтесь пунктом меню <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Импортировать существующий проект</guimenuitem
></menuchoice
>. Не забудьте установить соответствующий <guilabel
>тип проекта</guilabel
>, название которого должно содержать <quote
>(Custom Makefiles)</quote
> в появившемся диалоге. </para>
    </formalpara>
  </listitem>

  <listitem>
    <formalpara id="nutshell-project-options">
    <title
><link linkend="project-options"
>Использование опций проекта</link
></title>
    <para
>После создания нового проекта не забудьте настроить его через пункт меню <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Параметры проекта...</guimenuitem
></menuchoice
>. </para>
    </formalpara>
  </listitem>
</itemizedlist>

<itemizedlist id="nutshellitem-compilation">
<title
>Компиляция</title>
  <listitem>
    <formalpara id="nutshell-compilemsg-detail">
    <title
><link linkend="setup-main-compile"
>Не показывать детали в общем потоке сообщений</link
></title>
    <para
>Если в процессе сборки вы не можете уследить за важной информацией, отображаемой в окне <guilabel
>вывода</guilabel
>, уменьшите объём показываемой информации правым щелчком в окне сообщений. </para>
    </formalpara>
  </listitem>
</itemizedlist>

<itemizedlist id="nutshellitem-automake">
<title
><link linkend="automake-manager"
>&automanag;</link
></title>

    <listitem>
      <formalpara id="nutshell-new-project-file">
      <title
>Создание нового проекта</title>
      <para
>Выберите подпроект в верхней части окна &automanag; и в контекстном меню группы (в нижней части окна), в которую нужно добавить файлы, выберите <guimenuitem
>Создать файл...</guimenuitem
>. </para>
      </formalpara>
    </listitem>

    <listitem>
      <formalpara id="nutshell-add-project-file">
      <title
>Добавление существующих файлов в проект</title>

      <para
>Выберите подпроект в верхней части окна &automanag;, вызовите контекстное меню групп в нижней части и выберите <guimenuitem
>Добавить существующие файлы...</guimenuitem
>. </para>
      </formalpara>
    </listitem>

    <listitem>
      <formalpara id="nutshell-del-project-file">
      <title
>Удаление файла из проекта</title>

      <para
>Выберите подпроект в верхней части окна &automanag;, вызовите контекстное меню групп в нижней части и выберите <guimenuitem
>Удалить</guimenuitem
>. </para>
      </formalpara>
    </listitem>
  </itemizedlist>

<itemizedlist id="nutshellitem-compilemake">
  <title
>Ошибки компиляции/сборки</title>

  <listitem>
    <formalpara id="nutshell-builddirproblems">
    <!-- ### Change the following link once a more comprehensive sourcedir != builddir description is available. -->
    <title
><link linkend="defaultbuild-warning"
>Проект не собирается после переключения в/из цели по умолчанию</link
></title>
    <para
>Это проблема с механизмом &automake;/&autoconf;. Если подменю  <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Конфигурация сборки</guimenuitem
></menuchoice
>содержит три пункта:<guimenuitem
>default</guimenuitem
>, <guimenuitem
>optimized</guimenuitem
> и <guimenuitem
>debug</guimenuitem
>, переключитесь на default <emphasis
>или</emphasis
> на debug/optimized. </para>
    </formalpara>
    <itemizedlist>
      <listitem
><para
>Если вы выбрали default, сборка debug/optimzed производиться не будет. </para
></listitem>
      <listitem
><para
>Если вы выбрали debug/optimzed, сборка default производиться не будет.</para
></listitem>
     </itemizedlist>
  </listitem>

  <listitem>
    <formalpara id="nutshell-autoconf-problem">
    <title
>Ошибка <quote
>Wrong <command
>autoconf</command
> version</quote
> и т.д.</title>

    <para
>Есть несколько сообщений об ошибке относительно устаревших версий <application
>autoconf</application
> и т.д., приводящих к неправильной работе <command
>configure</command
>. Запустите <command
>autoreconf</command
> в каталоге с файлами <filename
>configure.in</filename
>. Эта команда попытается обновить информацию о файлах Сборочной системы &GNU;. Для подробностей см. <command
>man autoreconf</command
>. </para>
    </formalpara>
  </listitem>
</itemizedlist>

<itemizedlist id="nutshellitem-others">
<title
>Другие темы</title>
  <listitem>
    <formalpara id="nutshell-others-files">
    <title
><link linkend="app-files"
>Конфигурационные файлы, используемые в &kdevelop;</link
></title>
    <para
>В большинстве случаев, это не понадобится, но всё это может быть полезным если с программой что-то не так. </para>
    </formalpara>
  </listitem>
</itemizedlist>

</chapter
> <!-- nutshell -->

<!-- ====================================================================== -->
<!-- External Chapters -->
&unixdev;            <!-- "Development on &UNIX;"                           -->
&kdevelop-install;   <!-- "Installing &kdevelop;"                           -->
&getting-started;    <!-- "Getting Started"                                 -->
&kdevelop-survey;    <!-- "Overview of &kdevelop; Features"                 -->
&setup;              <!-- "Configuring &kdevelop;"                          -->
&kdevelop-scripting; <!-- "Scripting &kdevelop;"                            -->
<!-- ### This chapter will be removed soon: -->
&applicationwizard;  <!-- "Getting Started &mdash; the &appwizard;"         -->
&project-advanced;   <!-- "Advanced Project Management"                     -->

<!-- ====================================================================== -->

<chapter id="editing">
<title
>Средства редактирования</title>

<sect1 id="editing-snippets">
<title
>Заготовки кода</title>

<itemizedlist>
  <title
>Обзор возможностей</title>
  <listitem
><para
>SnippetPart добавляет новое отображение справа </para
></listitem>
  <listitem
><para
>Добавление, изменение и удаление заготовок доступно через контекстное меню </para
></listitem>
  <listitem
><para
>Двойной щелчок по заготовке вставит её в текущую позицию курсора </para
></listitem>
  <listitem
><para
>Содержание заготовок отображается в подсказках </para
></listitem>
  <listitem
><para
>Заготовки кода хранятся в домашнем каталоге пользователя, поэтому каждый пользователь может иметь свой набор заготовок. </para
></listitem>
  <listitem
><para
>Они могут содержать переменные в виде $VARNAME$. Перед использованием заготовок с переменными, будет предложено ввести их значение </para
></listitem>
</itemizedlist>
</sect1
> <!-- editing-snippets -->

<sect1 id="keyboardmapping">
<title
>Комбинации клавиш</title>
<indexterm zone="keyboardmapping"
><primary
>комбинации клавиш</primary
></indexterm>

<para
>Далее следует список стандартных комбинаций клавиш редактора. </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry
><para
><keycap
>Стрелка влево </keycap
></para
></entry>
<entry
><para
>Переместиться на один символ влево </para
></entry
></row>

<row
><entry
><para
><keycap
>Стрелка вправо </keycap
></para
></entry>
<entry
><para
>Переместиться на один символ вправо </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Стрелка влево </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться на одно слово влево </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Стрелка вправо </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться на одно слово вправо </para
></entry
></row>

<row
><entry
><para
><keycap
>Стрелка вверх </keycap
></para
></entry>
<entry
><para
>Переместиться на одну строку вверх </para
></entry
></row>

<row
><entry
><para
><keycap
>Стрелка вниз </keycap
></para
></entry>
<entry
><para
>Переместиться на одну строку вниз </para
></entry
></row>

<row
><entry
><para
><keycap
>PgUp </keycap
></para
></entry>
<entry
><para
>Переместиться на одну страницу вверх </para
></entry
></row>

<row
><entry
><para
><keycap
>PgDn </keycap
></para
></entry>
<entry
><para
>Переместиться на одну страницу вниз </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> PgUp </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться в начало файла </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> PgDn </keycap
></keycombo
></para
></entry>
<entry
><para
>Переместиться в конец файла </para
></entry
></row>

<row
><entry
><para
><keycap
>Home </keycap
></para
></entry>
<entry
><para
>Переместиться в начало строки </para
></entry
></row>

<row
><entry
><para
><keycap
>End </keycap
></para
></entry>
<entry
><para
>Переместиться в конец строки </para
></entry
></row>

</tbody>
</tgroup>
</informaltable>

<para
>Если к приведённым выше комбинациям клавиш добавить <keycap
>Shift</keycap
>, при перемещении курсора будет также выделяться текст, через который курсор проходит при перемещении. </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry
><para
><keycap
>Backspace </keycap
></para
></entry>
<entry
><para
>Удалить один символ слева </para
></entry
></row>

<row
><entry
><para
><keycap
>Delete </keycap
></para
></entry>
<entry
><para
>Удалить один символ справа (под курсором) </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> C </keycap
></keycombo
></para
></entry>
<entry
><para
>Копировать выделенный текст в буфер обмена </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> V </keycap
></keycombo
></para
></entry>
<entry
><para
>Вставить выделенный текст из буфера обмена </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> X </keycap
></keycombo
></para
></entry>
<entry
><para
>Копировать выделенный текст в буфер обмена и затем удалить его </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Отменить последнее действие </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Shift </keycap
><keycap
> Ctrl </keycap
><keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Повторить последнее отменённое действие </para
></entry
></row>

</tbody>
</tgroup>
</informaltable>

</sect1
> <!-- keyboardmapping -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="editing-reporter">
<title
>Отчёт об ошибках</title>

<para
>(... в процессе написания ...) </para>
</sect1
> <!-- editing-reporter -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="searchinggrepping">
<title
>Поиск в текущем документе и файлах</title>
<indexterm zone="searchinggrepping"
><primary
>поиск</primary
></indexterm>
<indexterm zone="searchinggrepping"
><primary
>нахождение</primary
></indexterm>

<sect2 id="searching">
<title
>Поиск текста</title>

<para
><keycombo
><keycap
>Ctrl</keycap
><keycap
>F</keycap
></keycombo
> &mdash; найти <keycombo
><keycap
>Ctrl</keycap
><keycap
>R</keycap
></keycombo
> &mdash; найти и заменить </para>

</sect2
> <!-- searching -->


<sect2 id="isearch">
<title
>ISearch</title>
<indexterm zone="isearch"
><primary
>поиск по мере набора</primary
></indexterm>
<indexterm zone="isearch"
><primary
>поиск по мере набора</primary
></indexterm>
<indexterm zone="isearch"
><primary
>поиск</primary
><secondary
>по мере набора</secondary
></indexterm>

<para
>Традиционный поиск через <menuchoice
><guimenu
>Правка</guimenu
> <guimenuitem
>Найти</guimenuitem
></menuchoice
> требует указания искомого отрывка текста полностью. Однако значительно быстрее искать текст поиском по мере набора: нажмите кнопку <guilabel
>ISearch</guilabel
> на панели инструментов и начинайте вводить искомый текст. По мере того, как вы будете вводить новые буквы, каждый раз будет выполняться поиск набираемого слова. Обычно искомое место в документе находится уже после ввода 3-4 букв. </para>

</sect2
> <!-- isearch -->


<sect2 id="grep">
<title
>Grep</title>
<indexterm zone="grep"
><primary
>поиск</primary
><secondary
>в файлах</secondary
></indexterm>

<para
>Оба описанных выше поиска ограничены текущим файлом. Для поиска сразу в нескольких файлах, воспользуйтесь пунктом <guimenuitem
>Поиск в файлах...</guimenuitem
> меню <guimenu
>Правка</guimenu
>. При этом будет вызван графический интерфейс к команде &grep;(1). </para>

<para
>Здесь вы можете выбрать маску файлов, в которых будет производиться поиск, и другие средства по уменьшению количества сканируемых файлов. Кроме того, в этом диалоге вы можете указать каталог для поиска. Если вы включите флажок <guibutton
>Рекурсивно</guibutton
>, поиск продолжится и во всех вложенных каталогах. </para>

<para
>Обычно условие поиска представляет собой регулярное выражение с синтаксисом стандарта POSIX. Например, вы можете использовать условие <literal
>"\&lt;K.*"</literal
> если хотите найти все слова, начинающиеся с буквы K. Следующие символы являются служебными: </para>

<informaltable>
<tgroup cols="2">
<tbody>

<row
><entry>
  <literal
>.</literal>
</entry
><entry
>Любой символ </entry
></row>
<row
><entry>
  <literal
>^</literal>
</entry
><entry
>Начало строки </entry
></row>
<row
><entry>
  <literal
>$</literal>
</entry
><entry
>Конец строки </entry
></row>
<row
><entry>
  <literal
>\&lt;</literal>
</entry
><entry
>Начало слова </entry
></row>
<row
><entry>
  <literal
>\&gt;</literal>
</entry
><entry
>Конец слова </entry
></row>
<row
><entry>
  <literal
>?</literal>
</entry
><entry
>Предшествующий элемент может совпадать меньше, чем один раз </entry
></row>
<row
><entry>
  <literal
>*</literal>
</entry
><entry
>Предшествующий элемент отсутствует или присутствует один или несколько раз </entry
></row>
<row
><entry>
  <literal
>+</literal>
</entry
><entry
>Предшествующий элемент присутствует один или более раз </entry
></row>
<row
><entry>
  <literal
>{n}</literal>
</entry
><entry
>Предшествующий элемент отсутствует или присутствует один или несколько раз </entry
></row>
<row
><entry>
  <literal
>{n,}</literal>
</entry
><entry
>Предшествующий элемент присутствует один или более раз </entry
></row>
<row
><entry>
  <literal
>{,n}</literal>
</entry
><entry
>Предшествующий элемент может совпадать меньше, чем один раз </entry
></row>
<row
><entry>
  <literal
>{n,m}</literal>
</entry
><entry
>Предшествующий элемент присутствует больше <literal
>n</literal
> но меньше <literal
>m</literal
> раз </entry
></row>

</tbody>
</tgroup>
</informaltable>

<para
>Обратное отношение к подвыражениям в скобках также доступно через нотацию <literal
>\n</literal
>. </para>

<para
>Для программирующих на C++ есть специфические шаблоны. Например, для поиска всех вызовов всех элементарных функций определённого объекта. </para>

<para
>После запуска поиска, но будет производится внешним, асинхронным процессом. Все найденные элементы будут отображены в виде <guilabel
>Grep</guilabel
>. Чтобы перейти к просмотру файла, щёлкните на нём. Помните, что файлы сортируются по их физическому расположению. Если найденный файл уже открыт в редакторе (и изменён), могут быть несоответствия в номерах строки. Для предотвращения этого сохраняйте все файлы перед поиском. </para>

</sect2
> <!-- grep -->

</sect1
> <!-- searchinggrepping -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="code-completion">
<title
>Завершение кода</title>

<para
>(... в процессе написания ...) </para>
</sect1
> <!-- code-completion -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="newfiles">
<title
>Создание новых файлов и классов</title>

<para
>(... в процессе написания ...) </para>

<sect2 id="newfiles-edittemplates">
<title
>Изменение шаблонов</title>

<para
>(... в процессе написания ...) </para>
</sect2
> <!-- newfiles-edittemplates -->

</sect1
> <!-- newfiles -->

</chapter
> <!-- editing -->

<!-- ====================================================================== -->

<chapter id="file-browsers">
<title
>Обзор файлов</title>

<para
>В левой части главного окна &kdevelop; могут отображаться разнообразные списки и структуры файлов: </para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Дерево файлов</title>
<para
>Наглядное отображение иерархии файлов проекта. При щелчке на файле он будет открыт в редакторе. Не-текстовые файлы открываются в приложениях, сопоставленных с их MIME-типом. </para>
</formalpara>

<para
>Дерево файлов обновляется при каждом изменении файловой системы (в пределах каталога проекта). Например, если вы создадите новый файл или каталог (программой отличной от &kdevelop;), это отразится на списке. На операционных системах, отличных от Linux, или на файловой системе NFS, каталоги обновляются через некоторые промежутки времени. </para>

<para
>Файлы, не представляющие интереса, не отображаются. Однако в диалоговом окне <guimenuitem
>Параметры проекта</guimenuitem
>-<guibutton
>Дерево файлов</guibutton
> вы можете изменить это указанием своих масок файлов для фильтрования (разделяя их запятыми). </para>

<para
>Более того, вы можете ограничить отображаемые файлы только принадлежащими к текущему проекту. Для этого воспользуйтесь контекстным меню корневого элемента дерева файлов. </para>

<figure id="screenshot-filetree" float="1">
<title
>Снимок экрана дерева файлов</title>
<mediaobject>
<imageobject
><imagedata fileref="filetree.png"/></imageobject>
</mediaobject>
</figure>

</listitem>

<listitem>
<formalpara>
<title
>Файловые категории</title>
<para
>Здесь отображаются файлы проекта, сгруппированные по расширению. При щелчке на файле он будет открыт в редакторе.  </para>
</formalpara>

<para
>Категории файлов, отображаемые в <guibutton
>Дереве файлов</guibutton
>, можно настроить в <guimenuitem
>настройках проекта</guimenuitem
>. Сканируя каталог, &kdevelop; ищет категорию, к которой подходит текущий файл, а найдя такую, поиск останавливается. Т.е. в конце списка должны быть категории с наиболее общими масками, а в начале &mdash; с более специфическими. Например, звёздочка должны быть в конце. </para>

</listitem>

</itemizedlist>

</chapter
> <!-- file-browsers -->

<!-- ====================================================================== -->

<chapter id="class-browsers">
<title
>Обзор классов</title>
<indexterm zone="class-browsers"
><primary
>обзор классов</primary
></indexterm>

<para
>При разработке объектно-ориентированного приложения ваше внимание концентрируется не на исходных файлах, а на классах и их отношениях. Чтобы помочь вам перемещаться по определённым классам и идентификаторам, &kdevelop; предоставляет различные обозреватели классов, наглядно представляющие структуру классов разными способами. </para>

<sect1 id="classview">
<title
>Обзор классов</title>

<para
>В левой части рабочей области расположен список классов, переменных и функций вашего проекта. Они представляются в виде дерева. При щелчке на классе, отдельной его веткой отобразится список всех его методов и атрибутов. </para>

<figure id="screenshot-classview" float="1">
<title
>Снимок экрана с обзором классов</title>
<mediaobject>
<imageobject
><imagedata fileref="classview.png"/></imageobject>
</mediaobject>
</figure>

<para
>Обзор классов может работать в двух режимах. По умолчанию, все идентификаторы сгруппированы по <quote
>классам</quote
>, <quote
>структурам</quote
>, <quote
>функциям</quote
>, <quote
>переменным</quote
> и <quote
>пространствам имён</quote
>. В контекстном меню вы можете выбрать <guimenuitem
>сортировку по пространствам имён</guimenuitem
>. В этом режиме отображается иерархия пространств имён и идентификаторы сгруппированы в соответствии пространству имён, в котором они определены. Это может быть более полезным в проектах, широко использующих пространства имён. </para>

<para
>Через контекстное меню вы также можете изменить метод отображения имён классов, чтобы они отображались с пространством имён, в котором они определены. Это поможет различить вам одноимённые классы из разных пространств. Если вы в обычном режиме задержите мышь на имени класса, в подсказке будет отображено полное имя класса. </para>

<para
>Щелчок на классе или методе приведёт к переходу к его определению. Вы также можете перейти к декларации метода через контекстное меню. В том же меню пункты <guimenuitem
>Добавить метод...</guimenuitem
> и <guimenuitem
>Добавить атрибут...</guimenuitem
> приводят к открытию диалогов, где вы сможете создать новые методы и переменные, в соответствующем классе. </para>

</sect1
> <!-- classview -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="classtools">
<title
>Инструментарий классов</title>

<para
>Диалог классов открывается по правому щелчку по классу в окне обозревателя классов и выбору пункта <guimenuitem
>Классовый инструментарий...</guimenuitem
>. </para>

</sect1
> <!-- classtools -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="classhierarchy">
<title
>Иерархия классов</title>

<para
>(... в процессе написания ...) </para>

</sect1
> <!-- classhierarchy -->

</chapter
> <!-- class-browsers -->

<!-- ====================================================================== -->

<chapter id="documentation">
<title
>Документирование</title>

<para
>К несчастью, написание документации часто бывает сложнее написания кода. Но продуманно организованная и понятно написанная, она оказывает значительную помощь в разработке, позволяющую не обращаться лишний раз за советом на форумы, или, что ещё лучше, к автору. </para>
<para
>Документирование имеет несколько граней. Это <itemizedlist>
  <listitem
><para
><emphasis
>внутренняя документация проекта</emphasis
>, состоящая в основном из <itemizedlist>
    <listitem
><para
><emphasis
>комментариев</emphasis
> в исходных файлах </para
></listitem>
    <listitem
><para
><emphasis
>внутренняя документация API</emphasis
>, генерируемая специальными инструментами, такими как &doxygen; </para
></listitem>
  </itemizedlist>
  </para
></listitem>
  <listitem
><para
><emphasis
>внешняя документация проекта</emphasis
> <itemizedlist>
    <listitem
><para
><emphasis
>внешняя документация API</emphasis
>, например по функциям библиотек (<application
>KDE</application
>, <application
>Qt</application
> и т.д.) </para
></listitem>
    <listitem
><para
>другая документация (по языкам программирования, статьи HOWTO, общая системная информация) </para
></listitem>
  </itemizedlist>
  </para
></listitem>
</itemizedlist>
</para>
<para
>Вся указанная документация должна быть удобна и легко доступна, когда она понадобится. &kdevelop; предлагает гибкое решение для этого. </para>

<!-- ### doc browser, notes on internal documentation, how to profit from Doxygen -->

<sect1 id="docbrowser">
<title
>Обзор документации</title>


<figure id="screenshot-doctreeview" float="1">
<title
>Снимок экрана структуры документации</title>
<mediaobject>
<imageobject
><imagedata fileref="doctreeview.png"/></imageobject>
</mediaobject>
</figure>

</sect1
> <!-- docbrowser -->

</chapter
> <!-- documentation -->

<!-- ====================================================================== -->

&project-management; <!-- "Building and Project Management"                 -->

<!-- ====================================================================== -->

<chapter id="adv-build-management">
<title
>Расширенное использование менеджера проектов</title>
<indexterm zone="adv-build-management"
><primary
>&automake;</primary
></indexterm>

<sect1 id="buildconfigurations">
<title
>Несколько конфигураций сборки</title>
<indexterm zone="buildconfigurations"
><primary
>конфигурации сборки</primary
><secondary
>несколько</secondary
></indexterm>

<para
>(... в процессе написания ...) </para>

</sect1
> <!-- buildconfigurations -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="crosscompiling">
<title
>Кросс-платформенное компилирование</title>
<indexterm zone="crosscompiling"
><primary
>кросс-платформенное компилирование</primary
></indexterm>
<indexterm zone="crosscompiling"
><primary
>сборка, компиляция</primary
><secondary
>кросс-платформенное</secondary
></indexterm>
<indexterm zone="crosscompiling"
><primary
><option
>--host</option
></primary
></indexterm>

<para
>Если у вас есть кросс-платформенные компиляторы, вы можете компилировать программы под процессоры и операционные системы, отличные от текущей. Коллекция компиляторов &GNU; GCC может также быть собрана с поддержкой кросс-платформенности. Для подробностей см. <ulink url="info://gcc/Cross-Compiler"
>info-страницы GCC</ulink
>. Некоторые дистрибутивы Linux также предоставляют уже собранные кросс-платформенные версии компиляторов. </para>

<para
>Пакеты, основанные на automake можно сделать кросс-платформенными указанием ключа <option
>--host</option
> сценарию configure и установкой переменных окружения <envar
>CC</envar
> и <envar
>CXX</envar
>. В &kdevelop; есть возможность создания нескольких конфигураций сборки. Для подробностей см. <xref linkend="buildconfigurations"/>. После того, как вы создали новую конфигурацию сборки через диалог <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Параметры проекта...</guimenuitem
></menuchoice
>, добавьте ключ </para>

<para
><screen
><option
>--host=</option
><replaceable
>платформа</replaceable
>
</screen
></para>

<para
>в опции configure. <replaceable
>Платформа</replaceable
> указывается в виде </para>

<programlisting
>процессор-поставщик-ОС</programlisting>
<para
>или</para>
<programlisting
>процессор-поставщик-ядро-ОС</programlisting>

<para
>Кроем, того вы можете использовать краткую форму, например <wordasword
>i386-linux</wordasword
> или <wordasword
>arm-elf</wordasword
>. </para>

</sect1
> <!-- crosscompiling -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="qtembedded">
<title
>Qt/Embedded</title>
<indexterm zone="qtembedded"
><primary
>embedded</primary
><secondary
>Qt</secondary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qt/Embedded</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qtopia</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>framebuffer</primary
></indexterm>

<para
>&qte; &mdash; это версия библиотеки &Qt;, которая не использует X Window, а прорисовывает графику напрямую на framebuffer системы Linux. Это полезно для встраиваемых систем с ограничениями по использованию памяти. API этой библиотеки полностью совместимо с библиотекой для X11. </para>

<para
>Разработка приложения для &qte; в &kdevelop; не очень отличается от разработки под &Qt; для X11. На самом деле, вы даже можете использовать одну кодовую базу для обоих версий. Если вы используете менеджер autoproject, вы можете переключиться на версию embedded передачей ключа <option
>--enable-embedded</option
> скрипту configure. Это можно сделать в диалоге <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Параметры проекта...</guimenuitem
></menuchoice
> в разделе <guilabel
>Параметры configure</guilabel
>. Ключом <option
>--with-qt-dir=DIR</option
> можно указать каталог, в котором установлен &qte;. </para>

<para
>После конфигурации и сборки вашего приложения с этими ключами, оно будет использовать библиотеку <filename
>libqpe.so</filename
>. Его нельзя будет запустить совместно с X11. Чтобы протестировать его, запустите его из программы <application
>qvfb</application
> (Qt Virtual Frame Buffer). </para>

<para
><screen
><command>
app <option
>-qws</option
> <option
>-display QVFb:0</option>
</command
></screen
></para>

<para
>В можете создать несколько сборочных конфигураций, как описано выше. </para>

<para
>Приложения для &qte; обычно выполняются как отдельные команды на устройстве, для которого они сделаны. Trolltech также поддерживает Qtopia, коллекцию приложений для PIM, обзора web, и других направлений, работающих вместе. Это стандартное окружение, например, на КПК Sharp Zaurus. Вы можете писать приложения, интегрированные в это окружение, используя Qtopia SDK. Это достигается созданием основного класса вашего приложения подклассом <classname
>QPEApplication</classname
> и сборкой с подключением  библиотеки <filename
>libqpe.so</filename
>. Если вы разрабатываете ваше приложение используя менеджер autoproject, вам нужно добавить ключ <option
>--enable-qtopia</option
> в опции configure. </para>

</sect1
> <!-- qtembedded -->

</chapter
> <!-- adv-build-management -->

<!-- ====================================================================== -->

<chapter id="debugger">
<title
>Интерфейс отладчика</title>
<indexterm zone="debugger"
><primary
>отладчик</primary
></indexterm>

<para
>Для C и C++ &kdevelop; содержит встроенный отладчик, интегрированный с редактором. Технически это реализовано как внешний интерфейс для отладчика &GNU; <application
>gdb</application
> через каналы (pipe). Отладчик можно запустить несколькими способами: </para>

<itemizedlist>
<listitem>
<para
>Через пункт меню <menuchoice
><guimenu
>Отладка</guimenu
><guimenuitem
>Запуск</guimenuitem
></menuchoice
>, после чего в отладчик загрузится главная программа вашего проекта. </para>
</listitem>

<listitem>
<para
>Через пункт меню <menuchoice
><guimenu
>Отладка</guimenu
> <guimenuitem
>Запуск другого</guimenuitem
> <guimenuitem
>Загрузить файл core</guimenuitem
></menuchoice
> загрузится core-файл, генерируемый ядром системы после сбоя программы (это может быть выключено в вашей системе, см. <application
>ulimit(1)</application
>). Эта отладка полезна для анализа сбоев программы. </para>
</listitem>

<listitem>
<para
>Через пункт меню <menuchoice
><guimenu
>Отладка</guimenu
> <guimenuitem
>Запуск другого</guimenuitem
> <guimenuitem
>Присоединить к процессу</guimenuitem
></menuchoice
> отладчик подстроится к уже запущенной программе. Вам нужно будет выбрать её из списка запущенных процессов. </para>
</listitem>

<listitem>
<para
>Помните, что отладка возможна только если программа была скомпилирована с информацией для отладки. Это можно установить в диалоге <guibutton
>Параметры компилятора</guibutton
>. Информация для отладки помогает найти соответствие между именами файлов, строчками и адресами в программе. </para>
</listitem>
</itemizedlist>

<para
>Отладчик предлагает несколько видов информации о процессе: </para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Переменные</title>
<indexterm zone="debugger"
><primary
>наблюдать переменные</primary
></indexterm>
<para
>Окно содержит список значений всех локальных переменных на текущей точке выполнения. </para>
</formalpara>

<para
>Можно наблюдать как локальные, так и глобальные переменные. Добавить переменную можно либо нажатием кнопки <guibutton
>Добавить</guibutton
>, либо нажатием клавиши <keycap
>Enter</keycap
> на выбранном пункте <guilabel
>Наблюдение</guilabel
>. Удалить их можно через контекстное меню. </para>
</listitem>

<listitem>
<formalpara>
<title
>Точки останова</title>
<indexterm zone="debugger"
><primary
>точки останова</primary
></indexterm>
<para
>(... в процессе написания ...) </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Фреймовый стек</title>
<indexterm zone="debugger"
><primary
>фреймовый стек</primary
></indexterm>
<para
>(... в процессе написания ...) </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Дизассемблирование</title>
<indexterm zone="debugger"
><primary
>дизассемблирование</primary
></indexterm>
<para
>(... в процессе написания ...) </para>
</formalpara>
</listitem>

</itemizedlist>


<sect1 id="settingbreakpoints">
<title
>Установка точек останова</title>

<para
>(... в процессе написания ...) </para>

</sect1
> <!-- settingbreakpoints -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id ="debuggeroptions">
<title
>Параметры</title>

<formalpara>
<title
>Отобразить обработанные имена</title>
<indexterm zone="debugger"
><primary
>обработка имён</primary
></indexterm>
<indexterm zone="debugger"
><primary
>mangle</primary
><secondary
>имя</secondary
></indexterm>

<para
>В программе, написанной на C++, имена функций изменяются (<quote
>mangled</quote
>), то есть к начальному имени функции добавляется информация о типах аргументов, которые она принимает. Это необходимо для перегрузки (overload) функций. Алгоритм такой обработки не стандартизован и имеет различные реализации даже в разных версиях компилятора &GNU; C++. </para>
</formalpara>

<para
>В окне дизассемблирования отображаются не изменённые имена, однако это можно изменить. </para>

<formalpara>
<title
>Попробуйте установку точек останова по загрузке библиотеки</title>
<indexterm zone="debugger"
><primary
>"ленивые" точки останова</primary
></indexterm>
<indexterm zone="debugger"
><primary
>точки останова</primary
><secondary
>lazy</secondary
></indexterm>

<para
>Отладчик <application
>gdb</application
> не разрешает устанавливать точки останова в коде, не загруженном в данный момент. В приложении с модульной структурой, где код загружается только по требованию (через функцию libc <function
>dlopen(3)</function
>). Возможность установки точек останова в библиотеках предоставляет &kdevelop;. Таким образом, точки останова ставятся в своеобразную очередь и передаются <application
>gdb</application
> только после загрузки необходимой библиотеки. </para>
</formalpara>

<formalpara>
<title
>Включить плавающую панель</title>
<indexterm zone="debugger"
><primary
>панель инструментов отладчика</primary
></indexterm>
<indexterm zone="debugger"
><primary
>панель инструментов</primary
><secondary
>отладчик</secondary
></indexterm>

<para
>(... в процессе написания ...) </para>
</formalpara>

</sect1
> <!-- debuggeroptions -->

</chapter
> <!-- debugger -->

<!-- ====================================================================== -->
<!-- ### Questionable, probably not IDE-specific enough. Check later again.
<chapter id="python">
<title
>Python</title>

<para
>...
</para>

</chapter
> --> <!-- python -->

<!-- ====================================================================== -->
<!-- ### Questionable, probably not IDE-specific enough. Check later again.
<chapter id="php">
<title
>PHP</title>

<para
>...
</para>
</chapter
> --> <!-- php -->

<!-- ====================================================================== -->

<chapter id="cvs">
<title
>Использование CVS</title>
<indexterm zone="cvs"
><primary
>CVS</primary
></indexterm>
<indexterm zone="cvs"
><primary
>контроль версий</primary
></indexterm>

<sect1 id="cvs-basics">
<title
>Основы &CVS;</title>

<para
>&CVS; &mdash; это система контроля версий, используемая большинством проектов с открытым исходным кодом, в т.ч. и &kde;. Она хранит весь исходный код в одном месте, называемом <emphasis
>репозиторием</emphasis
> (хранилищем). С помощью такого хранилища каждый может получить снимок исходного кода на определённый момент времени (и не обязательно на текущий). В отличии от других систем контроля версий, при работе над файлом разработчику не нужно его <emphasis
>блокировать</emphasis
>, что расширяет возможности параллельной разработки. </para>

<para
>После выполнения задачи разработчик <emphasis
>загружает</emphasis
> (<emphasis
>commit</emphasis
>) изменённые файлы в хранилище (со списком изменений). &CVS; может объединять изменения в одном файле, сделанные несколькими людьми. Конечно, может случиться так, что разработчики работали над одной и той же частью файла, что приведёт к конфликту (на практике такое случается редко и является результатом недостаточного обсуждения процесса разработки). В таком случае &CVS; отказывается принять конфликтный файл и разработчику придётся устранять конфликт самостоятельно. </para>

<para
>&CVS; может намного больше, например, вести несколько веток (branch) разработки (например &kde; 3.1.4 и &kde; 3.2 были разными ветками дерева разработки &kde;), перемещать изменения из одной ветки в другую, выводить различия между разными версиями файла, выводить историю изменений файла и т.д. </para>

<para
>&CVS; реализован как система клиент-сервер. Со стороны пользователя связь с хранилищем идёт через консольную программу &cvs;. Однако доступно также большое количество графических интерфейсов к ней, например <application
>Cervisia</application
> (<ulink url="http://cervisia.sf.net"
></ulink
>) или <application
>TkCVS</application
> (<ulink url="http://tkcvs.sf.net"
></ulink
>). В &kdevelop; напрямую доступна лишь небольшая часть функциональности &cvs;, необходимая для каждодневной работы. </para>

<para
>Вам потребуется знание основ использования &CVS;, в частности, вы должны знать как загружать (checkout) проект из хранилища. Мы рекомендуем прочитать книгу <ulink url="http://cvsbook.red-bean.com/cvsbook.html"
>Open Source Development With CVS</ulink
>, написанную Карлом Фогелем (Karl Fogel), распространяемую бесплатно (кроме нетехнических глав). Кроме того, вы можете прочитать о &CVS; по-русски на сайте <ulink url="http://www.linux.org.ru/books/GNU/cvs_ru/"
>linux.org.ru</ulink
> </para>

</sect1
> <!-- cvs-basics -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="cvs-commands">
<title
>Команды &CVS; в &kdevelop;</title>

<para
>В обзоре файлов доступны такие пункты контекстного меню: </para>

<itemizedlist>

<listitem>
<formalpara>
<title
>Добавить в хранилище</title>
<para
>Подготавливает отмеченные файлы к передаче их в хранилище. </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Удалить из хранилища</title>
<para
>Подготавливает отмеченный файл к удалению из хранилища. При этом файл также удаляется на локальной файловой системе. </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Обновить</title>
<para
>Выполняет команду <command
>cvs update</command
> для объединения изменений, сделанных другими пользователями. Если вы вызываете эту команду для каталога, обновление происходит рекурсивно, если только вы не отключили это в конфигурационном файле <filename
>.cvsrc</filename
>. </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Передать на сервер</title>
<para
>Выполняет команду <command
>cvs commit</command
> для передачи изменений, сделанных вами в хранилище. Помните, что перед этим необходимо выполнить обновление. Иначе, если другой пользователь уже передал свои изменения до этого, может возникнуть конфликт. </para>
</formalpara>
</listitem>

</itemizedlist>

<para
>Все эти команды запускаются как подпроцесс &kdevelop; без дополнительных ключей или переменных окружения. Это создаёт проблемы, например, когда вы работаете через соединение &ssh;, и вам нужно ввести пароль. Это необходимо, например, при работе с <filename
>sourceforge.net</filename
>. Работа над этой проблемой описана в FAQ CVS/SSH, который можно найти в разделе документации проекта SourceForge. </para>

</sect1
> <!-- cvs-basics -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="cvs-behind">
<title
>За кулисами</title>

<sect2 id="cvs-behind-workdir">
<title
>Что &CVS; записывает в рабочем каталоге</title>

<para
>(... в процессе написания ...) </para>
</sect2
> <!-- cvs-behind-workdir -->

</sect1
> <!-- cvs-behind -->

</chapter
> <!-- cvs -->

<!-- ====================================================================== -->

<chapter id="external-progs">
<title
>Запуск внешних программ</title>
<indexterm zone="external-progs"
><primary
>программы</primary
><secondary
>внешние</secondary
></indexterm>

<para
>Несмотря на то, что &kdevelop; является т.н. <quote
>интегрированной</quote
> средой разработки, она никогда не будет содержать все возможности, которые возможно вам потребуются. В &kdevelop; есть несколько возможностей запустить внешнее приложение, подключить его к работе с файлами, или использовать внешние фильтры для обработки содержимого окна редактирования. </para>

<para
>Наиболее общая и простая возможность &mdash; использовать меню Сервис, которое вы с лёгкостью можете настраивать. Это можно сделать через пункт меню <menuchoice
><guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KDevelop...</guimenuitem
></menuchoice
> <guibutton
>Внешние инструменты</guibutton
>. </para>

<para
>Другие средства обсуждаются в главе <xref linkend="plugin-tools"/>. </para>

</chapter
> <!-- external-progs -->


<!-- ====================================================================== -->

<chapter id="credits">
<title
>Благодарности</title>

<sect1 id="credits-contributions">
<title
>Авторы и переводчики</title>

<para>
<itemizedlist>
  <listitem
><para
>Первое издание этого руководства подготовлено Берндом Гехрманном (Bernd Gehrmann) <email
>bernd@kdevelop.org</email
> и Калебом Теннисом (Caleb Tennis) <email
>caleb@aei-tech.com</email
>. </para
></listitem>
  <listitem
><para
>Главы <link linkend="automake-manager-summary"
>Краткое описание &automanag;</link
> и <link linkend="automake-manager-operation"
>Использование менеджера Automake</link
> написаны Йеном Вадхамом (Ian Wadham), <email
>ianw@netspace.net.au</email
>. </para
></listitem
><listitem
><para
>Перевод руководства на русский язык осуществил Николай Шафоростов, <email
>shaforostoff@users.sourceforge.net</email
>, домашняя страничка &mdash; <ulink url="http://program.net.ua"
></ulink
>. Замечания и дополнения приветствуются. </para
></listitem>
</itemizedlist>
</para>

</sect1
> <!-- credits-contributions -->

<!--CREDITS_FOR_TRANSLATORS-->

</chapter
> <!-- credits -->

<!-- ====================================================================== -->

&app-menu; <!-- Menus and Toolbars Overview -->

<!-- ====================================================================== -->

<appendix id="app-shortcuts">
<title
>Комбинации клавиш</title>

<para
>(... в процессе написания ...) </para>

</appendix
> <!-- app-shortcuts -->

<!-- ====================================================================== -->

&app-files; <!-- Configuration Files Used by &kdevelop; -->

<!-- ====================================================================== -->

<appendix id="plugin-tools">
<title
>Подключаемый инструментарий</title>

<indexterm zone="plugin-tools">
  <primary
>модули</primary
></indexterm>

<para
>&kdevelop; содержит большое количество небольших инструментов, помогающих вам быстрее выполнить определённую задачу. Большинство из них реализованы в виде модулей. Это значит, что если они вам не нужны, вы можете их отключить в диалоге <guimenuitem
>Параметры проекта</guimenuitem
> из меню <guibutton
>Модули</guibutton
> (для модулей в рамках проекта) или через <menuchoice
><guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KDevelop...</guimenuitem
></menuchoice
>. Выключенные модули не отображаются в меню и не занимают память. </para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Модуль <command
>abbrev</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>abbrev</command
></primary
></indexterm>

<para
>Этот модуль заменяет сокращения на часто используемые части кода. Он активируется нажатием <keycombo
><keycap
>Ctrl</keycap
> <keycap
>Пробел</keycap
></keycombo
>. Например, вы ввели <literal
>"ife"</literal
> в редактор языка C++. Теперь нажмите <keycombo
><keycap
>Ctrl</keycap
><keycap
>Пробел</keycap
></keycombo
>, и вы получите шаблон кода <literal
>if-else</literal
>. Набор поддерживаемых сокращений зависит от языка программирования. Например, для PHP вам вряд ли будут интересны сокращения кода для &Java;. </para>
</formalpara>

<para
>Набор сокращений можно настраивать. <menuchoice
><guimenu
>Настройка</guimenu
> <guimenuitem
>Настроить KDevelop...</guimenuitem
></menuchoice
>, вкладка <guibutton
>Сокращения</guibutton
> </para>
</listitem>

<listitem>
<formalpara>
<title
>Модуль <command
>filter</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>filter</command
></primary
></indexterm>

<para
>Предоставляет две функции. <menuchoice
><guimenu
>Сервис</guimenu
> <guimenuitem
>Выполнить команду</guimenuitem
></menuchoice
> позволяет ввести команду оболочки. После нажатия на кнопке <guibutton
>Запуск</guibutton
> вывод команды будет помещён в буфер обмена. </para>
</formalpara>

<para
><menuchoice
><guimenu
>Сервис</guimenu
><guimenuitem
>Фильтровать выделение через команду...</guimenuitem
></menuchoice
>. Для использования этого инструмента нужно выделить текст в редакторе. Если вы теперь выполните команду оболочки, то после нажатия на кнопке <guibutton
>Запуск</guibutton
>, выделенный текст будет передан команде через стандартный ввод. В свою очередь, стандартный вывод будет вставлен вместо выделения. </para>
</listitem>

<listitem>
<formalpara>
<title
>Модуль &doxygen;</title>
<indexterm zone="plugin-tools"
><primary
>&doxygen;</primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>средство документирования</primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>API-документация</primary
></indexterm>

<para
>Упрощает использования средства API-документирования &doxygen; (<ulink url="http://www.doxygen.org"
></ulink
>). <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Запустить Doxygen</guimenuitem
></menuchoice
> приведёт к генерированию API-документации к текущему проекту, основываясь на конфигурационном файле <filename
>Doxyfile</filename
> в каталоге проекта. </para>
</formalpara>

<para
>Более того, вы можете настроить &doxygen; через диалог <menuchoice
><guimenu
>Проект</guimenu
> <guimenuitem
>Параметры проекта...</guimenuitem
></menuchoice
>. Он подобен мастеру &doxywizard;. </para>
</listitem>

<listitem>
<formalpara>
<title
>Модуль &ctags;</title>
<indexterm zone="plugin-tools"
><primary
>&ctags;</primary
></indexterm>

<para
>Этот инструмент является расширением обозревателя классов, основанным на программе ctags, и поддерживает больше языков программирования. </para>
</formalpara>

<para
>Активируйте модуль через меню <menuchoice
><guimenu
>Сервис</guimenu
> <guimenuitem
>CTags...</guimenuitem
></menuchoice
>. При первом запуске, вам будет предложено создать базу данных поиска. При этом в каталоге проекта будет создан файл <filename
>tags</filename
>. Это текстовый файл со списком идентификаторов исходных файлов проекта. </para>

<para
>В такой базе данных вы можете выполнять поиск двумя способами: если <guilabel
>Совпадение с регулярным выражением</guilabel
> включено, вводимый вами текст будет интерпретироваться как регулярное выражение (стандарта POSIX) и сравниваться в существующими идентификаторами. Например, текст <literal
>.*Widget</literal
> приведёт к поиску всех идентификаторов, заканчивающихся на <literal
>Widget</literal
>. Иначе, поиск будет дословным. </para>

<para
>При поиске будет выводиться список подходящих идентификаторов, сопровождающийся номерами строк с их объявлениями. Чтобы перейти к объявлению, щёлкните на идентификаторе. </para>

<para
>Для некоторых языков программирования, &ctags; распознаёт разные типы идентификаторов. например, в Python есть классы и функции, и вы можете выборочно искать отдельно либо классы, либо функции. </para>

<para
>База данных не обновляется каждый раз при изменении исходников. Поэтому вам нужно самостоятельно периодично обновлять её с помощью кнопки <guibutton
>Обновить</guibutton
>. </para>
</listitem>

<listitem>
<formalpara>
<title
>Модуль  <command
>astyle</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>astyle</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
><application
>Оформление исходного кода</application
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>выставление отступов</primary
></indexterm>

<para
>(... в процессе написания ...) </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Модуль <command
>regexptest</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>regexptest</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>отладка</primary
><secondary
>регулярные выражения</secondary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>регулярные выражения</primary
><secondary
>отладка</secondary
></indexterm>

<para
>Составление регулярных выражений может быть долгой работой, обычно первая попытка поиска по введённому выражению выводит много результатов. Модуль regexptest позволяет вам напрямую отслеживать изменения в регулярном выражении. он активируется через <menuchoice
><guimenu
>Сервис</guimenu
> <guimenuitem
>Проверить регулярное выражение...</guimenuitem
></menuchoice
>. </para>
</formalpara>

<para
>Вы можете выбрать синтаксис регулярного выражения. На текущий момент поддерживается стандарт POSIX, используемый командой &grep;, и расширенный стандарт POSIX, используемый в команде &egrep;. </para>

<para
>При вводе регулярного выражения, вам сразу будет сообщаться об ошибках в нём. Введением текста в <guilabel
>Строка для проверки</guilabel
>, вы можете проверить, подходит ли текст введённому вами выражению. В частности, если регулярно выражение содержит группы, такие как <literal
>([a-z])</literal
>, содержание подходящих подгрупп будет отображено в списке. </para>
</listitem>

<listitem>
<formalpara>
<title
>Модуль <command
>konsole</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>konsole</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>терминал</primary
><secondary
>встроенный</secondary
></indexterm>

<para
>(... в процессе написания ...) </para>
</formalpara>
</listitem>

</itemizedlist>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="parts-survey">
<title
>Обзор</title>

<para
>&kdevelop; содержит модули расширения (компоненты), загружаемые во время выполнения по запросу. Это экономит процессорное время и оперативную память. </para>

<para
>Некоторые компоненты являются <link linkend="table-global-parts"
>глобальными</link
>, т.к. они задействованы в целом по &kdevelop;. Например, часть uimode позволяет разработчику выбирать желаемый режим интерфейсов. </para>

<para
>Кроме того есть компоненты <link linkend="table-project-parts"
>по управлению проектом</link
>, и они предназначены для конкретного типа проекта. Например, менеджер Automakefor загружается только при открытии проекта, основанного на Automake. </para>

<para
>В зависимости от предназначения активных (т.е. загруженных в данный момент) компонентов, они могут добавлять новые пункты меню, кнопки на панелях инструментов и т.д. </para>

<table id="table-project-parts">
<title
>Компоненты &kdevelop; для управления проектом</title>

<tgroup cols="2"
><tbody>
<row>
  <entry
>antproject</entry>
  <entry
>ANT (&Java;)</entry>
</row>
<row>
  <entry
>autoproject</entry>
  <entry
>Automake</entry>
</row>
<row>
  <entry
>customproject</entry>
  <entry
>Специальный проект</entry>
</row>
<row>
  <entry
>trollproject</entry>
  <entry
>Менеджер проектов, основанный на QMake</entry>
</row>
</tbody
></tgroup>
</table>

<table id="table-global-parts">
<title
>Глобальные компоненты &kdevelop;</title>

<tgroup cols="2"
><tbody>
<row
><entry
>Название компонента</entry
><entry
>Описание</entry
></row>
<row
><entry
>Мастер приложений</entry
><entry
>Мастер создания приложений</entry
></row>
<row
><entry
>журнал</entry
><entry
></entry
></row>
<row
><entry
>konsole</entry
><entry
>Встроенный эмулятор терминала</entry
></row>
<row
><entry
>Выбор редактора</entry
><entry
>Выбор встроенного редактора исходного кода</entry
></row>
<row
><entry
>doctreeview</entry
><entry
>Обозреватель документации</entry
></row>
<row
><entry
>openwith</entry
><entry
></entry
></row>
<row
><entry
>fileselector</entry
><entry
>Элемент выбора файлов</entry
></row>
<row
><entry
>uimode</entry
><entry
>Выбор режима интерфейса</entry
></row>
<row
><entry
>texttools</entry
><entry
>Дополнительные средства обработки текста</entry
></row>
<row
><entry
>tipofday</entry
><entry
>Совет дня</entry
></row>
<row
><entry
>grepview</entry
><entry
>Графический интерфейс grep</entry
></row>
<row
><entry
>cvs</entry
><entry
>Поддержка CVS</entry
></row>
<row
><entry
>tools</entry
><entry
></entry
></row>
<row
><entry
>regexptest</entry
><entry
>Тестирование регулярных выражений</entry
></row>
<row
><entry
>abbrev</entry
><entry
>Расшифровщик сокращений</entry
></row>
<row
><entry
>filter</entry
><entry
></entry
></row>
<row
><entry
>valgrind</entry
><entry
>Графический интерфейс valgrind</entry
></row>
</tbody
></tgroup>
</table>

<table>
<title
>Компоненты &kdevelop; по поддержке языков программирования</title>
<tgroup cols="2">
<tbody>
<row
><entry
>cppsupport</entry
><entry
>Поддержка C/C++</entry
></row>
<row
><entry
>fortransupport</entry
><entry
>Поддержка Fortran</entry
></row>
<row
><entry
>javasupport</entry
><entry
>Поддержка &Java;</entry
></row>
<row
><entry
>perlsupport</entry
><entry
>Поддержка Perl</entry
></row>
<row
><entry
>phpsupport</entry
><entry
>Поддержка PHP</entry
></row>
<row
><entry
>pythonsupport</entry
><entry
>Поддержка Python</entry
></row>
</tbody
></tgroup>
</table>

<table>
<title
>Компоненты &kdevelop; по управлению проектами</title>
<tgroup cols="2"
><tbody>
<row
><entry
>astyle</entry
><entry
></entry
></row>
<row
><entry
>buglist</entry
><entry
></entry
></row>
<row
><entry
>classview</entry
><entry
>Обозреватель классов</entry
></row>
<row
><entry
>ctags</entry
><entry
></entry
></row>
<row
><entry
>debugger</entry
><entry
>Отладчик &GNU;</entry
></row>
<row
><entry
>diff</entry
><entry
></entry
></row>
<row
><entry
>distpart</entry
><entry
></entry
></row>
<row
><entry
>doxygen</entry
><entry
></entry
></row>
<row
><entry
>fileview</entry
><entry
></entry
></row>
<row
><entry
>javadebugger</entry
><entry
></entry
></row>
<row
><entry
>manager</entry
><entry
></entry
></row>
<row
><entry
>nedit</entry
><entry
></entry
></row>
<row
><entry
>outputviews</entry
><entry
></entry
></row>
<row
><entry
>perforce</entry
><entry
></entry
></row>
<row
><entry
>qeditor</entry
><entry
></entry
></row>
<row
><entry
>scripting</entry
><entry
></entry
></row>
<row
><entry
>scriptproject</entry
><entry
></entry
></row>
<row
><entry
>sourcenav</entry
><entry
></entry
></row>
<row
><entry
>svn</entry
><entry
></entry
></row>
<row
><entry
>visualboyadvance</entry
><entry
></entry
></row>
<row
><entry
>windowmenu</entry
><entry
></entry
></row>
</tbody
></tgroup>
</table>

</sect1
> <!-- parts-survey -->

</appendix
> <!-- plugin-tools -->

<!-- ====================================================================== -->

<appendix id="app-uimodes-examples">
<title
>&kdevelop; в разных режимах интерфейса</title>

<sect1 id="ideal-desc">
<title
>Режим IDEAl</title>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-ideal-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Снимок экрана</phrase
></textobject>
    <caption
><para
>&kdevelop; в режиме IDEAl</para
></caption>
  </mediaobject>
</screenshot>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-ideal-mode-0.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Снимок экрана</phrase
></textobject>
    <caption
><para
>&kdevelop; в режиме IDEAl с закрытыми вкладками</para
></caption>
  </mediaobject>
</screenshot>

<para
>Этот снимок экрана демонстрирует удобство режима IDEAl, когда доступно максимально большое рабочее пространство. Все инструменты доступны через соответствующие вкладки. </para>
<para
>Возможно, вам потребуется некоторое время чтобы привыкнуть к значкам панели вкладок. Наведите курсор мыши на один из значков и через секунду появится подсказка. На снимке экрана отображена подсказка к вкладке <quote
>Менеджера Automake</quote
>. </para>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

</sect1
> <!-- ideal-desc -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="mdi-desc">
<title
>Дочерние окна</title>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

<screenshot>
  <mediaobject>
    <imageobject>
    <imagedata fileref="kdevelop-mdi-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Снимок экрана</phrase
></textobject>
    <caption
><para
>&kdevelop; в режиме <quote
>Дочерние окна</quote
></para
></caption>
  </mediaobject>
</screenshot>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

</sect1
> <!-- mdi-desc -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="tabbed-desc">
<title
>Вкладки</title>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-tabbed-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Снимок экрана</phrase
></textobject>
    <caption
><para
>&kdevelop; в режиме <quote
>Вкладки</quote
></para
></caption>
  </mediaobject>
</screenshot>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

</sect1
> <!-- tabbed-desc -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<sect1 id="toplevel-desc">
<title
>Отдельные окна</title>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-toplevel-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Снимок экрана</phrase
></textobject>
    <caption
><para
>&kdevelop; в режиме <quote
>Отдельные окна</quote
></para
></caption>
  </mediaobject>
</screenshot>

<para
><link linkend="uimodes-survey"
>Вернуться к обзору режимов интерфейса</link
>. </para>

</sect1
> <!-- toplevel-desc -->

</appendix
> <!-- app-uimodes-examples -->

<!-- ====================================================================== -->

<appendix id="app-misc-info">
<title
>Дополнительная информация</title>
<sect1 id="gettinginformation">
<title
>Получение информации</title>
<para
>(... в процессе написания ...) </para>
</sect1
> <!-- gettinginformation -->

<sect1 id="app-reporting-bugs">
<title
>Отчёты об ошибках</title>
<para
>(... в процессе написания ...) </para>
</sect1
> <!-- app-reporting-bugs -->

<sect1 id="app-licensing">
<title
>Лицензирование</title>
&underFDL; &underGPL; </sect1
> <!-- app-licensing -->
</appendix
> <!-- app-misc-info -->

<!-- ====================================================================== -->

<appendix id="app-changelog">
<title
>Изменения</title>
<sect1 id="changes">
<title
>Изменения, внесённые в этот документ</title>
<para>
<itemizedlist>
<listitem
><para
>2003-01-03 &mdash; Начало Changelog </para
></listitem>
</itemizedlist>
</para>
</sect1
> <!-- changes -->
</appendix
> <!-- app-changelog -->

<!-- ====================================================================== -->

<!--  Note (bp, 2003-09-04): <bibliography
> should remain the last appendix section because of a (meinproc???) bug which sends the Next selection in circles back to it. -->

<appendix id="app-bibliography">
<title
>Библиография</title>

<para
>(... в процессе написания ...)</para>

<bibliography>

<biblioentry>
<title
><ulink url="info://make/Top"
>Руководство GNU Make (GNU Make Manual)</ulink
></title>
<authorgroup>
<author
><firstname
>Richard M.</firstname
><surname
>Stallman</surname
></author>
<author
><firstname
>Roland</firstname
><surname
>McGrath</surname
></author>
</authorgroup>
</biblioentry>

<biblioentry>
<title
><ulink url="info://automake/Top"
>GNU Automake</ulink
></title>
<authorgroup>
<author
><firstname
>David</firstname
><surname
>MacKenzie</surname
></author>
<author
><firstname
>Tom</firstname
><surname
>Tromey</surname
></author>
</authorgroup>
</biblioentry>

<biblioentry>
<title
><ulink url="info://autoconf/Top"
>GNU Autoconf</ulink
></title>
<authorgroup>
<author
><firstname
>David</firstname
><surname
>MacKenzie</surname
></author>
<author
><firstname
>Ben</firstname
><surname
>Elliston</surname
></author>
</authorgroup>
</biblioentry>

<biblioentry>
<title
><ulink url="info://gcc/Top"
>Использование GNU Compiler Collection</ulink
></title>
<author
><firstname
>Richard M.</firstname
><surname
>Stallman</surname
></author>
</biblioentry>

<biblioentry>
<title
><ulink url="info://libtool/Top"
>GNU Libtool</ulink
></title>
<authorgroup>
<author
><firstname
>Gordon</firstname
><surname
>Matzigkeit</surname
></author>
<author
><firstname
>Alexandre</firstname
><surname
>Oliva</surname
></author>
<author
><firstname
>Thomas</firstname
><surname
>Tanner</surname
></author>
<author
><firstname
>Gary V.</firstname
><surname
>Vaughan</surname
></author>
</authorgroup>
</biblioentry>

<biblioentry>
<title
>Руководства по autoconf, automake и libtool (GNU Autoconf, Automake, and Libtool)</title>
<edition
>1st edition</edition>
<pubdate
>October 2000</pubdate>
<authorgroup>
<author
><firstname
>Gary V.</firstname
><surname
>Vaughan</surname
></author>
<author
><firstname
>Ben</firstname
><surname
>Elliston</surname
></author>
<author
><firstname
>Tom</firstname
><surname
>Tromey</surname
></author>
<author
><firstname
>Ian Lance</firstname
><surname
>Taylor</surname
></author>
</authorgroup>
<publisher
><publishername
>New Riders Publishing</publishername
></publisher>
<isbn
>ISBN 1578701902</isbn>
</biblioentry>


<biblioentry>
<title
>Искусство программирования в среде UNIX (Advanced Programming in the UNIX(R) Environment)</title>
<edition
>1st edition</edition>
<pubdate
>June 1992</pubdate>
<author
><firstname
>W. Richard</firstname
><surname
>Stevens</surname
></author>
<publisher
><publishername
>Addison-Wesley Pub Co</publishername
></publisher>
<isbn
>ISBN 0201563177</isbn>
</biblioentry>

<biblioentry>
<title
>Мыслим в стиле C++, Том 1: Введение в стандартный C++ (Thinking in C++, Volume 1: Introduction to Standard C++)</title>
<edition
>2nd Edition</edition>
<pubdate
>April 15, 2000</pubdate>
<author
><firstname
>Bruce</firstname
><surname
>Eckel</surname
></author>
<publisher
><publishername
>Prentice Hall</publishername
></publisher>
<isbn
>ISBN 0139798099</isbn>
</biblioentry>

<biblioentry>
<title
>Разработка на основе открытого исходного кода: CVS (Open Source Development with CVS)</title>
<edition
>2nd Edition</edition>
<pubdate
>October 12, 2001</pubdate>
<authorgroup>
<author
><firstname
>Karl</firstname
><surname
>Fogel</surname
></author>
<author
><firstname
>Moshe</firstname
><surname
>Bar</surname
></author>
</authorgroup>
<publisher
><publishername
>The Coriolis Group</publishername
></publisher>
<isbn
>ISBN 158880173X</isbn>
</biblioentry>

<biblioentry>
<title
>Программирование на PHP</title>
<edition
>1st edition</edition>
<pubdate
>March 2002</pubdate>
<authorgroup>
<author
><firstname
>Rasmus</firstname
><surname
>Lerdorf</surname
></author>
<author
><firstname
>Kevin</firstname
><surname
>Tatroe</surname
></author>
</authorgroup>
<publisher
><publishername
>O'Reilly &amp; Associates</publishername
></publisher>
<isbn
>ISBN 1565926102</isbn>
</biblioentry>

<biblioentry>
<title
>Программирование на Python</title>
<edition
>2nd Edition</edition>
<pubdate
>March 2001</pubdate>
<author
><firstname
>Mark</firstname
><surname
>Lutz</surname
></author>
<publisher
><publishername
>O'Reilly &amp; Associates</publishername
></publisher>
<isbn
>ISBN 0596000855</isbn>
</biblioentry>

<biblioentry>
<title
>Объектно-ориентированное программирование на Python: инструментарий Qt (Gui Programming With Python : Using the Qt Toolkit)</title>
<edition
>Bk&amp;Cd-r edition</edition>
<pubdate
>January 2002</pubdate>
<author
><firstname
>Boudewijn</firstname
><surname
>Rempt</surname
></author>
<publisher
><publishername
>Opendocs Llc</publishername
></publisher>
<isbn
>ISBN 0970033044</isbn>
</biblioentry>

<biblioentry>
<title
>Программирование на Perl</title>
<subtitle
>Книга с верблюдом (Camel book)</subtitle>
<edition
>3rd Edition</edition>
<pubdate
>July 2000</pubdate>
<authorgroup>
<author
><firstname
>Larry</firstname
><surname
>Wall</surname
></author>
<author
><firstname
>Tom</firstname
><surname
>Christiansen</surname
></author>
<author
><firstname
>Jon</firstname
><surname
>Orwant</surname
></author>
</authorgroup>
<publisher
><publishername
>O'Reilly &amp; Associates</publishername
></publisher>
<isbn
>ISBN 0596000278</isbn>
</biblioentry>

<biblioentry>
<title
>Изучаем Perl</title>
<subtitle
>Книга с ламой (Lama book)</subtitle>
<edition
>3rd Edition</edition>
<pubdate
>July 15, 2001</pubdate>
<authorgroup>
<author
><firstname
>Randal L.</firstname
><surname
>Schwartz</surname
></author>
<author
><firstname
>Tom</firstname
><surname
>Phoenix</surname
></author>
</authorgroup>
<publisher
><publishername
>O'Reilly &amp; Associates</publishername
></publisher>
<isbn
>ISBN 0596001320</isbn>
</biblioentry>

</bibliography>
<!-- -->

</appendix
> <!-- app-bibliography -->

<!-- ====================================================================== -->

&documentation.index;

</book>
