<chapter id="getting-started">

<!-- ToDo: 
Put the AppWizard section at the beginning.
Before anything else, let the user generate
a hello program like this:
- assumes KDevelop is properly installed,
  e.g. from a good Linux distribution
  (list those that include KDevelop?)
- start KDevelop
- if settings are needed, accept default ones
- Project - New Project
- C++ - KDE - Simple KDE application
- name: hello, location: default (/home/user). Next
- Project Options: Leave as default. Next
- .h Template: Leave as default. Next
- .cpp Template: Leave as default. Finish
- Build - Execute Program (Yes to run automake & friends)
- Messages window appears. Wait until program is compiled.
- Finally, program pops up, saying "Hello World".

After this, explore the KDevelop functionality
with the hello program as an example.

Also: Links to detailed descriptions in the main part.
Volker Paul
-->

<chapterinfo>
  <authorgroup>
    <author><firstname>Bernd</firstname><surname>Pol</surname></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</chapterinfo>

<title>Primeros pasos con &tdevelop; &mdash; Un paseo guiado</title>

<para>Ahora que ha instalado su entorno de desarrollo integrado &tdevelop;, ¿cómo va a utilizarlo de forma correcta? Como se trata de una aplicación compleja, la curva de aprendizaje puede ser un poco larga, especialmente si no está acostumbrado a este tipo de entorno de desarrollo integrado. </para>
<para>Trataremos de suavizar un poco esta curva de aprendizaje mediante la creación de una sencilla aplicación en C++ para KDE. De este modo, veremos (de forma superficial): </para>
<simplelist>
  <member><link linkend="gettingstarted-overview">Cómo es la apariencia exterior del IDE &tdevelop;.</link></member>
<!--  <member><link linkend="gettingstarted-configure">Some initial configuration steps.</link></member> -->
  <member><link linkend="gettingstarted-new">Cómo crear un nuevo proyecto.</link></member>
<!--  
  <member><link linkend="gettingstarted-edit">How to work with documents.</link></member>
  <member><link linkend="gettingstarted-compile">How to compile the application in this project.</link></member>
  <member><link linkend="gettingstarted-extend">How to add classes and other detail to your project.</link></member>
  <member><link linkend="gettingstarted-debug">What to do to debug the application.</link></member>
  <member><link linkend="gettingstarted-doc">Some basic tools to build program or user documentation.</link></member>
-->
</simplelist>

<sect1 id="gettingstarted-overview">
<title>El primer encuentro con &tdevelop;</title>

<sect2 id="gettingstarted-overview-basic">
<title>Apariencia exterior</title>

<para>Cuando inicie &tdevelop; por primera vez verá una ventana similar a esta: </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="empty-ide.png" format="PNG"/>
    </imageobject>
    <caption><para>Disposición inicial de &tdevelop; </para></caption>
  </mediaobject>
</screenshot>

<formalpara>
<title>Área de trabajo y pestañas de vistas de herramientas</title>
<para>En esta disposición inicial, &tdevelop; utiliza lo que se denomina <link linkend="uimodes-survey">modo de interfaz de usuario IDEAl</link>, un área de trabajo del máximo tamaño posible rodeada por la izquierda, por la derecha y por la parte inferior de una serie de botones que funcionan de un modo similar a las pestañas de una ventana con separadores de pestaña. Si pulsa sobre una de estas pestañas se mostrará lo que se denomina <emphasis>ventana de vista de herramientas</emphasis>, que le permitirá trabajar sobre una tarea específica. </para>
</formalpara>

<formalpara>
<title>El menú y las barras de herramientas</title>
<para>En la parte superior está la típica barra de menú, seguida por varias filas de barras de herramientas, alguna de las cuales puede estar inicialmente vacía. Tendrán contenido una vez que exista un proyecto abierto sobre el que trabajar. </para>
</formalpara>

<formalpara>
<title>La barra de estado</title>
<para>Finalmente, existe una barra de estado en la parte inferior de la ventana, donde se muestran cortas informaciones sobre varias tareas. </para>
</formalpara>
</sect2> <!-- gettingstarted-overview-basic -->

<sect2 id="gettingstarted-overview-help">
<title>Cómo obtener ayuda</title>

<para>Además del menú <guimenu>Ayuda</guimenu>, que le ofrece respuestas a cuestiones específicas, la barra de estado y dos clases de ayudas emergentes le proporcionarán una rápida información. </para>

<formalpara>
<title>¿Qué hace esta entrada del menú?</title>
<para>Normalmente, cuando sitúa el cursor del ratón sobre una entrada del menú, se mostrará algún tipo de información corta en la barra de estado. Mientras que en la mayor parte de los casos solo se repite el nombre de la selección, algunas veces proporcionará información adicional sobre el propósito del comando del menú.</para>
</formalpara>

<formalpara>
<title>¿Cuál es el nombre de este elemento?</title>
<para>Si sitúa el cursor durante algunos segundos sobre la mayoría de los elementos, se mostrará una ayuda emergente con el nombre corto de su función. Esto es útil para orientarse rápidamente en las barras de herramientas o en las pestañas de vistas de herramientas del modo IDEAl, cuando el IDE ha sido configurado para que solo muestre iconos en estos botones..</para>
</formalpara>

<formalpara>
<title>¿Qué hace este elemento?</title>
<para>Dispone de más información mediante las ayudas emergentes expandidas que existen en muchos elementos del IDE. Seleccione <menuchoice><guimenu>Ayuda</guimenu> <guimenuitem>¿Qué es esto?</guimenuitem></menuchoice> o pulse <keycombo><keycap>&Shift;</keycap><keycap>F1</keycap></keycombo>, con lo que el cursor cambiará a un signo de interrogación con el que puede seleccionar el elemento sobre el que desea saber más. También puede abrir cualquier menú de este modo y pulsar sobre cualquiera de sus entradas (tanto activas como desactivadas) para ver si se dispone de más información sobre ella.</para>
</formalpara>

</sect2> <!-- gettingstarted-overview-help -->

<sect2 id="gettingstarted-overview-menu">
<title>¿Qué hay en los menús?</title>

<para>Existen diez menús seleccionables en la barra de menú. Muchos de ellos solo dispondrán de todas sus opciones una vez que haya abierto un proyecto sobre el que trabajar, mientras que otros necesitan al menos un documento abierto. Brevemente, le permitirán los siguientes tipos de acciones. </para>

<para>Tenga en cuenta que esto es solo una primera aproximación. Para un listado detallado de los menús y de sus elementos, vea la <link linkend="commands">referencia de comandos</link>.</para>

<variablelist>
  <varlistentry>
  <term><guimenu>Archivo</guimenu></term>
  <listitem>
    <formalpara><title>Acciones comunes</title>
    <para>Es bastante estándar. Le permite crear, abrir, guardar, imprimir y cerrar archivos de documentos, así como salir de la forma usual de la aplicación &tdevelop;.</para></formalpara>
    <formalpara><title>Revertir cambios</title>
    <para>Adicionalmente, le permite deshacer todas las modificaciones volviendo a cargar el contenido del archivo previamente guardado.</para></formalpara>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Editar</guimenu></term>
  <listitem>
    <para>Este menú solo es útil si tiene abierto algún documento.</para>
    <formalpara><title>Acciones comunes</title>
    <para>Proporciona las típicas acciones deshacer/rehacer y cortar/copiar/pegar. Además, le permite seleccionar bloques de texto de varias maneras.</para></formalpara>
    <formalpara><title>Buscar y reemplazar</title>
    <para>Existe una función de búsqueda realmente potente en el menú <guimenu>Editar</guimenu>. Además de las típicas acciones de búsqueda y sustitución limitadas al documento actual, también puede realizar acciones de búsqueda y sustitución globales, que le permiten trabajar simultáneamente sobre todos los archivos del proyecto.</para></formalpara>
    <formalpara><title>Edición de texto avanzada</title>
    <para>Existen opciones para reformatear el documento actual y para completar de forma automática el texto parcialmente tecleado de varios modos.</para></formalpara>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Ver</guimenu></term>
  <listitem>
    <para>Del mismo modo que el menú <guimenu>Editar</guimenu>, este menú es útil solo si hay un proyecto abierto. En este caso, dispondrá de las siguientes acciones (entre otras):</para>
    <formalpara><title>Historial de navegación</title>
    <para>Desplazarse atrás y adelante entre los documentos, &etc;, que haya visitado.</para>
    </formalpara>
    <formalpara><title>Seguimiento de errores</title>
    <para>Navegar hasta las líneas de código que contienen los errores encontrados durante el último proceso de compilación o construcción.</para>
    </formalpara>
    <formalpara><title>Administrar la vista de herramientas</title>
    <para>Mostrar y ocultar ventanas de vistas de herramientas o puntos de anclaje de vistas de herramientas.</para>
    </formalpara>
    <formalpara><title>Acciones relacionadas con el editor</title>
    <para>Algunas entradas del menú <guimenu>Ver</guimenu> controlan el aspecto del editor que está usando. En caso de sea el componente de &kate; (Editor de texto avanzado empotrable), dispondrá de los siguientes controles:</para>
    </formalpara>
    <itemizedlist>
      <listitem><para>Controlar el comportamiento del ajuste de línea en la ventana del documento.</para></listitem>
      <listitem><para>Mostrar u ocultar algunas marcas en el borde de las ventanas de documento: números de línea, iconos y diversos tipos de marcadores.</para></listitem>
      <listitem><para>Controlar cómo se muestran las secciones de código fuente plegado (temporalmente oculto).</para></listitem>
    </itemizedlist>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Proyecto</guimenu></term>
  <listitem>
    <para>Todo el trabajo de &tdevelop; se basa en <emphasis>proyectos</emphasis>, que básicamente son una colección de archivos de código fuente, archivos de administración de la compilación y otro tipo de información residente en una carpeta de proyecto. En este menú puede controlar qué proyecto usar y qué propiedades tiene, además de otras acciones de administración. En particular:</para>
    <formalpara><title>Abrir un proyecto</title>
    <para>Permite crear nuevos proyectos, abrir proyectos existentes e importar proyectos de otros entornos.</para>
    </formalpara>
    <formalpara><title>Opciones del proyecto</title>
    <para>Permite definir una buena cantidad de propiedades de un proyecto.</para>
    </formalpara>
    <formalpara><title>Administración de clases</title>
    <para>Añade nuevas clases a un proyecto y traza el árbol de herencia de una clase.</para>
    </formalpara>
    <formalpara><title>Distribuir el proyecto</title>
    <para>Ayuda a construir paquetes para la distribución del proyecto.</para></formalpara>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Construir</guimenu></term>
  <listitem>
    <para>Este menú está destinado a compilar y documentar el proyecto, por lo que solo tiene utilidad cuando hay uno abierto. En este caso proporciona las siguientes acciones:</para>
    <formalpara><title>Compilar, enlazar y ejecutar</title>
    <para>Permite compilar y enlazar todo el proyecto o partes del mismo, así como ejecutar la aplicación desde el IDE.</para>
    </formalpara>
    <formalpara><title>Preparar operaciones de construcción</title>
    <para>Esto depende realmente del sistema «make» que esté utilizando en su proyecto. En el caso de proyectos «automake» permite ejecutar los archivos <filename>Makefile.cvs</filename> y <filename>configure</filename> por sí mismos. También existen acciones para eliminar archivos de traducción del proyecto en varios grados de intensidad.</para>
    </formalpara>
    <formalpara><title>Instalar la aplicación</title>
    <para>Permite instalar la aplicación en carpetas locales o en las del sistema (solo accesibles al usuario «root»).</para>
    </formalpara>
    <formalpara><title>Documentación de la API</title>
    <para>Construir o eliminar del proyecto la documentación de la API basada en «doxygen» definida en las opciones del proyecto.</para>
    </formalpara>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Depurar</guimenu></term>
  <listitem>
    <para>Aunque este menú solo está disponible cuando hay un proyecto activo, solo resulta útil si el proyecto actual ha sido compilado previamente con información de depuración (lo que se puede configurar básicamente en el menú <menuchoice><guimenu>Proyecto</guimenu> <guimenuitem>Opciones del proyecto</guimenuitem></menuchoice>). En tal caso dispondrá de las siguientes acciones:</para>
    <formalpara><title>Acciones típicas de depuración</title>
    <para>La primera sección del menú <guimenu>Depurar</guimenu> proporciona una interfaz gráfica para el depurador simbólico GDB de &GNU;. Le permite iniciar y detener su aplicación en el depurador, y avanzar por ella de varios modos.</para>
    </formalpara>
    <formalpara><title>Puntos de interrupción</title>
    <para>&tdevelop; proporciona algunos métodos para establecer puntos de interrupción en el código fuente de su aplicación. Uno de ellos consiste en usar la entrada del menú <guimenuitem>Cambiar punto de interrupción</guimenuitem>.</para>
    </formalpara>
    <formalpara><title>Depuración avanzada</title>
    <para>Otras entradas del menú <guimenu>Depurar</guimenu> permiten un análisis más sofisticado del programa. Utilice <keycombo><keycap>&Shift;</keycap><keycap>F1</keycap></keycombo> paraobtener más información sobre su propósito.</para>
    </formalpara>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Ventana</guimenu></term>
  <listitem>
    <para>Es un menú bastante estándar. Aquí puede seleccionar la ventana de cualquier documento abierto, así como cerrar una o más ventanas de documentos. También puede seleccionar un conjunto de ventanas de documentos para ser cerradas de una vez.</para>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Herramientas</guimenu></term>
  <listitem>
    <para>&tdevelop; es altamente configurable. Puede seleccionar su editor favorito para sus documentos así como proporcionar herramientas externas para extender las capacidades básicas del IDE. El menú <guimenu>Herramientas</guimenu> refleja gran parte de esta configuración.</para>
    <formalpara><title>Edición avanzada</title>
    <para>El conjunto superior de las entradas del menú <guimenu>Herramientas</guimenu> será proporcionado por la extensión del editor que esté usando. Puede seleccionar su editor favorito en <menuchoice><guimenu>Preferencias</guimenu> <guimenuitem>Configurar KDevelop...</guimenuitem> <guilabel>Editor</guilabel></menuchoice>. Tras seleccionar un archivo editable, la parte superior del menú <guimenu>Herramientas</guimenu> proporcionará comandos de edición avanzados específicos de su editor.</para>
    </formalpara>
    <formalpara><title>Manejo de documentos web</title>
    <para>En caso de que la ventana del documento activo contenga una página HTML (&eg; mostrada a partir de una selección de <guilabel>Documentación</guilabel>), el menú <guimenu>Herramientas</guimenu> mostrará entradas adicionales que le proporcionarán varios métodos para manejar páginas web.</para>
    </formalpara>
    <formalpara><title>Otras herramientas</title>
    <para>Normalmente existirá un buen número de otras entradas según las herramientas disponibles en cada momento. Utilice <keycombo><keycap>&Shift;</keycap><keycap>F1</keycap></keycombo> para obtener más información sobre su propósito.</para>
    </formalpara>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Preferencias</guimenu></term>
  <listitem>
    <para>Este menú le permite mostrar y ocultar la barra del menú, las barras de herramientas y la barra de estado. Además, puede configurar los accesos rápidos de teclado, las barras de herramientas, las notificaciones, el editor y el comportamiento general de KDevelop.</para>
  </listitem>
  </varlistentry>
  
  <varlistentry>
  <term><guimenu>Ayuda</guimenu></term>
  <listitem>
    <para>Aquí podrá abrir este manual de KDevelop, leer la documentación de Qt, abrir páginas «man» (el formato tradicional de manuales de UNIX) y páginas «info» (el formato de manual GNU), informar de fallos y obtener información sobre su versión de KDevelop y sus autores.</para>
  </listitem>
  </varlistentry>
</variablelist>

</sect2> <!--gettingstarted-overview-menu-->

</sect1> <!-- gettingstarted-overview -->

<!--
This is covered elsewhere, so unless someone convinces me that 
it is useful to have it here as well, I will eventually delete it. Volker Paul.

<sect1 id="gettingstarted-configure">
<title>A Bit of Configuration</title>

<para>(- to be written -)</para>

</sect1> 

 -->

<sect1 id="gettingstarted-new">
<title>Cómo comenzar un nuevo proyecto: el &appwizard;</title>

<para>Trata de mostrarle lo fácil que es hacer que KDevelop cree un programa funcional.</para>

<para>El <link linkend="applicationwizard">&appwizard;</link> puede crear rápidamente un proyecto a partir de una lista de plantillas de proyectos predefinidos. Todo lo que tiene que hacer es seleccionar el tipo de proyecto que desea, nombrarlo y decidir en qué lugar de su disco situarlo. </para>

<para>Seleccione Proyecto -> Nuevo proyecto. Aparecerá la ventana para crear un nuevo proyecto. Asumamos que desea crear un proyecto típico para KDE, de modo que deberá seleccionar: C++ - KDE - Aplicación de KDE sencilla. Introduzca el nombre, por ejemplo, «holamundo». La ubicación por omisión será /home/usuario/holamundo. Pulse «Adelante» cuando haya terminado con esta ventana. En la siguiente ventana puede establecer algunas opciones que han sido prefijadas a sus valores predeterminados. Pulse «Adelante». Se le mostrarán las plantillas para los archivos .h y .cpp. Puede dejarlas tal y como están y pulsar el botón «Finalizar». Verá el mensaje de que su programa ha sido creado. </para>

<para>Para ejecutar su programa, seleccione Construir -> Ejecutar programa. Se mostrará un mensaje informando de que «automake» y sus programas relacionados deben ejecutarse en primer lugar. Pulse «Aceptar». Su programa será construido y ejecutado, con lo que verá aparecer la ventana de su nuevo programa con un mensaje que dice «Hola mundo». Ahora puede editar su programa y añadirle alguna funcionalidad más útil. </para>

</sect1> <!-- gettingstarted-new -->

<!-- 
Again, this will be deleted, if nobody complains.

<sect1 id="gettingstarted-edit">
<title>Working With Documents</title>

<para>(- to be written -)</para>

<sect2 id="gettingstarted-edit-codecompletion">
<title>How to Automate Some Typing Tasks</title>

<para>(- to be written -)</para>

</sect2> 

</sect1> 


<sect1 id="gettingstarted-compile">
<title>How to Compile a Project</title>

<para>(- to be written -)</para>

<sect2 id="gettingstarted-compile-messages">
<title>What the Messages Tell</title>

<para>(- to be written -)</para>

</sect2> 

</sect1> 


<sect1 id="gettingstarted-extend">
<title>How to Extend a Project &mdash; the &automanag;</title>

<para>(- to be written -)</para>

<sect2 id="gettingstarted-extend-automake">
<title>A Short Look at the Automake Machinery</title>

<para>(- to be written -)</para>

</sect2> 

<sect2 id="gettingstarted-extend-pics">
<title>How to Place Icons in a Separate Directory</title>

<para>(- to be written -)</para>

</sect2> 

<sect2 id="gettingstarted-extend-class">
<title>How to Add New Classes</title>

<para>(- to be written -)</para>

<caution><para>
Be careful when you select your class file names. It is extremely difficult to change them later.
</para></caution>

</sect2> 

<sect2 id="gettingstarted-extend-subproject">
<title>What is in a Subproject?</title>

<para>(- to be written -)</para>

<sect3 id="gettingstarted-extend-subproject-active">
<title>Concentrate on Your Work &mdash; the Active Target</title>

<para>(- to be written -)</para>

</sect3> 

</sect2> 

<sect2 id="gettingstarted-extend-restructure">
<title>Some Steps to Restructure a Project</title>

<para>(- to be written -)</para>

</sect2> 


</sect1> 



<sect1 id="gettingstarted-debug">
<title>How to Debug</title>

<para>(- to be written -)</para>

</sect1>


<sect1 id="gettingstarted-doc">
<title>A Note on Documentation</title>

<para>(- to be written -)</para>

</sect1>
-->
</chapter>
