<chapter id="applicationwizard">

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

<title
>Komma igång: Programguiden</title>
<!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like -->
<!-- Working With Projects -->
<!-- featuring the application manager as part of the New Projects section. -->

<indexterm zone="applicationwizard">
  <primary
>Programguiden</primary
></indexterm>

<para
>Arbete med att utveckla programvara i &kdevelop; organiseras i <emphasis
>projekt</emphasis
>. Ett sådant projekt håller samman allt som hör till en fullständig programmeringsuppgift: källkodsfiler, ytterligare datafiler, alla hanteringsfunktioner som behövs som byggsystemet samt åtkomst till alla komponenter och ytterligare verktyg som behövs för att få programmet klart att köras. </para>
<para
>Att organisera utvecklingsarbetet i projekt låter dig enkelt byta mellan befintliga övergripande uppgifter. Det här riktigt bekvämt om du till exempel arbetar med flera program samtidigt, vilket ofta är fallet. Tala om för &kdevelop; att öppna projektet du vill arbeta med, och du kan fortsätta i miljön precis där du tidigare lämnade den. </para>

<sect1 id="new-projects">
<title
>Nya projekt</title>

<!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. -->
<!-- There is no need for a tutorial habit anymore. -->

<indexterm zone="new-projects">
  <primary
>projekt</primary>
  <secondary
>nytt</secondary
></indexterm>

<para
>Så fort du vill starta ett nytt programmeringsprojekt, behöver en hel del formella inställningsprocedurer göras. En startstruktur för kataloger måste skapas, nya deklarationsfiler och källkodsfiler måste skapas, byggsystemet måste initieras, etc. </para>
<para
>&kdevelop; tillhandahåller ett enkelt sätt att starta ett nytt programmeringsprojekt: <emphasis
>programguiden</emphasis
>. Du hittar programguiden via menyalternativet <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Nytt projekt</guimenuitem
></menuchoice
>. </para>
<para
>Det behövs bara ett fåtal steg för att skapa ett nytt programmeringsprojekt med programguiden: </para>
<orderedlist>
  <listitem
><para
><link linkend="new-projects-start-type"
>Välj programspråk</link
> du vill använda, och typ av program som du vill skapa från en uppsättning fördefinierade mallar. </para
></listitem>
  <listitem
><para
><link linkend="new-projects-start-general"
>Tillhandahåll en del allmän information</link
> som programnamn, katalog där programmet ska byggas, etc. </para
></listitem>
  <listitem
><para
>Bestäm om du vill använda ett <link linkend="new-projects-start-cvs"
>versionskontrollsystem</link
>, som t.ex. CVS, och tillhandahåll nödvändig information som behövs. </para
></listitem>
  <listitem
><para
>Ställ in några mallar för <link linkend="new-projects-start-templates"
>ursprunglig deklarationsfil och källkodsfil</link
> (om nödvändigt). </para
></listitem>
  <listitem
><para
>Tala till sist om för programguiden att <link linkend="new-projects-start-build"
>skapa alla nya saker</link
>, katalogstruktur, startmallar för deklarationsfiler och källkodsfiler, och hanteringsverktyg som ett startskelett för att bygga programmet, etc. </para
></listitem>
</orderedlist>
<para
>Voil&agrave;, det är allt. Programguiden har nu gett dig en första fungerade uppsättning programfiler, där du enkelt kan börja arbeta. </para>
<para
>Låt oss nu ta en mer detaljerad titt på allt detta... </para>

<sect2 id="new-projects-start">
<title
>Inledande steg</title>

<indexterm zone="new-projects-start">
  <primary
>dialogruta</primary>
  <secondary
>skapa nytt projekt</secondary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>projekt</primary>
  <secondary
>skapa nytt projekt</secondary>
  <tertiary
>dialogruta</tertiary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>projekt</primary>
  <secondary
>mallar</secondary
></indexterm>
<indexterm zone="new-projects-start">
  <primary
>mallar</primary>
  <secondary
>projekt</secondary
></indexterm>

<para
>För att skapa ett nytt projekt i &kdevelop;, välj <guimenuitem
>Nytt projekt</guimenuitem
> i menyn <guimenu
>Projekt</guimenu
>. Du ska då se guiden för att skapa nytt projekt, som visas nedan: </para>

<screenshot id="screenshot-newprojectwizard">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Inledande dialogruta för att skapa ett nytt projekt </para
></caption>
  </mediaobject>
</screenshot>

<para
>Som du kan se, är dialogrutan uppdelad i en övre och undre del. I den övre delen kan du bestämma dig för programspråk och programtyp. Den under delen innehåller en del allmän information. </para>

<sect3 id="new-projects-start-type">
<title
>Välj programspråk och programtyp</title>

<indexterm zone="new-projects-start-type">
  <primary
>projekt</primary>
  <secondary
>programtyp</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>projekt</primary>
  <secondary
>programspråk</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>projekt</primary>
  <secondary
>språk</secondary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>språk</primary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>programspråk</primary
></indexterm>
<indexterm zone="new-projects-start-type">
  <primary
>program</primary>
  <secondary
>typ</secondary
></indexterm>

<para
>Du gör dina val på vänstersidan längst upp i dialogrutan. När den visas finns en lista med kataloger, var och en med namnet på ett programspråk, som till exempel: </para>

<itemizedlist>
  <listitem
><para
>Ada <indexterm>
      <primary
>Ada</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>C <indexterm>
      <primary
>C</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>C++ <indexterm>
      <primary
>C++</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Databas (SQL-projekt) <indexterm>
      <primary
>SQL</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
    <indexterm>
      <primary
>Databas</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Fortran <indexterm>
      <primary
>Fortran</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Haskell <indexterm>
      <primary
>Haskell</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Java <indexterm>
      <primary
>Java</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>PHP <indexterm>
      <primary
>PHP</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Pascal <indexterm>
      <primary
>Pascal</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Perl <indexterm>
      <primary
>Perl</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Python <indexterm>
      <primary
>Python</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Ruby <indexterm>
      <primary
>Ruby</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
  <listitem
><para
>Skal (Skript för skalet Bash) <indexterm>
      <primary
>Bash</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
    <indexterm>
      <primary
>skal</primary>
      <secondary
>nytt projekt</secondary
></indexterm>
  </para
></listitem>
</itemizedlist>

<para
>För att precisera, innehåller katalogerna i själva verket inte riktiga programmeringsverktyg. De leder till fördefinierade <emphasis
>mallar</emphasis
> som du kan använda som utgångspunkt för utveckling i ett språk. För att få en idé om vad som erbjuds, öppna bara en katalog i taget. Det finns en följd underkataloger i vissa, men bara en eller flera enkla beteckningar i andra. Underkatalogerna du ser organiserar de tillgängliga mallarna enligt vissa uppgifter, de enkla beteckningarna namnger mallar som du kan välja. </para>
<para
>Här kan vi inte i detalj gå in på vilka uppgifter varje mall tillhandahåller, men det är enkelt att ta reda på. Så fort du markerar en mallbeteckning, visas viss information i fälten till höger. I det nedre fältet ser du en <emphasis
>kort beskrivning</emphasis
> om vad mallen är avsedd att göra. I fältet ovanför visas en bild, om tillgänglig, med hur programmet som mallen producerar ser ut om du kompilerar och kör det utan ändring. Oftast är det en <emphasis
>skärmbild</emphasis
> av huvudfönstret som programmet visar. </para>
<para
>Välj mallen som bäst passar målen för ditt program som startpunkt. Skriv därefter in information om allmänna egenskaper i de nedre fälten, som visas i nästa kapitel. </para>

<formalpara>
<title
>Välja ett projekthanteringssystem</title>
<para
>Varje mall är kopplad till ett särskilt <link linkend="makesystems"
>projekthanteringssystem</link
>. För närvarande finns det inget direkt sätt att helt fritt välja ett sådant projekthanteringssystem. Du måste hitta en mall som passar dina behov, eller ändra projektet på motsvarande sätt efter det har skapats. </para>
</formalpara>

</sect3
> <!-- new-projects-start-type -->

<sect3 id="new-projects-start-general">
<title
>Ange allmän information</title>

<indexterm zone="new-projects-start-general">
  <primary
>projekt</primary>
  <secondary
>egenskaper</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>egenskaper</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>program</primary>
  <secondary
>namn</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>namn</primary>
  <secondary
>program</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projekt</primary>
  <secondary
>katalog</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>katalog</primary>
  <secondary
>projekt</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>sökväg</primary>
  <secondary
>nytt projekt</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projekt</primary>
  <secondary
>upphovsman</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projekt</primary>
  <secondary
>e-post</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>upphovsman</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>e-post</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projekt</primary>
  <secondary
>main.cpp</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>main.cpp</primary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>projekt</primary>
  <secondary
>licens</secondary
></indexterm>
<indexterm zone="new-projects-start-general">
  <primary
>iicens</primary
></indexterm>

<para
>Den undre delen av sidan <guilabel
>Allmänt</guilabel
> i dialogrutan <guilabel
>Skapa nytt projekt</guilabel
> är ett inramat fält som heter <guilabel
>Egenskaper</guilabel
>. Du måste tillhandahålla en del allmän information om projektet här, så att programguiden vet hur den ursprungliga strukturen ska byggas. </para>
<formalpara>
<title
>Programnamn</title>
<para
>Ditt program behöver förstås ett namn. Skriv in det i det övre fältet under <guilabel
>Egenskaper</guilabel
>, som heter <guilabel
>Programnamn</guilabel
>. Vi använder <guilabel
>Mitt_program</guilabel
> som exempel. </para>
</formalpara>
<para
>När du gör det, märker du att programguiden vägrar att acceptera specialtecken av något slag. De enda tecken som accepteras är: <itemizedlist>
  <listitem
><para
>små och stora bokstäver</para
></listitem>
  <listitem
><para
>siffror</para
></listitem>
  <listitem
><para
>tecknet understreck</para
></listitem>
</itemizedlist>
</para>
<para
>En framträdande orsak till begränsningen är att programguiden kommer att använda programnamnet som <emphasis
>bas för vissa klassnamn</emphasis
> som den skapar när den bygger upp projektet från början. Alltså måste projektets namn följa reglerna för programspråket som används. </para>
<formalpara>
<title
>Projektkatalogen</title>
<para
>Den andra utmärkande orsaken för begränsningen ser du på nedersta raden i området <guilabel
>Egenskaper</guilabel
>. Den heter <guilabel
>Slutgiltig plats</guilabel
>, och visar katalogen där programguiden skapar programmet. </para>
</formalpara>
<para
>När du skriver in programmets namn märker du att programguiden repeterar det du skriver in längst ner på raden <guilabel
>Slutgiltig plats</guilabel
>, men bara med små bokstäver. </para>
<para
>Alltså måste du välja  namn på det nya programmet med försiktighet. Om du slutar med en katalog som redan används, låter inte programguiden dig fortsätta till nästa steg, genom att behålla knappen <guibutton
>Nästa &gt;</guibutton
> inaktiv (grå). Den <emphasis
>varnar</emphasis
> dig också genom att lägga till <quote
>(fil eller katalog finns redan)</quote
> sist på raden <guilabel
>Slutgiltig plats</guilabel
>. </para>

<formalpara>
<title
>Startsökväg</title>
<para
>Det finns två sätt att välja en annan sökväg till det nya programmet. En är att använda ett annat namn. Det är dock inte alltid möjligt (t.ex. skapar du kanske en ny version av ett befintligt program). Som ett alternativ kan du välja en annan sökväg till programkatalogen. </para>
</formalpara>
<para
>Det görs i den andra radens inmatningsfält under <guilabel
>Egenskaper</guilabel
>, som heter <guilabel
>Plats</guilabel
>. Det du skriver in här är <emphasis
>överliggande sökväg</emphasis
> för det nya programmets utvecklingskatalog. Programguiden lägger till programnamnet sist i sökvägen när det nya projektet skapas. Resultatet visas på raden <guilabel
>Slutgiltig plats</guilabel
> för att bättre visa vad som händer. </para>
<para
>Programguiden kopierar ett <emphasis
>startvärde</emphasis
> till fältet <guilabel
>Plats</guilabel
> från början. Det hämtas från det du har valt under fältet <guilabel
>Standardprojektkatalog</guilabel
> under den <link linkend="setup-general"
>allmänna inställningen</link
>. I vårt fall har vi ställt in &kdevelop; att använda <filename class="directory"
>/home/utveckling/projekt/</filename
> som ursprunglig sökväg för nya projekt. </para>
<para
>Ändra innehållet i fältet <guilabel
>Plats</guilabel
>, så att utvecklingskatalogen för programmet som visas på raden <guilabel
>Slutgiltig plats</guilabel
> är unik. </para>
<!--TODO add tab description Project Options -->
<note
><para
>Försäkra dig om att sökvägen du skriver in i fältet <guilabel
>Plats</guilabel
> redan finns. Annars kommer du inte att kunna fortsätta till nästa steg. Programguiden <emphasis
>varnar</emphasis
> dig om sökvägar som inte finns, genom att lägga till <quote
>(ogiltig)</quote
> sist på raden <guilabel
>Slutgiltig plats</guilabel
>. </para
></note>

<screenshot id="screenshot-createnewprojectoptions">
  <mediaobject>
    <imageobject>
      <imagedata fileref="createnewprojectoptions.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Ställa in ett nytt projekt för CVS </para
></caption>
  </mediaobject>
</screenshot>

<formalpara>
<title
>Personlig information</title>
<para
>Fälten som följer är inte så kritiska. Ange bara ditt namn (dvs. namnet på personen som är ansvarig för programmet) i fältet <guilabel
>Upphovsman</guilabel
>, och en giltig e-postadress i fältet <guilabel
>E-post</guilabel
>, så att användare kan ge dig återmatning om programmet. </para>
</formalpara>

<note>
<orderedlist>
  <listitem
><para
>Programguiden fyller i fälten med vissa förvalda värden, som tas från e-postinställningarna i KDE:s inställningscentral. Om de förvalda värdena i fälten <guilabel
>Upphovsman</guilabel
> och <guilabel
>E-post</guilabel
> under <guilabel
>Skapa nytt projekt</guilabel
> inte passar, bör du kontrollera e-postinställningarna i KDE:s inställningscentral. </para
></listitem>
  <listitem
><para
>Programguiden sammanställer informationen till startprogrammallar om de finns. För &kde; C++ program, hittar du den till exempel i början av källkodsfilen <filename
>main.cpp</filename
>. </para
></listitem>
  <listitem
><para
>Fältet <guilabel
>E-post</guilabel
> är det <emphasis
>valfria</emphasis
> bland fälten, vilket beror på att alla utvecklare kanske inte har tillgång till Internet. Du kan lämna fältet tomt om du vill, och ändå fortsätta. </para
></listitem>
</orderedlist>
</note>

<formalpara>
<title
>Versions- och licensinformation</title>
<para
>Skriv till sist in startversion för det nya programmet i fältet <guilabel
>Version</guilabel
>, och välj licensen du vill ska gälla för ditt program i kombinationsrutan <guilabel
>Licens</guilabel
>. </para>
</formalpara>

<para
>Om du väljer en programtyp där programguiden tillhandahåller gemensamma källkodstextmallar (t.ex. C/C++), bör du titta på licensinformationstexten på tredje sidan i dialogrutan <guilabel
>Skapa nytt projekt</guilabel
> (se kapitlet <link linkend="new-projects-start-templates"
>Ange mallar för deklarationer och källkod</link
> nedan). </para>
<para
>Om du valde <quote
>Egen</quote
> i kombinationsrutan <guilabel
>Licens</guilabel
> måste du själv tillhandahålla en licenstext. </para>

<note
><para
>Både version och licensinformation kommer också att infogas i startmallarna på ett lämpligt format som tillhandahålls av programtypen du väljer. </para
></note>

<para
>När du har skrivit in all den här informationen på ett riktigt sätt, tryck på knappen <guibutton
>Nästa &gt;</guibutton
> för att fortsätta, som visas i följande kapitel. </para>
</sect3
> <!-- new-projects-start-general -->

</sect2
> <!-- new-projects-start -->

<sect2 id="new-projects-start-cvs">
<title
>Ange information om versionssystem</title>

<indexterm zone="new-projects-start-cvs">
  <primary
>CVS</primary>
  <secondary
>nytt projekt</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>projekt</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>databas</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>version</primary>
  <secondary
>databas</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary
>version</primary>
  <secondary
>CVS</secondary
></indexterm>

<para
>I det andra steget, leder programguiden dig till sidan <guilabel
>Versionskontrollsystem</guilabel
>, där du kan bestämma vilket versionskontrollsystem du vill använda. </para>

<note
><para
>Den här beskrivningen koncentreras endast på behoven för att skapa projekt. För mer information om &CVS;, se kapitlet <link linkend="cvs"
>Använda &CVS;</link
> nedan. </para
></note>

<formalpara>
<title
>Inget versionskontrollsystem önskas</title>
<para
>Från början är <quote
>Inget</quote
> valt i kombinationsrutan <guilabel
>Versionskontrollsystem</guilabel
>, och sidan är för övrigt tom. Om du inte vill använda ett versionskontrollsystem, klicka bara på knappen <guibutton
>Nästa &gt;</guibutton
> för att fortsätta. </para>
</formalpara>

<formalpara>
<title
>Använda &CVS;</title>
<para
>Annars måste du välja versionskontrollsystemet som du vill använda i kombinationsrutan <guilabel
>Versionskontrollsystem</guilabel
>. Vi använder <quote
>&cvs;</quote
> i vårt exempel. Om du väljer det, visar programguiden sidan igen, men nu innehåller den ett antal fält som du måste fylla i. </para>
</formalpara>

<screenshot id="screenshot-newproject-cvs">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project-cvs.png" format="PNG"/>
    </imageobject>
    <caption
><para
>Ställa in ett nytt projekt för CVS </para
></caption>
  </mediaobject>
</screenshot>

<para
>Ett versionskontrollsystem som &CVS; (vilket betyder <quote
>Concurrent Versions System</quote
>) lagrar kopior av valda projektfiler i någon sorts databas. Om du använder &CVS;, kan du bland annat ladda upp (<quote
>arkivera</quote
>) filerna eller ladda ner dem till din projektkatalog (<quote
>checka ut</quote
>, eller <quote
>uppdatera</quote
>). Det särskilda med detta är att filerna i versionsdatabasen lagras på ett strukturerat sätt, vilket gör att du alltid kan återgå till ett tidigare utvecklingssteg om du behöver. &CVS; tillåter också flera utvecklare att ganska enkelt samarbeta i ett stort projekt (som &kdevelop;), utan att störa varandras arbete. </para>

<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>rot</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>rot</primary>
  <secondary
>CVS</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>lokal</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>fjärr</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>lokal CVS</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>:local:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary
>CVS</primary>
  <secondary
>:local:</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-root">
<title
>&CVS;-rot</title>
<para
>&CVS; måste <emphasis
>hantera</emphasis
> versionsdatabasen som det har med dina projektfiler. För att åstadkomma det har det en del speciell databasinformation i en egen katalog, som kallas <emphasis
>&CVS;-roten</emphasis
>. Det första steget för att ställa in &CVS; för det nya projektet, är alltså att tala om för &kdevelop; var roten finns. </para>
</formalpara>

<para
><emphasis
>Lokal &CVS;-rot.</emphasis
> Det finns två grundläggande möjligheter. Antingen vill du använda en <emphasis
>lokal</emphasis
> &CVS;-databas, eller använder du en databas som finns på en <emphasis
>fjärrserver</emphasis
>. Om du utvecklar på egen hand, kan du vilja använda &CVS;-databasen som ett sorts säkerhetskopieringssystem på din egen dator. Oftast skapas den i din hemkatalog och ges namnet <filename
>cvsroot</filename
>. Det kan se ut på följande sätt: </para>
<para
><userinput
><filename class="directory"
>/home/utveckling/cvsroot</filename
></userinput
> (där <filename
>devel</filename
> helt enkelt anger användaren <quote
>utveckling</quote
>, bara som ett exempel) </para>

<note
><para
>I själva verket är det här en förkortad form. Mer fullständigt ska den lokala &CVS;-roten adresseras med prefixet <computeroutput
>:local:</computeroutput
>. Den förkortade formen tillåts bara i fallen då filnamnet börjar med ett snedstreck (<computeroutput
>/</computeroutput
>). Det fullständiga namnet på vår lokala &CVS;-rot i exemplet skulle exakt se ut som: <filename class="directory"
>:local:/home/utveckling/cvsroot</filename
>. </para
></note>

<para
>Skriv in namnet på &CVS;-rotkatalogen som systemet har ställts in för i fältet <guilabel
>CVS-rot</guilabel
>. I princip kan du välja vilket namn som helst, och till och med använda flera &CVS;-databaser, men det är lämpligt att behålla &CVS;-roten när den väl har ställts in. </para>
<para
><emphasis
>Initiera en ny &CVS;-rot</emphasis
>. Om det inte finns en &CVS;-root, ännu kan &kdevelop; ställa in &CVS;-systemet att skapa ett åt dig i den givna katalogen. Markera bara kryssrutan <guilabel
>Initiera rot</guilabel
> under fältet <guilabel
>CVS-rot</guilabel
>. </para>
<note
><para
>Som sagt, <emphasis
>beordrar</emphasis
> bara &kdevelop; &CVS;-systemet att initiera en ny &CVS;-rot. Det gör ingenting själv med katalogen. Som tur är, är &CVS; smart nog att kontrollera om &CVS;-rotkatalogen redan finns. Därför gör det ingen skada om du skulle ha markerat <guilabel
>Initiera rot</guilabel
> för en befintlig &CVS;-rotkatalog. </para
></note>

<para
><emphasis
>Fjärr &CVS;-rot.</emphasis
> Det finns tillfällen då &CVS;-databasen ska finnas på en fjärrserver, särskilt när flera utvecklare arbetar med samma projekt. Då måste du skriva in &CVS;-rotens webbadress till servern i fältet <guilabel
>CVS-rot</guilabel
>. Om du till exempel vill komma åt &kde;:s &CVS;-server: </para>
<para
><userinput
><filename class="directory"
>:pserver:<replaceable
>min_inloggning</replaceable
>@cvs.kde.org:/home/kde</filename
></userinput
> (där <replaceable
>min_inloggning</replaceable
> anger inloggningsnamnet som är inställt i ditt &kde; &CVS;-konto) </para>

<indexterm zone="new-projects-start-cvs-remote">
  <primary
>Fjärr-CVS</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>:pserver:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>:ext:</primary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:local:</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:pserver:</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary
>CVS</primary>
  <secondary
>:ext:</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-remote">
<title
>Servertyper för fjärr-&CVS;</title>
<para
>Det finns i huvudsak två fjärrservertyper för &CVS; med bred användning: <emphasis
>pserver</emphasis
> som använder ett lösenordssäkrat okrypterat protokoll, och <emphasis
>ext</emphasis
>-servern som använder krypterad dataöverföring via rsh eller ssh. De skiljs åt av webbadressprefixet de använder: </para>
</formalpara>
<para>
<filename
>:pserver:</filename>
</para>
<para
>för den okrypterade typen <quote
>lösenordsskyddad server</quote
>, och </para>
<para>
<filename
>:ext:</filename>
</para>
<para
>för en servertyp krypterad med rsh eller ssh. Till exempel </para>
<para>
<userinput
><filename class="directory"
>:ext:<replaceable
>min_inloggning</replaceable
>@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename
></userinput>
</para>
<para
>kommer åt &CVS;-roten för det brett använda &CVS;-hanteringsverktyget <application
>Cervisia</application
> på servern SourceForge. </para>
<para
>Om du vill använda en krypterad server via rsh eller ssh för att komma åt &CVS;, måste du tala om för &kdevelop; vilket krypteringsprotokoll som ska användas. Skriv bara in <userinput
>rsh</userinput
> eller <userinput
>ssh</userinput
> i fältet <guilabel
>CVS_RSH</guilabel
> på sidan <guilabel
>Versionskontrollsystem</guilabel
> i <guilabel
>Skapa nytt projekt</guilabel
>. </para>

<note
><para
>Det finns ett problem om du använder en krypterad server för &CVS; inne i &kdevelop;. Se kapitlet <link linkend="cvs"
>Använda &CVS;</link
> för detaljinformation. </para
></note>

<indexterm zone="new-projects-start-cvs-repository">
  <primary
>CVS</primary>
  <secondary
>arkiv</secondary
></indexterm>
<indexterm zone="new-projects-start-cvs-repository">
  <primary
>arkiv</primary>
  <secondary
>CVS</secondary
></indexterm>

<formalpara id="new-projects-start-cvs-repository">
<title
>&CVS;-arkivet</title>
<para
>Hittills har du talat om för &kdevelop; var &CVS;-roten finns, som hanterar versionsdatabasen och hur den ska kommas åt. Nu måste du tala om för &kdevelop; vilket namn du vill att &CVS; ska använda för att spara dina projektfiler i databasen. Ett sådan ställe där projektfilerna lagras i &CVS;, kallas ett <emphasis
>arkiv</emphasis
>. </para>
</formalpara>
<para
>I princip kan du använda vilket namn som helst för projektfilernas &CVS;-arkiv, så länge det uppfyller specifikationerna för att namnge en fil. Oftast använder ändå de flesta utvecklare själva programmets namn. &CVS; bygger en katalog med namnet under &CVS;-roten, därför hittas det enklare om du behåller programnamnet för det. </para>
<para
>Skriv bara in arkivnamnet som du vill använda i fältet <guilabel
>CVS-arkiv</guilabel
> på sidan <guilabel
>Versionskontrollsystem</guilabel
> under <guilabel
>Skapa nytt projekt</guilabel
>. I vårt exempel är det <userinput
>Mitt_program</userinput
>. </para>

<warning
><para
><emphasis
>Försäkra dig om att inte använda ett arkiv som redan finns!</emphasis
>. &CVS;-systemet varnar inte för duplicerade filer, utan skyfflar in allting som inte producerar en formell konflikt. Du ställer till allting! </para
></warning>

<formalpara>
<title
>Återstående fält</title>
<para
>Det återstår inte mycket arbete. Programguiden har redan ställt in återstående fält åt dig. Mer detaljerat: </para>
</formalpara>
<para
>Fältet <guilabel
>Leverantörstagg</guilabel
> används endast av kompatibilitetsskäl. Du kan behålla standardvärdet <quote
>leverantör</quote
> som programguiden skrivit in här. </para>
<para
>Fältet <guilabel
>Meddelande</guilabel
> gör det möjligt att skriva in en kommentar om innehållet i &CVS; från början. Använd vilken text du vill, eller behåll bara standardvärdet <guilabel
>nytt projekt</guilabel
> som programguiden skrivit in. </para>
<para
><guilabel
>Utgåvetagg</guilabel
> innehåller namnet som används som tagg för det ursprungliga tillståndet för projektet. En sådan <emphasis
>tagg</emphasis
> namnger ett visst tillstånd i &CVS;-arkivet, som du senare kan använda för att komma åt det tillståndet för utvecklingen. (Se vidare i kapitlet <link linkend="cvs"
>Använda &CVS;</link
>.) </para>
<para
>Programguiden har skrivit in standardtaggen <quote
>start</quote
> här, som är ett värdigt förslag. Behåll det bara. </para>

<note>
<para
>Om någon information om versionskontroll är fel, märker &kdevelop; det oftast inte förrän projektet skapas. Det är &CVS;-systemet som hittar felen när det försöker skapa arkivet. Därför måste du hålla ett öga på fönstret <guilabel
>Meddelanden</guilabel
> i &kdevelop; när projektet skapas under det sista inställningssteget. Om det var något fel med &CVS;, ser du oftast ett felmeddelande som det här: </para>

<screen
><computeroutput>
* cd '/home/utveckling/test' &amp;&amp; cvs -d '/home/utveckling/min_cvsrot' \
  import -m 'nytt projekt' '' 'leverantör' 'start' &amp;&amp;\
  sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \
  '/home/utveckling/min_cvsrot'
* cvs [import aborted]: /home/utveckling/min_cvsrot/CVSROOT: No such file or
  directory
* *** Exited with status: 1 ***
</computeroutput
></screen>

<para
>Om det här händer, måste du antingen ställa in &CVS; för hand (&kdevelop; ska ha lyckats initiera dina projektfiler vid detta tillfälle) eller ta bort projektkatalogen och börja om igen med <guimenuitem
>Nytt projekt</guimenuitem
> i menyn <guimenu
>Projekt</guimenu
>. </para>
</note>

<para
>Efter du har skrivit in all informationrelaterad till &CVS;, klicka på knappen <guibutton
>Nästa &gt;</guibutton
> för att fortsätta. </para>

<note
><para
>Om du vill rätta ett fel på föregående sida i <guilabel
>Skapa nytt projekt</guilabel
>, tryck bara på knappen <guibutton
>&lt; Tillbaka</guibutton
>. Programguiden kommer ihåg dina inställningar på nuvarande sida, så du kan enkelt fortsätta när du kommer tillbaka. </para
></note>

</sect2
> <!-- new-projects-start-cvs -->

<sect2 id="new-projects-start-templates">
<title
>Ange mallar för deklarationer och källkod</title>

<para
>Nästa steg tar dig till en serie sidor, där du kan ställa in vanlig information som du vill inkludera i dina källkods- och deklarationsfiler, om uppgiften i fråga tillåter. </para>
<para
>Både deklarationsmallar och källkodsmallar tillhandahålls för C och C++ program, var och en på sin egen sida. För andra språk kanske det bara finns källkodsmallar. I vissa fall ser du till och med att mallsidan är tom. </para>
<para
>Om sidan används, fyller programguiden i några vanliga kommentarer i sidhuvudet, som kan se ut så här för ett C++ baserat program: </para>

<screen
><computeroutput
><literal>
/***************************************************************************
 *   Copyright (C) 2003 by Ditt namn                                       *
 *   du@du.se                                                           *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
</literal
></computeroutput
></screen>

<para
>Andra mallar tillhandahåller liknande information på ett format enligt definitionen av programspråket du vill använda. </para>
<para
>Som du kanske märkt, har programhanteringen redan fyllt i viss information som du angav på den fösta sidan <guilabel
>Allmänt</guilabel
> i dialogrutan <guilabel
>Skapa nytt projekt</guilabel
>, närmare bestämt innehållet i fälten <guilabel
>Upphovsman</guilabel
> och <guilabel
>E-post</guilabel
>. Riktig licensinformation har också infogats, enligt ditt val i kombinationsrutan <guilabel
>Licens</guilabel
>. </para>

<sect3 id="new-projects-start-templates-edit">
<title
>Hur mallarna kan redigeras</title>

<indexterm zone="new-projects-start-templates-edit">
  <primary
>mallar</primary>
  <secondary
>projekt</secondary>
  <tertiary
>redigera</tertiary
></indexterm>
<indexterm zone="new-projects-start-templates-edit">
  <primary
>projekt</primary>
  <secondary
>mallar</secondary>
  <tertiary
>redigera</tertiary
></indexterm>

<para
>Mallarna som du ställer in i dialogrutan <guilabel
>Skapa nytt projekt</guilabel
> behandlas varje gång du talar om för &kdevelop; att skapa en ny källkodsfil och/eller deklarationsfil. Informationen som du anger här, inkluderas längst upp i ett dokumentationshuvud, innan koden börjar. </para>
<para
>Du är dock inte begränsad till ren text. &kdevelop; känner till flera variabler, som låter dig inkludera riktig information i filen. Programguiden använda i själva verket just några sådana variabler för att inkludera information om <guilabel
>Upphovsman</guilabel
>, <guilabel
>E-post</guilabel
> och <guilabel
>Licens</guilabel
> i den ursprungliga malltexten. </para>

<variablelist>
<varlistentry>
<term
>Infoga filinformation från &doxygen;</term>
<listitem>
<para
>Om du till exempel vill att dokumentationen av programvarugränssnittet som &doxygen; skapar, ska visa ytterligare information om filens innehåll i listan med filnamn, kan du lägga till följande rader i källkodsfilens mall: </para>
<screen
><computeroutput>
/**
 * \file $MODULE$.cpp
 * \brief (skriv en kort beskrivning här).
 **/
</computeroutput
></screen>
<para
>Så fort du skapar en ny källkodsfil, ersätter &kdevelop; variabeln <computeroutput
>$MODULE$</computeroutput
> med namnet på den nyskapade filen. Om du till exempel skapar en ny C++ klass som heter <classname
>EnEnkelTest</classname
>, ser du följande rader i filen <filename
>enenkeltest.cpp</filename
>: </para>
<screen
><computeroutput>
/**
 * \file enenkeltest.cpp
 * \brief (skriv en kort beskrivning här).
 **/
</computeroutput
></screen>
<para
>Du måste fortfarande tillhandahålla den korta beskrivningen efter nyckelordet <quote
>\brief</quote
>, men en del av jobbet har redan gjorts automatiskt åt dig. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Textfilen med licensen</term>
<listitem>
<para
>Som ett annat exempel skulle du kunna inkludera en explicit referens till licenstexten som du vill använda i mallen. Använd variabeln <varname
>$LICENSEFILE$</varname
> för detta, och lägg till exempel till följande rad: </para>

<screen
><computeroutput>
//   Se $LICENSEFILE$ för den fullständiga licenstexten.
</computeroutput
></screen>
<para
>Programguiden ersätter <varname
>$LICENSEFILE$</varname
> med namnet på filen där den fullständiga licenstexten finns, nämligen: </para>
<screen
><computeroutput>
//   Se COPYING för den fullständiga licenstexten.
</computeroutput
></screen>
<para
>för <acronym
>GPL</acronym
>-licensen, eller </para>
<screen
><computeroutput>
//   Se LICENSE.BSD för den fullständiga licenstexten.
</computeroutput
></screen>
<para
>om du bestämmer dig för att använda <acronym
>BSD</acronym
>-licens för programmet. </para>
<para
>Det finns förstås fler variabler som &kdevelop; känner till. Se avsnittet <link linkend="newfiles-edittemplates"
>Redigera mallarna</link
> i kapitlet <link linkend="editing"
>Redigeringsverktyg</link
> för att hitta vad som är möjligt. </para>
</listitem>
</varlistentry>
</variablelist>

<note
><para
>Mallarna som du definierar här får ingen effekt förrän programguiden skapar det nya projektet. Du hittar informationen längst upp i filerna som du själv skapar under utvecklingsprocessen. När de ursprungliga filerna skapas, använder programguiden några fördefinierade standardmallar. Du måste anpassa de ursprungliga filerna till dina behov för hand. </para
></note>

</sect3
> <!-- new-projects-start-templates-edit -->
</sect2
> <!-- new-projects-start-templates -->

<sect2 id="new-projects-start-build">
<title
>Bygg de ursprungliga projektfilerna</title>

<indexterm zone="new-projects-start-build">
  <primary
>projekt</primary>
  <secondary
>nytt</secondary>
  <tertiary
>bygg</tertiary
></indexterm>
<indexterm zone="new-projects-start-build">
  <primary
>projekt</primary>
  <secondary
>ursprunglig byggning</secondary
></indexterm>

<para
>Nu är nästan allt klart. På den sista sidan i mallen, har knappen <guibutton
>Nästa &gt;</guibutton
> ändrats så att den nu lyder <guibutton
>Slutför</guibutton
>. </para>
<para
><emphasis
>Tänk efter innan du klickar på den!</emphasis
> Du har fortfarande möjlighet att granska allting genom att använda knappen <guibutton
>&lt; Tillbaka</guibutton
> upprepade gånger. Eftersom programguiden kommer ihåg all information du hittills matat in, kan det vara lämpligt att ta dig tid att titta tillbaka en gång till. Om du använder lokal &CVS;, glöm inte att kontrollera namnet på <emphasis
>&CVS;-arkivet</emphasis
> igen (det ska inte redan finnas någon underkatalog med det namnet i &CVS;-rotkatalogen. Om det gör det, försök med ett annat arkivnamn). </para>
<para
>Om du någon gång inte vill att det nya projektet ska byggas, avbryt dialogrutan <guilabel
>Skapa nytt projekt</guilabel
> med knappen <guibutton
>Avbryt</guibutton
>. Klicka annars på <guibutton
>Slutför</guibutton
>, och se i fönstret <guilabel
>Meddelanden</guilabel
> hur programguiden skapar projektet. </para>
<para
>Om du vill använda ett versionshanteringssystem (&CVS;), sker det i själva verket två genomgångar. Programguiden bygger först projektkatalogerna och anropar sedan &CVS;-programmet som återstartar fönstret <guilabel
>Meddelanden</guilabel
> med sitt eget innehåll. Om något fel uppstår i någon av genomgångarna, stannar processen och visar dig motsvarande felmeddelande i fönstret. </para>

<note
><para
>I många fall, när det nya projektet har skapats på det här sättet, laddar &kdevelop; automatiskt källkodsfilen eller filerna för en eller fler av de grundläggande viktiga modulerna, så att du kan enkelt börja arbeta. (Vilka källkodsmoduler som visas, om några alls, beror dock på mallen som från början valdes i programguiden.) </para
></note>

<para
>Glöm inte att kontrollera vad programguiden tillhandahåller från början. Du kanske till exempel vill ändra ursprunglig information i filhuvuden enligt dina egna mallar. Oftast hittar du dem i underkatalogen <filename class="directory"
>templates</filename
> i projektkatalogen. Några enkla kopieringsåtgärder räcker oftast. </para>
<para
>Därefter är det lämpligt att du <emphasis
>kompilerar det ursprungliga projektet</emphasis
> innan du försöker ändra någon kod. I de flesta fall ska den här första kompileringen vara möjlig. På så sätt kan du avgöra om projektet verkligen skapades enligt dina behov. Om det inte gjorde det, ta helt enkelt bort projektkatalogen (i den lokala &CVS;-roten också, om du använder en) och börja om. </para>

<warning id="defaultbuild-warning"
> <!-- ### remove this when "default" works again -->

  <indexterm zone="defaultbuild-warning">
    <primary
>förvald bygginställning</primary>
    <secondary
>varning</secondary
></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary
>bygginställningar</primary>
    <secondary
>varning om förvald bygginställning</secondary
></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary
>varning</primary>
    <secondary
>förvald bygginställning</secondary
></indexterm>

  <para
>Innan du kompilerar det nya projektet för första gången, ta en titt på <menuchoice
><guimenu
>Projekt</guimenu
> <guimenuitem
>Bygginställning</guimenuitem
></menuchoice
>. Om det finns tre alternativ som visas: <guimenuitem
>default</guimenuitem
>, <guimenuitem
>optimized</guimenuitem
> och <guimenuitem
>debug</guimenuitem
>, med <guimenuitem
>debug</guimenuitem
> markerat, behåll det för all del, eller använd <guimenuitem
>optimized</guimenuitem
> istället. </para>
  <para
>På grund av vissa begränsningar i den nuvarande inställningen av autoconf och automake, ska du <emphasis
>under inga omständigheter</emphasis
> bygga med inställningen <guimenuitem
>default</guimenuitem
>. Det förstör vissa interna kataloginställningar, och gör att <command
>configure</command
> klagar när du senare försöker använda det med bygginställningarna <guimenuitem
>optimized</guimenuitem
> eller <guimenuitem
>debug</guimenuitem
>. </para>
  <para
>(Det här gäller bara för dessa flervalsmöjligheter. Om programtypen du valde bara tillhandahåller bygginställningen <guimenuitem
>default</guimenuitem
>, ska du förstås använda den.) </para>
</warning>

</sect2
> <!-- new-projects-start-build -->

</sect1
> <!-- new-projects -->

<sect1 id="projects-configure">
<title
>Konfigurera projekt</title>

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

</sect1>

</chapter
> <!-- applicationwizard -->
