<?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.0.91">
  <!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 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 setup SYSTEM "setup.docbook">
  <!ENTITY applicationwizard SYSTEM "applicationwizard.docbook">
  <!ENTITY project-advanced SYSTEM "project-advanced.docbook">
  <!ENTITY project-management SYSTEM "project-management.docbook">
  <!-- book related entities -->
  <!ENTITY kappname "&kdevelop;">
  <!ENTITY % addindex "INCLUDE">
  <!ENTITY % Swedish "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
>Användarmanual &kdevelop;</title>

  <date
>2004-07-14</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; är en integrerad utvecklingsmiljö som kan användas för ett brett spektrum av programmeringsaktiviteter.</para>
  </abstract>

  <keywordset>
    <keyword
>KDE</keyword>
    <keyword
>KDevelop</keyword>
    <keyword
>IDE</keyword>
    <keyword
>utveckling</keyword>
    <keyword
>programmering</keyword>
  </keywordset>

</bookinfo>

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

<chapter id="survey-manual">
<title
>Om den här manualen</title>

<para
>Den här användarmanualen är avsedd att beskriva innehållet och användningen av den integrerade utvecklingsmiljön (IDE) &kdevelop; &kdevrelease; från användarens perspektiv. Det är inte en programmeringsmanual, och inte heller beskriver den utvecklingsprocessen i detalj. Det enda målet är att hjälpa dig med hanteringen av den integrerade utvecklingsmiljön. </para>
<para
>Här hittar du information om följande ämnen: </para>
<itemizedlist>
  <listitem
><para
><link linkend="nutshell"
>I korthet &mdash; Tips och trick</link
>: En snabbreferens till de oftast använda kommandona och åtgärderna, och en kort guide för att lösa vanliga problem vid arbete med &kdevelop;. </para
></listitem>

  <listitem
><para
><link linkend="unixdev"
>Utveckling på &UNIX;</link
>: En historisk översikt över programutveckling i &UNIX;, de viktigaste verktygen som behövs och varför man behöver en integrerad utvecklingsmiljö. </para
></listitem>

  <listitem
><para
><link linkend="kdevelop-install"
>Installera &kdevelop;</link
>: Talar om var man skaffar &kdevelop;, och hur man får det att köra. </para
></listitem>

  <listitem
><para
><link linkend="kdevelop-survey"
>Översikt av funktioner i &kdevelop;</link
>: Detta är en sorts uppvärmning, som ger en kort översikt av vad som är inbyggt i &kdevelop; och gör dig bekant med utseendet och känslan i denna integrerade utvecklingsmiljö. </para
></listitem>

  <listitem
><para
><link linkend="app-menus"
>Översikt över menyer och verktygsrader</link
>: Tillhandahåller en kort översikt över tillgängliga meny- och verktygsradsalternativ (i appendix). </para
></listitem>

  <listitem
><para
><link linkend="app-shortcuts"
>Snabbtangenter</link
>: Listar tangentsekvenserna (i appendix) som du kan använda för att snabbt komma åt specifika åtgärder i &kdevelop;. </para
></listitem>

  <listitem
><para
><link linkend="setup"
>Anpassa &kdevelop;</link
>: Visar hur du kan skräddarsy den integrerade utvecklingsmiljön för att passa dina behov. </para
></listitem>

  <listitem
><para
><link linkend="applicationwizard"
>Komma igång: Programguiden</link
>: Beskriver grunderna i hur ett nytt projekt skapas i &kdevelop; med den inbyggda programguiden. </para
></listitem>

  <listitem
><para
><link linkend="projects-advanced"
>Avancerad projekthantering</link
>: Visar hur befintliga projekt kan laddas, konvertering av projekt från äldre versioner av &kdevelop; och import av andra befintliga projekt. Dessutom beskrivs inställningen av ett projekts alternativ för att passa dina behov. </para
></listitem>

  <listitem
><para
><link linkend="editing"
>Redigeringsverktyg</link
>: Allt du behöver för att skriva källkoden. Från hur editorn används, hur textsökning både lokalt och i hela projektet görs, till hur nya filer och klasser integreras i projektet. </para
></listitem>

  <listitem
><para
><link linkend="file-browsers"
>Filbläddrarna</link
>: Demonstrerar diverse verktyg för att titta på projektets struktur och hur du kommer åt filerna du vill arbeta med. </para
></listitem>

  <listitem
><para
><link linkend="class-browsers"
>Klassbläddrarna</link
>: Beskriver en av de mest kraftfulla verktygen i &kdevelop;, som låter dig navigera i klassberoenden och låter dig enkelt skapa och komma åt de klasser och metoder du behöver. </para
></listitem>

  <listitem
><para
><link linkend="documentation"
>Dokumentation</link
>: Visar hur man kommer åt den omfattande inbyggda dokumentationen som &kdevelop; tillhandahåller, och talar om hur du skapar dokumentation av projektet, en koncis och kraftfull dokumentation av programmeringsgränssnittet, som ger dig en översikt över all källkod i projektet samt en docbook-baserad användardokumentation. </para
></listitem>
  <listitem
><para
><link linkend="project-management"
>Bygga och projekthantering</link
>: Handlar om att skapa och hantera projekt, beskriver grunderna i användning av autoconf och automake, samt hur egna byggfiler skapas och hur kompilator- och bygginställningar används för att skräddarsy programmet för att passa dina behov. </para
></listitem>

  <listitem
><para
><link linkend="adv-build-management"
>Avancerad bygghantering</link
>: Tittar på sätt att hålla flera bygginställningar, för att korskompilera till olika plattformar, eller skapa inbyggda system med biblioteket <application
>Qt/embedded</application
>. </para
></listitem>

  <listitem
><para
><link linkend="debugger"
>Avlusargränssnittet</link
>: Beskriver hur det integrerade avlusargränssnittet till avlusaren <application
>gdb</application
> används, så att du kan jaga fel utan att lämna &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"
>Använda CVS</link
>: Talar om för dig hur du kan underhålla projektet med CVS-versionshanteringssystem, en nödvändighet särskilt om många utvecklare arbetar med samma projekt. </para
></listitem>

  <listitem
><para
><link linkend="external-progs"
>Dra nytta av externa program</link
>: Visar hur man kommer åt externa program och verktyg inifrån &kdevelop;, och på så sätt starkt utökar dess möjligheter. </para
></listitem>

  <listitem
><para
><link linkend="plugin-tools"
>Insticksverktyg</link
>: Ger en översikt över de delar som utgör &kdevelop;, och hur du kan anpassa det för att passa dina behov genom att bara ladda nödvändiga delar, både för den integrerade utvecklingsmiljön och för hela projektet. </para
></listitem>
</itemizedlist>
</chapter>

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

<chapter id="nutshell">
<title
>I korthet &mdash; Tips och trick</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
>Informationen i det här kapitlet är avsett som en snabbreferens för att genast komma igång om du (tillfälligt) glömt bort några grundläggande koncept. Det finns också korta tips om hur några vanliga problem vid arbete med &kdevelop; kan lösas. </para>
<para
>Om du vill ha mer information om ett ämne, följ bara länken i rubriken som erbjuder det. </para>
<para
>Information om följande ämnen är tillgänglig: </para>
<simplelist>
  <member
><link linkend="nutshellitem-look-and-feel"
>Utseende och känsla</link
></member>
  <member
><link linkend="nutshellitem-projects"
>Projekt</link
></member>
  <member
><link linkend="nutshellitem-compilation"
>Kompilering</link
></member>
  <member
><link linkend="nutshellitem-automake"
>Hantering av automake</link
></member>
  <member
><link linkend="nutshellitem-compilemake"
>Problem med att kompilera och bygga</link
></member>
</simplelist>

<itemizedlist id="nutshellitem-look-and-feel">
  <title
>Utseende och känsla</title>

  <listitem>
    <formalpara id="nutshell-IDEAl-tabs">
    <title
><link linkend="setup-ui-toolview"
>Tvinga mindre verktygsvyflikar i IDEA-läge</link
></title>
    <para
>Normalt startar &kdevelop; med flikar som har stora textbaserade verktygstips omkring arbetsytan. Du kan ändra detta utseende, för att spara utrymme, i inställningsdialogrutan för &kdevelop; (<menuchoice
><guimenu
>Inställningar</guimenu
> <guimenuitem
>Anpassa KDevelop...</guimenuitem
> <guimenuitem
>Användargränssnitt</guimenuitem
></menuchoice
>). </para>
    </formalpara>
    <para
>Om du använder en äldre version av &kdevelop; 3, kanske den här inställningsdialogrutan inte är tillgänglig. För att ändra utseendet hos verktygsvyernas flikar för hand, lägg till posten <computeroutput
>MDIStyle</computeroutput
> under rubriken <computeroutput
>[UI]</computeroutput
> i inställningsfilen <filename
>$KDEHOME/share/config/kdeveloprc</filename
> enligt följande: </para>
    <simplelist>
      <member
><computeroutput
>MDIStyle=0</computeroutput
>: Bara ikoner</member>
      <member
><computeroutput
>MDIStyle=1</computeroutput
>: bara text (normalvärde)</member>
      <member
><computeroutput
>MDIStyle=2</computeroutput
>: bara ikoner på mindre flikar (inte särskilt användbart)</member>
      <member
><computeroutput
>MDIStyle=3</computeroutput
>: ikoner och text</member>
    </simplelist>
  </listitem>

  <!-- ### remove this entry when the bug is repaired -->
  <listitem>
    <formalpara id="nutshell-weird-style">
    <title
>Underligt färgade tecken och/eller skärmstil</title>
    <para
>Om du observerar slumpmässigt färgade bokstäver överallt (dvs. på flikar, verktygsrader, etc.) och &kdevelop;s fönster verkar använda en felaktig skärmstil, kan följande hjälpa: </para>
    </formalpara>
    <itemizedlist>
      <listitem
><para
>Hitta raden <quote
><computeroutput
>Style=Checked</computeroutput
></quote
> i inställningsfilen <filename
>$KDEHOME/share/config/kdeveloprc</filename
> och ta bort den. Starta därefter om &kdevelop;. </para
></listitem>
    </itemizedlist>
    <para
>(Beteendet uppstår ibland efter du vänsterklickat på en .ui-fil i en av filbläddrarna och &kdevelop; laddat <application
>KUIViewer</application
> för att visa det grafiska gränssnittet som skapats från filen.) </para>
  </listitem>

  <listitem>
    <formalpara id="nutshell-full-screen">
    <title
><link linkend="maximize-workspace"
>Fullskärmsläge</link
></title>
    <para
>Välj <menuchoice
><guimenu
>Visa</guimenu
> <guimenuitem
>Fullskärmsläge</guimenuitem
></menuchoice
> i menyraden, eller tryck på <keycombo
><keycap
>Ctrl</keycap
> <keycap
>Skift</keycap
> <keycap
>F</keycap
></keycombo
>. </para>
    </formalpara>
  </listitem>

  <listitem>
    <formalpara id="nutshell-hide-menu">
    <title
><link linkend="maximize-workspace"
>Visa eller dölj menyraden</link
></title>
    <para
>För att dölja menyraden, välj <menuchoice
><guimenu
>Inställningar</guimenu
> <guimenuitem
>Visa menyrad</guimenuitem
></menuchoice
> i menyraden, eller tryck på <keycombo
><keycap
>Ctrl</keycap
> <keycap
>M</keycap
></keycombo
>. För att visa menyraden igen, är bara <keycombo
><keycap
>Ctrl</keycap
> <keycap
>M</keycap
></keycombo
> tillgängligt. </para>
    </formalpara>
  </listitem>

</itemizedlist>

<itemizedlist id="nutshellitem-projects">
<title
>Projekt</title>

  <listitem>
    <formalpara id="nutshell-new-project">
    <title
><link linkend="new-projects"
>Skapa nytt projekt</link
></title>
    <para
><menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Nytt projekt...</guimenuitem
></menuchoice
> startar <link linkend="applicationwizard"
>programguiden</link
>. </para>
    </formalpara>
  </listitem>

  <listitem>
    <formalpara id="nutshell-new-custom-project">
      <title
>Skapa ett eget projekt</title>
      <para
>Det finns inte något sätt att direkt skapa ett eget projekt (dvs. ett projekt som använder sina egna byggfiler). Använd istället <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Importera befintligt projekt</guimenuitem
></menuchoice
>. Kom ihåg att ange passande <guilabel
>Projekttyp</guilabel
> i dialogrutan, med den extra texten <quote
>(Custom Makefiles)</quote
>. </para>
    </formalpara>
  </listitem>

  <listitem>
    <formalpara id="nutshell-project-options">
    <title
><link linkend="project-options"
>Använd projektalternativ från början</link
></title>
    <para
>Så fort du skapat ett nytt projekt, glöm inte att ställa in <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
> Projektinställningar..</guimenuitem
></menuchoice
> enligt dina behov. </para>
    </formalpara>
  </listitem>
</itemizedlist>

<itemizedlist id="nutshellitem-compilation">
<title
>Kompilering</title>
  <listitem>
    <formalpara id="nutshell-compilemsg-detail">
    <title
><link linkend="setup-main-compile"
>Detaljer i kompilatormeddelanden saknas</link
></title>
    <para
>Om du märker att en del värdefull information saknas i fönstret <guilabel
>Meddelandeutmatning</guilabel
> vid kompilering,kan du ha valt en detaljnivå för meddelanden som är för låg. Högerklicka på fönstret och välj en annan detaljnivå i menyn som dyker upp. </para>
    </formalpara>
  </listitem>
</itemizedlist>

<itemizedlist id="nutshellitem-automake">
<title
><link linkend="automake-manager"
>Hantering av automake</link
></title>

    <listitem>
      <formalpara id="nutshell-new-project-file">
      <title
>Skapa nya filer i ett projekt</title>
      <para
>Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen på grupprubriken där du vill lägga till filerna och välj <guimenuitem
>Skapa ny fil..</guimenuitem
>. </para>
      </formalpara>
    </listitem>

    <listitem>
      <formalpara id="nutshell-add-project-file">
      <title
>Lägga till befintliga filer i ett projekt</title>

      <para
>Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen på grupprubriken där du vill lägga till filerna och välj <guimenuitem
>Lägg till befintliga filer..</guimenuitem
>. </para>
      </formalpara>
    </listitem>

    <listitem>
      <formalpara id="nutshell-del-project-file">
      <title
>Ta bort en fil från ett projekt</title>

      <para
>Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen på grupprubriken där du vill ta bort filerna och välj <guimenuitem
>Ta bort</guimenuitem
>. </para>
      </formalpara>
    </listitem>
  </itemizedlist>

<itemizedlist id="nutshellitem-compilemake">
  <title
>Problem med att kompilera och bygga</title>

  <listitem>
    <formalpara id="nutshell-builddirproblems">
    <!-- ### Change the following link once a more comprehensive sourcedir != builddir description is available. -->
    <title
><link linkend="defaultbuild-warning"
>Projekt byggs inte igen efter byte till eller från målet default</link
></title>
    <para
>Det finns ett problem med &automake; och &autoconf; maskineriet. Om <menuchoice
> <guimenu
>Projekt</guimenu
> <guimenuitem
>Bygginställningar</guimenuitem
></menuchoice
> ger möjlighet att välja bland tre byggkataloger: <guimenuitem
>default</guimenuitem
>, <guimenuitem
>optimized</guimenuitem
> och <guimenuitem
>debug</guimenuitem
>, håll dig för allt i världen <emphasis
>antingen</emphasis
> till målet default <emphasis
>eller</emphasis
> målen debug/optimize. </para>
    </formalpara>
    <itemizedlist>
      <listitem
><para
>När du väl har ställt in projektet med default, byggs det inte längre med debug eller optimized. </para
></listitem>
      <listitem
><para
>När du väl har ställt in projektet med debug eller optimized, byggs det inte längre med default.</para
></listitem>
     </itemizedlist>
  </listitem>

  <listitem>
    <formalpara id="nutshell-autoconf-problem">
    <title
><quote
>Fel<command
> version av </command
>autoconf</quote
>, etc.</title>

    <para
>Det finns flera felmeddelanden som berör för gamla versioner av <application
>autoconf</application
>, etc. som förhindrar att <command
>configure</command
> fungerar som det ska. Kör <command
>autoreconf</command
> i katalogträdet där filerna <filename
>configure.in</filename
> i fråga finns. Kommandot försöker uppdatera informationen i &GNU; byggsystemfiler. Se <command
>man autoreconf</command
> för mer information. </para>
    </formalpara>
  </listitem>
</itemizedlist>

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

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

&unixdev;            <!-- "Development on &UNIX;"                           -->
&kdevelop-survey;    <!-- "Overview of &kdevelop; Features"                 -->
&kdevelop-install;   <!-- "Installing &kdevelop";                           -->
&setup;              <!-- "Configuring &kdevelop;"                          -->
&applicationwizard;  <!-- "Getting Started &mdash; the &appwizard;"         -->
&project-advanced;   <!-- "Advanced Project Management"                     -->

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

<chapter id="editing">
<title
>Redigeringsverktyg</title>

<sect1 id="editing-snippets">
<title
>Kodsnuttar</title>

<itemizedlist>
  <title
>Funktioner (inledande översikt)</title>
  <listitem
><para
>Delprogrammet för kodsnuttar lägger till en verktygsvy som normalt dockas till höger </para
></listitem>
  <listitem
><para
>Tillägg, redigering och borttagning av kodsnuttar är tillgängligt via en sammanhangsberoende meny. </para
></listitem>
  <listitem
><para
>Ett dubbelklick på en kodsnutt i listan infogar den i den aktiva vyn på markörens plats </para
></listitem>
  <listitem
><para
>Verktygstips visar innehållet i en kodsnutt </para
></listitem>
  <listitem
><para
>Kodsnuttar lagras i användarens hemkatalog, så varje användare kan ha sina egna kodsnuttar </para
></listitem>
  <listitem
><para
>Kodsnuttar kan innehålla variabler på formen $VARNAMN$. När kodsnutten används, frågas användaren efter ersättningsvärden för variablerna </para
></listitem>
</itemizedlist>
</sect1
> <!-- editing-snippets -->

<sect1 id="keyboardmapping">
<title
>Tangentanvändning</title>
<indexterm zone="keyboardmapping"
><primary
>tangentbindningar</primary
></indexterm>

<para
>I det följande listar vi normala tangentbindningar för standardeditorn. Du kan anpassa dem som du vill (hur då?). </para>

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

<row
><entry
><para
><keycap
>Vänster </keycap
></para
></entry>
<entry
><para
>Flyttar ett tecken åt vänster </para
></entry
></row>

<row
><entry
><para
><keycap
>Höger </keycap
></para
></entry>
<entry
><para
>Flyttar ett tecken åt höger </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Vänster </keycap
></keycombo
></para
></entry>
<entry
><para
>Flyttar ett ord åt vänster </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Höger </keycap
></keycombo
></para
></entry>
<entry
><para
>Flyttar ett ord åt höger </para
></entry
></row>

<row
><entry
><para
><keycap
>Upp </keycap
></para
></entry>
<entry
><para
>Flyttar upp en rad </para
></entry
></row>

<row
><entry
><para
><keycap
>Ner </keycap
></para
></entry>
<entry
><para
>Flyttar ner en rad </para
></entry
></row>

<row
><entry
><para
><keycap
>Page Up </keycap
></para
></entry>
<entry
><para
>Flyttar upp en sida </para
></entry
></row>

<row
><entry
><para
><keycap
>Page Down </keycap
></para
></entry>
<entry
><para
>Flyttar ner en sida </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Page Up </keycap
></keycombo
></para
></entry>
<entry
><para
>Går till början av filen </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Page Down </keycap
></keycombo
></para
></entry>
<entry
><para
>Går till slutet av filen </para
></entry
></row>

<row
><entry
><para
><keycap
>Hem </keycap
></para
></entry>
<entry
><para
>Går till början av raden </para
></entry
></row>

<row
><entry
><para
><keycap
>End </keycap
></para
></entry>
<entry
><para
>Går till slutet av raden </para
></entry
></row>

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

<para
>För alla tangenter ovan, kan dessutom skifttangenten tryckas ner, för att markera text från markörens nuvarande position till den nya. </para>

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

<row
><entry
><para
><keycap
>Backsteg </keycap
></para
></entry>
<entry
><para
>Tar bort ett tecken åt vänster </para
></entry
></row>

<row
><entry
><para
><keycap
>Ta bort </keycap
></para
></entry>
<entry
><para
>Tar bort tecknet under markören </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> C </keycap
></keycombo
></para
></entry>
<entry
><para
>Kopierar den markerade texten till klippbordet </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> V </keycap
></keycombo
></para
></entry>
<entry
><para
>Klistrar in den markerade texten från klippbordet </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> X </keycap
></keycombo
></para
></entry>
<entry
><para
>Tar bort den markerade texten och lägger den på klippbordet </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Ctrl </keycap
><keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Ångra </para
></entry
></row>

<row
><entry
><para
><keycombo
><keycap
> Skift </keycap
><keycap
> Ctrl </keycap
><keycap
> Z </keycap
></keycombo
></para
></entry>
<entry
><para
>Gör om </para
></entry
></row>

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

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

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

<sect1 id="editing-reporter">
<title
>Problemrapporter</title>

<para
>(... ännu inte skrivet ...) </para>
</sect1
> <!-- editing-reporter -->

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

<sect1 id="searchinggrepping">
<title
>Sökning och flerfilssökning</title>
<indexterm zone="searchinggrepping"
><primary
>sökning</primary
></indexterm>
<indexterm zone="searchinggrepping"
><primary
>hitta</primary
></indexterm>

<sect2 id="searching">
<title
>Söka efter text</title>

<para
><keycombo
><keycap
>Ctrl</keycap
><keycap
>F</keycap
></keycombo
>- Sök, <keycombo
><keycap
>Ctrl</keycap
><keycap
>R</keycap
></keycombo
>- Ersätt </para>

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


<sect2 id="isearch">
<title
>I-sök</title>
<indexterm zone="isearch"
><primary
>i-sök</primary
></indexterm>
<indexterm zone="isearch"
><primary
>inkrementell sökning</primary
></indexterm>
<indexterm zone="isearch"
><primary
>sök</primary
><secondary
>inkrementell</secondary
></indexterm>

<para
>Den vanliga sökningen med <menuchoice
><guimenu
>Redigera</guimenu
><guimenuitem
>Sök</guimenuitem
></menuchoice
> kräver att du anger hela sökbegreppet innan du startar. Oftast är det mycket snabbare att söka inkrementellt. Om du klickar på sökfältet som heter <guilabel
>I-sök</guilabel
> i verktygsraden, sker sökningen medan du skriver. Du kommer att märka att det önskade resultatet ofta redan hittas när du har skrivit in 3 eller 4 tecken. </para>

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


<sect2 id="grep">
<title
>Flerfilsökning</title>
<indexterm zone="grep"
><primary
>sök</primary
><secondary
>i filer</secondary
></indexterm>

<para
>Båda sökmekanismerna som beskrivs ovan är begränsade till sökning i en källkodsfil. Ett ytterligare verktyg som låter dig söka igenom ett (möjligtvis stort) antal filer är tillgängligt via alternativet <guimenuitem
>Sök i filer...</guimenuitem
> i menyn <guimenu
>Redigera</guimenu
>. Det är i grunden ett gränssnitt för programmet &grep;(1). </para>

<para
>I dialogrutan kan du ange vilka filer som ska sökas i. Det finns ett antal jokertecken tillgängliga i en kombinationsruta. Genom att använda dem kan du enkelt begränsa sökmekanismen till exempel för deklarationsfiler. Dessutom kan du också ange en katalog där sökningen startas. Om du markerar rutan <guibutton
>Rekursiv</guibutton
>, går sökningen igenom alla kataloger i hierarkin under den angivna. </para>

<para
>Sökbegreppet är i grunden ett reguljärt uttryck som följer POSIX-syntax. Du kan till exempel använda begreppet <literal
>"\&lt;K.*"</literal
>, om du vill hitta alla ord som börjar med bokstaven K. Följande tecken tolkas på ett särskilt sätt: </para>

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

<row
><entry>
  <literal
>.</literal>
</entry
><entry
>Matchar alla tecken </entry
></row>
<row
><entry>
  <literal
>^</literal>
</entry
><entry
>Matchar början av en rad </entry
></row>
<row
><entry>
  <literal
>$</literal>
</entry
><entry
>Matchar slutet av en rad </entry
></row>
<row
><entry>
  <literal
>\&lt;</literal>
</entry
><entry
>Matchar början av ett ord </entry
></row>
<row
><entry>
  <literal
>\&gt;</literal>
</entry
><entry
>Matchar slutet av ett ord </entry
></row>
<row
><entry>
  <literal
>?</literal>
</entry
><entry
>Föregående objekt matchas mindre än en gång </entry
></row>
<row
><entry>
  <literal
>*</literal>
</entry
><entry
>Föregående objekt matchas noll eller flera gånger </entry
></row>
<row
><entry>
  <literal
>+</literal>
</entry
><entry
>Föregående objekt matchas en eller flera gånger </entry
></row>
<row
><entry>
  <literal
>{n}</literal>
</entry
><entry
>Föregående objekt matchas exakt n gånger </entry
></row>
<row
><entry>
  <literal
>{n,}</literal>
</entry
><entry
>Föregående objekt matchas n eller flera gånger </entry
></row>
<row
><entry>
  <literal
>{,n}</literal>
</entry
><entry
>Föregående objekt matchas mindre än n gånger </entry
></row>
<row
><entry>
  <literal
>{n,m}</literal>
</entry
><entry
>Föregående objekt matchas minst <literal
>n</literal
> gånger, men mindre än <literal
>m</literal
> gånger </entry
></row>

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

<para
>Bakåtreferenser till deluttryck inom parenteser är också tillgängliga med notationen <literal
>\n</literal
>. </para>

<para
>Som en särskild bonus för C++ programmerare, finns några sökmallar tillgängliga för typiska mönster. De låter dig till exempel söka efter alla anrop av medlemsfunktioner för ett visst objekt. </para>

<para
>När du väl har startat sökningen genom att klicka på knappen <guibutton
>Sök</guibutton
>, utförs den av en yttre, asynkron process. Alla objekt som hittas syns i vyn som heter <guilabel
>Flerfilsökning</guilabel
>. Därefter kan du hoppa till objekt som hittas genom att klicka på dem. Observera att grep söker igenom filerna som är lagrade i filsystemet. Om du har ändrade versioner av dem i editorn, kan du få felaktiga radnummer, eller vissa ogiltiga hittade objekt. Du kan undvika detta genom att spara alla filer innan. </para>

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

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

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

<sect1 id="code-completion">
<title
>Kodkomplettering</title>

<para
>(... ännu inte skrivet ...) </para>
</sect1
> <!-- code-completion -->

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

<sect1 id="newfiles">
<title
>Skapa nya filer och klasser</title>

<para
>(... ännu inte skrivet ...) </para>

<sect2 id="newfiles-edittemplates">
<title
>Redigera mallarna</title>

<para
>(... ännu inte skrivet ...) </para>
</sect2
> <!-- newfiles-edittemplates -->

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

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

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

<chapter id="file-browsers">
<title
>Filbläddrarna</title>

<para
>På vänstra sidan i huvudfönstret, kan &kdevelop; visa olika sorters listor och träd för att välja filer: </para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Filträd</title>
<para
>Det visar en trädvy av filhierarkin under projektkatalogen. Om du klickar på en fil, laddas den i editorn. För filer som inte innehåller text, startar KDevelop ett program som kan hantera motsvarande MIME-typ. </para>
</formalpara>

<para
>Filträdet uppdateras regelbundet så fort någonting ändras i filsystemet. Om du till exempel skapar nya filer eller kataloger (till och med utanför &kdevelop;), syns det omedelbart i fillistan. På Linux använder den här funktionen FAM-biblioteket. På andra operativsystem, eller via NFS, kontrolleras katalogerna som visas med korta intervall. </para>

<para
>Filträdet döljer filer som oftast inte är intressanta, som objektfiler. I <guimenuitem
>Projektalternativ</guimenuitem
> under <guibutton
>Filvyer</guibutton
>, kan du anpassa vilka mönster som används för att filtrera bort ointressanta filer (som en lista med jokertecken, åtskilda med kommatecken). </para>

<para
>Du kan dessutom välja att begränsa filträdet så att det bara visar filer som hör till projektet som för närvarande är laddat. Det kan ändras genom att klicka med höger musknapp på trädets rot. </para>

<figure id="screenshot-filetree" float="1">
<title
>En skärmbild av filträdet</title>
<mediaobject>
<imageobject
><imagedata fileref="filetree.png"/></imageobject>
</mediaobject>
</figure>

</listitem>

<listitem>
<formalpara>
<title
>Filgrupper</title>
<para
>Det här visar filerna som tillhör projektet, grupperade enligt filändelsen. Som i filträdet, kan du redigera en fil genom att klicka på den med vänster musknapp. </para>
</formalpara>

<para
>Grupperna som visas i vyn kan ställas in under <guibutton
>Filvyer</guibutton
> i dialogrutan <guimenuitem
>Projektinställningar</guimenuitem
>. För att anpassa vyn enligt dina behov, är det viktigt att förstå hur filer tilldelas till grupperna. För varje fil, går &kdevelop; igenom grupperna uppifrån och ner. I varje grupp kontrolleras om filnamnet matchar ett av mönstren. Vid en träff, visas filen i gruppen och upprepningen avbryts. Detta klargör att mer generella mönster ska placeras under mer specifika. Till exempel ska en asterisk för gruppen <guilabel
>Övriga</guilabel
> vara det sista mönstret. </para>

</listitem>

</itemizedlist>

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

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

<chapter id="class-browsers">
<title
>Klassbläddraren</title>
<indexterm zone="class-browsers"
><primary
>klassbläddraren</primary
></indexterm>

<para
>Vid arbete med ett projekt i ett objektorienterat språk, läggs inte tonvikten på källkodsfilerna och deras namn, utan på klasserna och deras samband. För att hjälpa dig navigera bland definierade klasser och symboler, innehåller &kdevelop; diverse klassbläddrare som synliggör klasstrukturen på olika sätt. </para>

<sect1 id="classview">
<title
>Klassvy</title>

<para
>Den här vyn visas till vänster i huvudfönstret och innehåller en linjär lista av alla klasser, variabler och funktioner i projektet. Den är konstruerad som en trädvy. Om du öppnar en klassnod genom att klicka på den, visas en lista med alla metoder och egenskaper som respektive klass har. </para>

<figure id="screenshot-classview" float="1">
<title
>En skärmbild av klassbläddraren</title>
<mediaobject>
<imageobject
><imagedata fileref="classview.png"/></imageobject>
</mediaobject>
</figure>

<para
>Klassvyn arbetar i två olika lägen. Normalt grupperas alla symboler i <quote
>Klasser</quote
>, <quote
>Struct:ar</quote
>, <quote
>Funktioner</quote
>, <quote
>Variabler</quote
> och <quote
>Namnrymder</quote
>. I den sammanhangsberoende menyn, kan du välja <guimenuitem
>Lista enligt namnrymder</guimenuitem
>. Med detta läge, visas namnrymdshierarkin, och symboler grupperas i respektive namnrymd där de definieras. Det här kan vara mer användbart i projekt som använder många (hierarkiska) namnrymder. Det är mindre användbart i projekt utan namnrymder. </para>

<para
>Du kan också ändra sättet som klassnamn visas. Normalt visas klassernas namn, utan namnrymden där de definieras. Det betyder att du inte omedelbart kan skilja på klasser med samma namn i olika namnrymder. Om du håller musen still ett ögonblick över ett namn, visas dock det fullständiga namnet som ett verktygstips. Du kan välja att alltid visa det fullständiga klassnamnet genom att välja <guimenuitem
>Fullständig räckvidd för identifierare</guimenuitem
> i den sammanhangsberoende menyn. </para>

<para
>Genom att klicka på en klass eller metod i en klassvy kommer du till dess definition. Du kan också hoppa till en metods deklaration genom att välja <guimenuitem
>Gå till deklaration</guimenuitem
> i den sammanhangsberoende menyn. I den sammanhangsberoende menyn för klasser finns också alternativen <guimenuitem
>Lägg till metod...</guimenuitem
> och <guimenuitem
>Lägg till egenskap...</guimenuitem
> De öppnar dialogrutor där du kan skapa nya metoder och variabeldeklarationer för den relevanta klassen, tillsammans med en tom implementering. </para>

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

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

<sect1 id="classtools">
<title
>Klassverktyg</title>

<para
>Klassverktygsdialogrutan aktiveras genom att högerklicka på en klass i klassvyn och välja <guimenuitem
>Klassverktyg...</guimenuitem
>. </para>

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

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

<sect1 id="classhierarchy">
<title
>Klasshierarki</title>

<para
>(... ännu inte skrivet ...) </para>

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

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

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

<chapter id="documentation">
<title
>Dokumentation</title>

<para
>Dokumentation är tyvärr en av de mest förbisedda delarna av programmering. Ändå så erbjuder riktigt upprättad och underhållen intern och extern dokumentation ytterst värdefull hjälp. </para>
<para
>Dokumentation har flera aspekter. Det finns <itemizedlist>
  <listitem
><para
><emphasis
>intern projektdokumentation</emphasis
>, som i huvudsak består av <itemizedlist>
    <listitem
><para
><emphasis
>kommentarer</emphasis
> i deklarationsfiler och källkodsfiler </para
></listitem>
    <listitem
><para
><emphasis
>Intern dokumentation av programmeringsgränssnittet</emphasis
> för projektet, som har skapats från programfilerna av särskilda verktyg, t.ex. &doxygen; </para
></listitem>
  </itemizedlist>
  </para
></listitem>
  <listitem
><para
><emphasis
>extern projektdokumentation</emphasis
>, som bland annat består av <itemizedlist>
    <listitem
><para
><emphasis
>extern dokumentation av programmeringsgränssnitt</emphasis
>, till exempel för gemensamma systembibliotek (<application
>KDE</application
>, <application
>Qt</application
>, etc.) </para
></listitem>
    <listitem
><para
>all övrig dokumentation (manualer för programspråk, allmän systeminformation, handledningar och liknande) </para
></listitem>
  </itemizedlist>
  </para
></listitem>
</itemizedlist>
</para>
<para
>All denna dokumentation ska vara enkel att underhålla och lätt tillgänglig så fort du behöver den. &kdevelop; har stöd för just detta. </para>

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

<sect1 id="docbrowser">
<title
>Dokumentationsbläddraren</title>


<figure id="screenshot-doctreeview" float="1">
<title
>En skärmbild av dokumentationsträdet</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
>Avancerad bygghantering</title>
<indexterm zone="adv-build-management"
><primary
>&automake;</primary
></indexterm>

<sect1 id="buildconfigurations">
<title
>Flera bygginställningar</title>
<indexterm zone="buildconfigurations"
><primary
>bygginställningar</primary
><secondary
>flera</secondary
></indexterm>

<para
>(... ännu inte skrivet ...) </para>

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

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

<sect1 id="crosscompiling">
<title
>Korskompilering</title>
<indexterm zone="crosscompiling"
><primary
>korskompilera</primary
></indexterm>
<indexterm zone="crosscompiling"
><primary
>kompilera</primary
><secondary
>kors</secondary
></indexterm>
<indexterm zone="crosscompiling"
><primary
><option
>--host</option
></primary
></indexterm>

<para
>Om du har lämpliga korskompilatorer tillgängliga, kan du kompilera dina program för processorer och operativsystem som skiljer sig från systemet där &kdevelop; och kompilatorn kör. &GNU;-kompilatorn, &gcc;, kan konfigureras och kompileras som en korskompilator om du kompilerar den själv. Rådfråga <ulink url="info://gcc/Cross-Compiler"
>GCC infosidorna</ulink
> för mer information. Vissa Linux-distributioner tillhandahåller också binärpaket. </para>

<para
>Ett automake-baserat paket kan lätt korskompileras genom att ange väljaren <option
>--host</option
> till configure-skriptet och ställa in miljövariablerna <envar
>CC</envar
> och <envar
>CXX</envar
> till motsvarande korskompilatorer. Ofta vill du byta mellan en korskompilerad version av programmet, och en som kompilerats för utvecklingssystemet. För att göra det, är det en fördel att använda möjligheten i &kdevelop; att skapa flera byggkonfigurationer, som förklaras under <xref linkend="buildconfigurations"/>. När du har skapat en ny byggkonfiguration för korskompilering i dialogrutan <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Projektalternativ...</guimenuitem
></menuchoice
>, lägg till väljaren </para>

<para
><screen
><option
>--host=</option
><replaceable
>plattform</replaceable
>
</screen
></para>

<para
>till configure-väljarna. Värdet <replaceable
>plattform</replaceable
> är en kombination av formen </para>

<programlisting
>cpu-tillverkare-operativsystem</programlisting>
<para
>eller</para>
<programlisting
>cpu-tillverkare-kärna-operativsystem</programlisting>

<para
>För många kombinationer kan du använda en kortform, till exempel <wordasword
>i386-linux</wordasword
> eller <wordasword
>arm-elf</wordasword
>. </para>

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

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

<sect1 id="qtembedded">
<title
>Qt/Embedded</title>
<indexterm zone="qtembedded"
><primary
>inbäddad</primary
><secondary
>Qt</secondary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qt/Embedded</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>Qtopia</primary
></indexterm>
<indexterm zone="qtembedded"
><primary
>rambuffer</primary
></indexterm>

<para
>&qte; är en version av &Qt;-biblioteket som inte använder X-window systemet, utan ritar direkt i rambuffern på Linuxsystem. Den är därför intressant för inbäddade system som har hårda begränsningar för minnesanvändningen i hela systemet. Dess programmeringsgränssnitt överensstämmer fullständigt med X11-versionen. </para>

<para
>Att utveckla ett program för &qte; med &kdevelop; skiljer sig inte mycket från att utveckla ett program för X11-versionen av &Qt;. I själva verket kan du använda samma grundkod för båda versionerna. Om du använder projekthantering med autoprojekt, kan du byta till den inbäddade versionen genom att skicka väljaren <option
>--enable-embedded</option
> till configure-skriptet. Du kan ställa in det i dialogrutan <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Projektinställningar...</guimenuitem
></menuchoice
> under <guilabel
>Inställning av configure</guilabel
>. Med väljaren <option
>--with-qt-dir=KATALOG</option
>, kan du ställa in katalogen där &qte; är installerad. </para>

<para
>Efter att ha konfigurerat och kompilerat programmet med dessa väljare, länkas det med biblioteket <filename
>libqpe.so</filename
>. Den här versionen av programmet kör inte normalt när du använder X11. För att prova den, kör den med hjälp av programmet <application
>qvfb</application
> (Qt:s virtuella rambuffer). Det görs genom att starta <application
>qvfb</application
> och därefter starta programmet med </para>

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

<para
>När du har en version av programmet som fungerar, vill du naturligtvis använda den på målprocessorn. Det kan troligen vara bekvämt att kunna skapa flera byggkonfigurationer, som förklaras ovan, så att du snabbt kan byta mellan versionen som kör på utvecklingssystemet och versionen som kör på målsystemet. </para>

<para
>Program för &qte; kör normalt som enkla program på enheten de är konstruerade för. Trolltech stöder också Qtopia, som är en samling program för personlig information, webbläsning och diverse andra områden som fungerar tillsammans på ett konsekvent sätt. Det är till exempel standardomgivningen på Sharp Zaurus. Du kan skriva program som passar in i denna omgivning genom att använda Qtopias utvecklingsmiljö (SDK). Det medför att ditt program måste vara en delklass till <classname
>QPEApplication</classname
> och det måste länkas med biblioteket <filename
>libqpe.so</filename
>. Om du utvecklar programmet med projekthanteringen autoprojekt, måste du lägga till <option
>--enable-qtopia</option
> till konfigurationsväljarna. </para>

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

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

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

<chapter id="debugger">
<title
>Avlusargränssnittet</title>
<indexterm zone="debugger"
><primary
>avlusare</primary
></indexterm>

<para
>&kdevelop; innehåller en intern avlusare för C och C++, som är direkt integrerad med editorn. Tekniskt sett är den implementerad som ett gränssnitt som använder den flyttbara &GNU;-avlusaren <application
>gdb</application
> via en rörledning. Avlusaren kan startas på flera sätt: </para>

<itemizedlist>
<listitem>
<para
>Huvudprogrammet i projektet laddas i avlusaren med <menuchoice
><guimenu
>Avlusa</guimenu
><guimenuitem
>Starta</guimenuitem
></menuchoice
>. </para>
</listitem>

<listitem>
<para
>Genom att använda <menuchoice
><guimenu
>Avlusa</guimenu
> <guimenuitem
>Starta (annan)</guimenuitem
> <guimenuitem
>Undersök minnesdump</guimenuitem
></menuchoice
>, laddar du en minnesdump till minnet, som skapats av operativsystemets kärna när programmet kraschade. (Att skapa minnesdumpar kan vara avstängt på systemet, se <application
>ulimit(1)</application
>). Det här är användbart för en post-mortem analys av ett program. </para>
</listitem>

<listitem>
<para
>Du startar avlusaren för ett program som redan kör med <menuchoice
><guimenu
>Avlusa</guimenu
><guimenuitem
>Starta (annan)</guimenuitem
> <guimenuitem
>Anslut till process</guimenuitem
></menuchoice
>. En processlista visas där du kan välja processen som avlusaren ska överta. </para>
</listitem>

<listitem>
<para
>Observera att avlusning bara är möjlig om projektet har kompilerats med avlusningsinformation aktiverad. Den kan aktiveras i dialogrutan <guibutton
>Kompilatorinställningar</guibutton
>. När alternativet är aktiverat, skapar kompilatorn ytterligare information som låter avlusaren associera filnamn och radnummer med adresser i det körbara programmet. </para>
</listitem>
</itemizedlist>

<para
>Gränssnittet till avlusaren erbjuder flera vyer <quote
>in i</quote
> processen: </para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Variabler</title>
<indexterm zone="debugger"
><primary
>bevakningsvariabler</primary
></indexterm>
<para
>Det här fönstret visar värden för alla lokala variabler vid det nuvarande stället i programmet. Det täcker variablerna i kompilatorns anropsstack, dvs. funktionen där processen bröts, funktionen som anropade den här funktionen, och så vidare hela vägen till funktionen <function
>main()</function
>. </para>
</formalpara>

<para
>En annan gren i variabelfönstret innehåller bevakningsvariabler. Du kan själv ställa in vilka variabler som syns här. Både lokala och globala variabler kan bevakas. Du kan antingen lägga till en variabel genom att klicka på knappen <guibutton
>Lägg till</guibutton
> eller trycka på returtangenten när posten <keycap
>Bevaka</keycap
> är markerad. Variablerna kan tas bort igen med den sammanhangsberoende menyn. </para>
</listitem>

<listitem>
<formalpara>
<title
>Brytpunkter</title>
<indexterm zone="debugger"
><primary
>brytpunkter</primary
></indexterm>
<para
>(... ännu inte skrivet ...) </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Aktiveringspoststack</title>
<indexterm zone="debugger"
><primary
>aktiveringspost-stack</primary
></indexterm>
<para
>(... ännu inte skrivet ...) </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Visa assemblerkod</title>
<indexterm zone="debugger"
><primary
>visa assemblerkod</primary
></indexterm>
<para
>(... ännu inte skrivet ...) </para>
</formalpara>
</listitem>

</itemizedlist>


<sect1 id="settingbreakpoints">
<title
>Ange brytpunkter</title>

<para
>(... ännu inte skrivet ...) </para>

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

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

<sect1 id ="debuggeroptions">
<title
>Alternativ</title>

<formalpara>
<title
>Visa behandlade namn</title>
<indexterm zone="debugger"
><primary
>namnbehandling</primary
></indexterm>
<indexterm zone="debugger"
><primary
>behandling</primary
><secondary
>namn</secondary
></indexterm>

<para
>Funktionsnamn i det körbara programmet är <quote
>behandlade</quote
> för C++, dvs. funktionsnamnet innehåller information om argumentens typer. Detta är nödvändigt för att stödja överlastade funktioner. Behandlingsalgoritmen är inte standardiserad, och skiljer sig till och med mellan olika versioner av &GNU;:s C++ kompilator. </para>
</formalpara>

<para
>I assemblerkodfönstret visas normalt obehandlade namn, så funktionssignaturer liknar utseendet i källkoden, och är lätt läsbara. Alternativt, kan du välja att se behandlade namn. </para>

<formalpara>
<title
>Försök sätta brytpunkter när bibliotek laddas</title>
<indexterm zone="debugger"
><primary
>lata brytpunkter</primary
></indexterm>
<indexterm zone="debugger"
><primary
>brytpunkter</primary
><secondary
>lat</secondary
></indexterm>

<para
>Avlusarens bakgrundsprogram <application
>gdb</application
> tillåter inte att brytpunkter sätts i kod som inte för närvarande är laddad. I ett riktigt modulärt program, där kod ofta bara laddas vid behov som insticksprogram (med användning av C-bibliotekets funktion <function
>dlopen(3)</function
>), kan detta vara besvärande. Därför hanterar &kdevelop; själv stöd för brytpunkter i delade bibliotek. Om du aktiverar det här alternativet, kan du sätta brytpunkter i bibliotek som inte laddats. Därefter, så fort <application
>gdb</application
> talar om att ett bibliotek har laddats, försöker &kdevelop; sätta de vilande brytpunkterna. </para>
</formalpara>

<formalpara>
<title
>Aktivera flytande verktygsrad</title>
<indexterm zone="debugger"
><primary
>avlusningsverktygsrad</primary
></indexterm>
<indexterm zone="debugger"
><primary
>verktygsrad</primary
><secondary
>avlusare</secondary
></indexterm>

<para
>(... ännu inte skrivet ...) </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
>Använda CVS</title>
<indexterm zone="cvs"
><primary
>CVS</primary
></indexterm>
<indexterm zone="cvs"
><primary
>versionskontroll</primary
></indexterm>

<sect1 id="cvs-basics">
<title
>&CVS; grunder</title>

<para
>&CVS; är versionshanteringssystemet som många projekt med öppen källkod, inklusive &kde;, använder. Det lagrar all källkod på en centralt plats, som kallas <emphasis
>arkivet</emphasis
>. Utvecklare hämtar en aktuell version av projektet eller versioner av det vid godtyckliga tidpunkter, från arkivet. I motsats till vissa andra versionshanteringssystem, är det inte nödvändigt att <emphasis
>låsa</emphasis
> filer som man ska arbeta med. Alltså kan utveckling ske parallellt i stor utsträckning. </para>

<para
>Så fort en utvecklare är klar med en uppgift, <emphasis
>arkiverar</emphasis
> han sin kod (tillsammans med ett loggmeddelande). &CVS; tar hand om arbetet att sammanfoga ändringar som görs av flera utvecklare. Det kan förstås hända att utvecklare arbetar med samma kodavsnitt, vilket ger upphov till ändringar med konflikter (i praktiken inträffar detta sällan, och är ofta ett tecken på bristande kommunikation). I detta fall, förkastar &CVS; arkiveringen. En fil kan bara arkiveras efter alla konflikter har lösts upp. </para>

<para
>Hittills har de grundläggande funktionerna i &CVS;, som man oftast måste hantera, beskrivits. Men &CVS; erbjuder mycket mer: Man kan hantera flera grenar av ett projekt (t.ex. var &kde; 1.1.2 och &kde; 2 grenar i &kde;:s utvecklingsträd), sammanfoga ändringar från en gren till en annan, fråga efter skillnader mellan versioner och filers versionshistorik, etc. </para>

<para
>&CVS; implementeras som ett klient-serversystem. Som användare, sker all kommunikation med arkivet via kommandoradsprogrammet &cvs;. Gränssnitt på högre nivå är tillgängligt via program som <application
>Cervisia</application
> (<ulink url="http://cervisia.sf.net"
> </ulink
>) eller <application
>TkCVS</application
> (<ulink url="http://tkcvs.sf.net"
></ulink
>). Bara en liten del av &cvs; funktioner, som är viktiga under det dagliga arbetet, kan användas direkt i &kdevelop;. </para>

<para
>Grundläggande kunskap om användning av &CVS; förutsätts. I synnerhet bör du veta hur ett givet projekt hämtas från arkivet. Vi rekommenderar boken <citetitle pubwork="book"
>Open Source Development With CVS</citetitle
> av Karl Fogel, som kan spridas fritt (utom de icke-tekniska kapitlen). Se <ulink url="http://cvsbook.red-bean.com/cvsbook.html"
></ulink
>. </para>

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

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

<sect1 id="cvs-commands">
<title
>&CVS;-kommandon i &kdevelop;</title>

<para
>Följande alternativ är tillgängliga i filvyernas sammanhangsberoende menyer: </para>

<itemizedlist>

<listitem>
<formalpara>
<title
>Lägg till i arkivet</title>
<para
>Förbereder en fil för att läggas till i arkivet. Filen överförs till arkivet när du arkiverar den (eller katalogen som den finns i) nästa gång. </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Ta bort från arkivet</title>
<para
>Förbereder en fil för att tas bort från arkivet. Det här tar också bort filen från det lokala filsystemet, så använd funktionen med försiktighet! </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Uppdatera</title>
<para
>Kör kommandot <command
>cvs update</command
> för att sammanfoga eventuella ändringar från andra användare till din arbetskatalog. När du använder menyalternativet för en katalog, sker uppdateringen normalt rekursivt, utom om du har stängt av det i inställningsfilen <filename
>.cvsrc</filename
>. </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Arkivera</title>
<para
>Kör <command
>cvs commit</command
> för att arkivera alla lokala ändringar i arkivet. Observera att du bör uppdatera innan du gör detta. Om en annan användare tidigare har arkiverat sina ändringar, kan &CVS; annars ge ett felmeddelande. </para>
</formalpara>
</listitem>

</itemizedlist>

<para
>Alla kommandon startas som underprocesser av &kdevelop;, utan ytterligare kommandoradsväljare eller miljövariabler. Det här kan vara ett problem om anslutningen till &CVS;-servern går via en &ssh;-anslutning, och kräver att du skriver in ett lösenord varje gång du arkiverar eller uppdaterar. Det här är till exempel nödvändigt om projektets värd är <filename
>sourceforge.net</filename
>. Ett sätt att gå runt problemet beskrivs i vanliga frågor om CVS/SSH, som du hittar i SourceForge-dokumentationen. </para>

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

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

<sect1 id="cvs-behind">
<title
>Bakom ridån</title>

<sect2 id="cvs-behind-workdir">
<title
>Vad &CVS; sparar i arbetskatalogen</title>

<para
>(... ännu inte skrivet ...) </para>
</sect2
> <!-- cvs-behind-workdir -->

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

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

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

<chapter id="external-progs">
<title
>Dra nytta av externa program</title>
<indexterm zone="external-progs"
><primary
>program</primary
><secondary
>externa</secondary
></indexterm>

<para
>Även om &kdevelop; är en så kallad <quote
>integrerad</quote
> utvecklingsmiljö, kommer den aldrig att innehålla alla funktioner som du kan vilja använda, och möjligheterna i dess editor kommer aldrig att räcka till för att utföra ofta använda textbehandlingsåtgärder. Som ett verkligt &UNIX;-program innehåller &kdevelop; flera möjligheter att starta externa program, att koppla in externa program för att behandla filer, eller använda externa filter för att behandla editorns nuvarande innehåll. </para>

<para
>Den mest generella och enkla funktionen av den här typen är verktygsmenyn, som du kan anpassa fritt. Det görs i dialogrutan <menuchoice
><guimenu
>Inställningar</guimenu
><guimenuitem
>Anpassa KDevelop...</guimenuitem
></menuchoice
> under <guibutton
>Externa verktyg</guibutton
>. </para>

<para
>Andra verktyg beskrivs i kapitlet <xref linkend="plugin-tools"/>. </para>

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


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

<chapter id="credits">
<title
>Tack till</title>

<sect1 id="credits-contributions">
<title
>Bidragsgivare</title>

<para>
<itemizedlist>
  <listitem
><para
>Det ursprungliga innehållet i den här handboken skrevs av Bernd Gehrmann <email
>bernd@kdevelop.org</email
> och Caleb Tennis <email
>caleb@aei-tech.com</email
>. </para
></listitem>
  <listitem
><para
>Kapitlen <link linkend="automake-manager-summary"
>Sammanfattning av Hantering av automake</link
> och <link linkend="automake-manager-operation"
>Användning av Hantering av automake</link
> är skrivna av Ian Wadham, <email
>ianw@netspace.net.au</email
>. </para
></listitem>
</itemizedlist>
</para>

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

<!--CREDITS_FOR_TRANSLATORS-->

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

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

<appendix id="app-menus">
<title
>Översikt över menyer och verktygsrader</title>

<para
>(... ännu inte skrivet ...) </para>

</appendix
> <!-- app-menus -->

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

<appendix id="app-shortcuts">
<title
>Snabbtangenter</title>

<para
>(... ännu inte skrivet ...) </para>

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

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

<appendix id="plugin-tools">
<title
>Insticksverktyg</title>

<indexterm zone="plugin-tools">
  <primary
>insticksverktyg</primary
></indexterm>

<para
>&kdevelop; innehåller ett stort antal små verktyg, som hjälper dig att utföra vissa uppgifter. De flesta fungerar som insticksprogram. Det betyder att om du inte tycker om något av dem, kan du helt enkelt stänga av det i dialogrutan <guimenuitem
>Projektinställningar</guimenuitem
> under <guibutton
>Insticksprogram</guibutton
> (för insticksprogram som gäller hela projektet) eller under <menuchoice
><guimenu
>Inställningar</guimenu
><guimenuitem
>Anpassa KDevelop...</guimenuitem
></menuchoice
>. Insticksprogram som stängs av belastar inte menyer och laddas inte i minnet. </para>

<itemizedlist>
<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>abbrev</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>abbrev</command
></primary
></indexterm>

<para
>Det här insticksprogrammet fyller i förkortningar av ofta använda kodfragment. Det aktiveras genom att trycka på <keycombo
><keycap
>Ctrl</keycap
><keycap
>Mellanslag</keycap
></keycombo
>. Om du till exempel skriver in <literal
>"ife"</literal
> i C++ editorn, och trycker på <keycombo
><keycap
>Ctrl</keycap
><keycap
>Mellanslag</keycap
></keycombo
>, får du en <literal
>if-else</literal
> kodmall och sparar några tangentnertryckningar. Uppsättningen med förkortningar som stöds beror på den redigerade filens programspråk. För till exempel PHP är du naturligtvis intresserad av andra kodmallar än för &Java;. </para>
</formalpara>

<para
>Uppsättningen med kodmallar kan anpassas. Du kan se vilka som är tillgängliga i dialogrutan <menuchoice
><guimenu
>Inställningar</guimenu
><guimenuitem
>Anpassa KDevelop...</guimenuitem
></menuchoice
> under <guibutton
>Förkortningar</guibutton
>. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>filter</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>filter</command
></primary
></indexterm>

<para
>Detta erbjuder två funktioner. Om du väljer <menuchoice
><guimenu
>Verktyg</guimenu
><guimenuitem
>Kör kommando</guimenuitem
></menuchoice
> kan du skriva in ett skalkommando. Utmatningen från kommandot infogas i editorns buffer när du trycker på knappen <guibutton
>Starta</guibutton
>. </para>
</formalpara>

<para
>En liknande funktion är tillgänglig under <menuchoice
><guimenu
>Verktyg</guimenu
><guimenuitem
>Filtrera markering genom kommando...</guimenuitem
></menuchoice
>. För att använda det här, måste du markera ett textområde i editorn. Om du nu skriver in ett skalkommando och trycker på knappen <guibutton
>Starta</guibutton
>, så startas kommandot och markeringen används som standardinmatning till det. Standardutmatningen infogas sedan i editorn. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet &doxygen;</title>
<indexterm zone="plugin-tools"
><primary
>&doxygen;</primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>dokumentationsverktyg</primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>API-dokumentation</primary
></indexterm>

<para
>Detta hjälper dig att använda API-dokumentationsverktyget &doxygen; (<ulink url="http://www.doxygen.org"
></ulink
>). Du kan välja <menuchoice
><guimenu
>Projekt</guimenu
><guimenuitem
>Kör Doxygen</guimenuitem
></menuchoice
> för att skapa API-dokumentation för det nuvarande projektet baserat på konfigurationen som anges av filen <filename
>Doxyfile</filename
> i projektkatalogen. </para>
</formalpara>

<para
>Dessutom kan du anpassa &doxygen; med dialogrutan <menuchoice
><guimenu
>Projekt</guimenu
><guimenuitem
>Projektinställningar...</guimenuitem
></menuchoice
>. Dialogrutan är mycket lik verktyget &doxywizard;. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet &ctags;</title>
<indexterm zone="plugin-tools"
><primary
>&ctags;</primary
></indexterm>

<para
>Även om klassbläddraren ger dig utförlig överblick över symboler och klasser i projektet, kan du också vilja använda ctags-verktyget. Det stöder i synnerhet många fler språk än klassbläddraren. </para>
</formalpara>

<para
>Du aktiverar insticksprogrammet under <menuchoice
><guimenu
>Verktyg</guimenu
><guimenuitem
>CTags...</guimenuitem
></menuchoice
>. När du startar det för första gången, blir du tillfrågad om att först skapa en sökdatabas. När du accepterar detta, startas &ctags;-programmet och skapar en fil som heter <filename
>tags</filename
> i projektkatalogen. Detta är en textfil som innehåller alla symboler i källkodsfilerna. </para>

<para
>Du kan söka på två sätt i symboldatabasen: när rutan <guilabel
>Matcha med reguljärt uttryck</guilabel
> är markerad, tolkas texten som du skriver in som ett reguljärt uttryck (POSIX-varianten) och matchas med befintliga symboler. Texten <literal
>.*Widget</literal
> söker till exempel efter alla symboler som slutar med <literal
>Widget</literal
>. Om rutan inte är markerad, är sökningen verbatim. </para>

<para
>Under sökningen visas en lista med matchade symboler, tillsammans med radnummer där de definieras. Du hoppar till respektive ställe genom att klicka i listan. </para>

<para
>För vissa språk skiljer &ctags; mellan olika typer av symboler. Python har till exempel klasser och funktioner. Du kan söka enbart efter klasser genom att kryssa in motsvarande typ i dialogrutan. </para>

<para
>Symboldatabasen uppdateras normalt inte när källkoden ändras. På grund av detta kommer inte radnumren vara riktiga längre efter ett tag, och nytillagda klasser och funktioner kommer att saknas. Därför bör du uppdatera filen <filename
>tags</filename
> med regelbundna intervall, genom att trycka på knappen <guibutton
>Skapa om</guibutton
>. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>astyle</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>astyle</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
><application
>Grafisk stil</application
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>indrag</primary
></indexterm>

<para
>(... ännu inte skrivet ...) </para>
</formalpara>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>regexptest</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>regexptest</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>avlusning</primary
><secondary
>reguljära uttryck</secondary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>reguljära uttryck</primary
><secondary
>avlusning</secondary
></indexterm>

<para
>Att konstruera reguljära uttryck kan vara ett hårt arbete. Ofta matchar det första försöket med ett uttryck för många strängar. I synnerhet vid arbete med ett kompilerat språk kan cykeltiden vid avlusning av ett reguljärt uttryck vara besvärlig. Insticksprogrammet regexptest låter dig direkt utforska ändringar i ett reguljärt uttryck. Det aktiveras genom att välja <menuchoice
><guimenu
>Verktyg</guimenu
> <guimenuitem
>Avlusa reguljärt uttryck...</guimenuitem
></menuchoice
>. </para>
</formalpara>

<para
>I variantkombinationsrutan kan du välja vilken variant av reguljära uttryck som ska användas. För närvarande stöds varianten som definieras av POSIX-standarden, som används av programmet &grep;, och den utökade POSIX-syntaxen som används av programmet &egrep;. </para>

<para
>När du skriver in ett uttryck, får du omedelbart återmatning om eventuella syntaxfel i det. Genom att skriva in en text under <guilabel
>Teststräng</guilabel
>, kan du se om uttrycket matchar strängen. I synnerhet om det reguljära uttrycket innehåller grupper, som <literal
>"([a-z])"</literal
>, visas innehållet av de matchade delgrupperna i en listruta. </para>
</listitem>

<listitem>
<formalpara>
<title
>Insticksprogrammet <command
>konsole</command
></title>
<indexterm zone="plugin-tools"
><primary
><command
>konsole</command
></primary
></indexterm>
<indexterm zone="plugin-tools"
><primary
>terminal</primary
><secondary
>inbäddad</secondary
></indexterm>

<para
>(... ännu inte skrivet ...) </para>
</formalpara>
</listitem>

</itemizedlist>

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

<sect1 id="parts-survey">
<title
>Översikt</title>

<para
>&kdevelop; erbjuder utökningsbara moduler, eller delprogram, som laddas när programmet kör och vid behov. Det gör det möjligt för utvecklare att bara aktivera funktioner som de behöver eller vill ha för utvecklingen. </para>

<para
>Vissa delprogram anses vara <link linkend="table-global-parts"
>allmänna</link
>, dvs. de påverkar hela funktionen hos &kdevelop;. Till exempel uimode-delprogrammet låter en utvecklare välja vilket användargränssnitt som ska användas. </para>

<para
>Andra delprogram är <link linkend="table-project-parts"
>projektspecifika</link
>, och används bara när ett projekt av den typen laddas. Hantering av automake, behöver till exempel bara vara aktiv när ett automake-baserat projekt är laddat. Annars är den inte aktiv. </para>

<para
>Aktiva delar kan påverka &kdevelop; på många sätt. Beroende på funktion, kan de lägga till extra menyer, extra menyalternativ, extra verktygsknappar etc. </para>

<table id="table-project-parts">
<title
>Delprogram för projekthantering i &kdevelop;</title>

<tgroup cols="2"
><tbody>
<row>
  <entry
>antproject</entry>
  <entry
>ANT-projekthantering (&Java;-program)</entry>
</row>
<row>
  <entry
>autoprojekt</entry>
  <entry
>Automake projekthantering</entry>
</row>
<row>
  <entry
>customproject</entry>
  <entry
>Egen projekthantering</entry>
</row>
<row>
  <entry
>trollproject</entry>
  <entry
>Qmake-baserad projekthantering</entry>
</row>
</tbody
></tgroup>
</table>

<table id="table-global-parts">
<title
>Allmänna delprogram i &kdevelop;</title>

<tgroup cols="2"
><tbody>
<row
><entry
>Delprogramnamn</entry
><entry
>Beskrivning</entry
></row>
<row
><entry
>appwizard</entry
><entry
>Ny projektguide</entry
></row>
<row
><entry
>historik</entry
><entry
></entry
></row>
<row
><entry
>konsole</entry
><entry
>Inbäddad terminal</entry
></row>
<row
><entry
>editor-chooser</entry
><entry
>Väljer en intern texteditor</entry
></row>
<row
><entry
>doctreeview</entry
><entry
>Dokumentationsbläddrare</entry
></row>
<row
><entry
>openwith</entry
><entry
></entry
></row>
<row
><entry
>fileselector</entry
><entry
>En komponent för att välja filer</entry
></row>
<row
><entry
>uimode</entry
><entry
>Anpassa gränssnittsläget</entry
></row>
<row
><entry
>texttools</entry
><entry
>Ytterligare textverktyg</entry
></row>
<row
><entry
>tipofday</entry
><entry
>Dagens tips</entry
></row>
<row
><entry
>grepview</entry
><entry
>Ett grafiskt flerfilsökningsverktyg</entry
></row>
<row
><entry
>cvs</entry
><entry
>Stöd för CVS</entry
></row>
<row
><entry
>verktyg</entry
><entry
></entry
></row>
<row
><entry
>regexptest</entry
><entry
>Verktyg för att prova reguljära uttryck</entry
></row>
<row
><entry
>abbrev</entry
><entry
>Expansion av förkortningar</entry
></row>
<row
><entry
>filter</entry
><entry
></entry
></row>
<row
><entry
>valgrind</entry
><entry
>Ett grafiskt gränssnitt till valgrind</entry
></row>
</tbody
></tgroup>
</table>

<table>
<title
>Delprogram för språkstöd i &kdevelop;</title>
<tgroup cols="2">
<tbody>
<row
><entry
>cppsupport</entry
><entry
>Stöd för C/C++</entry
></row>
<row
><entry
>fortransupport</entry
><entry
>Stöd för Fortran</entry
></row>
<row
><entry
>javasupport</entry
><entry
>Stöd för &Java;</entry
></row>
<row
><entry
>perlsupport</entry
><entry
>Stöd för Perl</entry
></row>
<row
><entry
>phpsupport</entry
><entry
>Stöd för PHP</entry
></row>
<row
><entry
>pythonsupport</entry
><entry
>Stöd för Python</entry
></row>
</tbody
></tgroup>
</table>

<table>
<title
>Projektspecifika delprogram i &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
>Klassvyhantering</entry
></row>
<row
><entry
>ctags</entry
><entry
></entry
></row>
<row
><entry
>debugger</entry
><entry
>Hantering av &GNU;-avlusare</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
>Exempel på lägen i användargränssnittet för &kdevelop;</title>

<sect1 id="ideal-desc">
<title
>IDEA-fönsterläge</title>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-ideal-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Skärmbild</phrase
></textobject>
    <caption
><para
>&kdevelop; IDEA-fönsterläge</para
></caption>
  </mediaobject>
</screenshot>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-ideal-mode-0.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Skärmbild</phrase
></textobject>
    <caption
><para
>&kdevelop; IDEA-fönsterläge, stängda flikar</para
></caption>
  </mediaobject>
</screenshot>

<para
>Det här skärmbildsexemplet visar en av de huvudsakliga fördelarna med IDEA-läge, att det finns en maximal arbetsyta tillgänglig. Ändå är alla verktygsvyer lätt tillgängliga genom att klicka på motsvarande flik. </para>
<para
>Du behöver troligen en viss tid innan du har vant dig vid ikonerna i flikraden. Om du är vilse, placera bara musen över en flik och vänta några sekunder. En beskrivning i form av ett kort verktygstips dyker då upp. På skärmbilden visas verktygstipset <quote
>Hantering av automake</quote
> som exempel. Det beskriver den nedre fliken i högra flikraden. </para>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

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

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

<sect1 id="mdi-desc">
<title
>Underramsläge</title>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

<screenshot>
  <mediaobject>
    <imageobject>
    <imagedata fileref="kdevelop-mdi-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Skärmbild</phrase
></textobject>
    <caption
><para
>&kdevelop; underramsläge</para
></caption>
  </mediaobject>
</screenshot>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

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

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

<sect1 id="tabbed-desc">
<title
>Fliksidläge</title>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-tabbed-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Skärmbild</phrase
></textobject>
    <caption
><para
>&kdevelop; fliksidläge</para
></caption>
  </mediaobject>
</screenshot>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

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

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

<sect1 id="toplevel-desc">
<title
>Toppnivåläge</title>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

<screenshot>
  <mediaobject>
    <imageobject>
      <imagedata fileref="kdevelop-toplevel-mode.png" format="PNG"/>
    </imageobject>
    <textobject
><phrase
>Skärmbild</phrase
></textobject>
    <caption
><para
>&kdevelop; toppnivåläge</para
></caption>
  </mediaobject>
</screenshot>

<para
>Klicka <link linkend="uimodes-survey"
>här</link
> för att återgå till översikten över lägen. </para>

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

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

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

<appendix id="app-misc-info">
<title
>Ytterligare information</title>
<sect1 id="gettinginformation">
<title
>Hämta information</title>
<para
>(... ännu inte skrivet ...) </para>
</sect1
> <!-- gettinginformation -->

<sect1 id="app-reporting-bugs">
<title
>Rapportera fel</title>
<para
>(... ännu inte skrivet ...) </para>
</sect1
> <!-- app-reporting-bugs -->

<sect1 id="app-licensing">
<title
>Licenser</title>
&underFDL; &underGPL; </sect1
> <!-- app-licensing -->
</appendix
> <!-- app-misc-info -->

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

<appendix id="app-changelog">
<title
>Ändringar</title>
<sect1 id="changes">
<title
>Ändringar i dokumentet</title>
<para>
<itemizedlist>
<listitem
><para
>2003-01-03 &mdash; Startade ändringsloggen </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
>Bibliografi</title>

<para
>(... ännu inte skrivet ...)</para>

<!-- ### temporarily disabled as the <bibliography
> markup is not used by KDE Docbook
     (see: Lauri Watts: The KDE DocBook Authors guide, Revision 1.00.00: 2003,
                        Chapter 19. Tags we do not use) -->
<bibliography>

<biblioentry>
<title
><ulink url="info://make/Top"
>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"
>Using the 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
>GNU Autoconf, Automake och 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
>Advanced Programming in the &UNIX; 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
>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
>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
>Programmera 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
>Programmera 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
>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
>Programmera Perl</title>
<subtitle
>Kamelboken</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
>Learning Perl</title>
<subtitle
>Lama-boken</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>
