<?xml version="1.0" encoding="UTF-8" ?>

<chapter id="advanced-quanta-3-2">
<chapterinfo>
<title
>Avancerade funktioner</title>
<authorgroup>
<author
><firstname
>Christopher</firstname
> <surname
>Hornbaker</surname
> <affiliation
> <address
><email
>chrishornbaker@earthlink.net</email
></address>
</affiliation>

</author>

<othercredit role="translator"
><firstname
>Stefan</firstname
><surname
>Asserhäll</surname
><affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
><contrib
>Översättare</contrib
></othercredit
> 

</authorgroup>
</chapterinfo>

<title
>Avancerade funktioner</title>

<para
>Det här kapitlet ger en översikt av de avancerade funktionerna i &quantaplus;, och hur de används. </para>

<sect1 id="xml-tools-3-2">
<title
>&XML;-verktyg</title>

<para
>Utgåva 3.2 av &quantaplus; för med sig många nya &XML;-verktyg och funktioner. Verktygen är unika i sin integrering med &quantaplus;. Alla verktyg använder <application
>Kommander</application
> som gränssnitt, med <application
>libxml2</application
> och <application
>lixslt</application
> för bakgrundsbehandling. Denna kombination ger snabba, effektiva, produktiva och kompletta verktyg. </para>

<sect2 id="kde-db-3-2">
<title
>&kde;-dokumentatiosverktyg</title>

<para
>&quantaplus; stödjer &kde;:s två huvudsakliga dokumentationsverktyg: <command
>meinproc</command
> och <command
>checkXML</command
>. </para>

<sect3 id="meinproc-3-2">
<title
><command
>meinproc</command
></title>

<para
>Alla som har arbetat med dokumentation av &kde; känner till <command
>meinproc</command
>, och hur superbt det är. Nu blir det ytterligare ett snäpp bättre, med ett utmärkt grafiskt gränssnitt. Du behöver inte längre använda en terminal, utan klicka bara på ikonen som ser ut som en processor, så är du klar! </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Aktuell arbetskatalog</guilabel
></term>
<listitem>
<para
>Det här programmet förväntar att en fil med namnet <filename
>index.docbook</filename
> finns i en katalog. Om <filename
>index.docbook</filename
> finns i aktuell arbetskatalog, lämna <guilabel
>Aktuell arbetskatalog</guilabel
> markerad. Om den inte gör det, avmarkera <guilabel
>Aktuell arbetskatalog</guilabel
> och skriv in katalogen som du vill behandla i fältet <guilabel
>Annan katalog</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<para
>Utdatafiler placeras i samma katalog som källkodsfilerna. Alla &HTML;-filer tas bort varje gång <command
>meinproc</command
> körs. </para>
</note>

</sect3>

<sect3 id="checkxml-3-2">
<title
><command
>checkXML</command
></title>

<para
>Återigen, alla som har arbetat med dokumentation av &kde; känner till det här hjälpsamma programmet. &quantaplus; erbjuder också här ett utmärkt litet grafiskt gränssnitt till det. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Aktuell arbetskatalog</guilabel
></term>
<listitem>
<para
>Om den aktuella öppna filen är <filename
>index.docbook</filename
>, lämna bara <guilabel
>Aktuell arbetskatalog</guilabel
> markerad. Om den inte är det, avmarkera <guilabel
>Aktuell arbetskatalog</guilabel
> och skriv in katalogen där <filename
>index.docbook</filename
> kan hittas. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<title
>Utmatning</title>
<para
>Om det blir någon utmatning är filen ogiltig. Korrigera rapporterade fel och försök igen. </para>
</note>
</sect3>
</sect2>

<sect2 id="xmlval-3-2">
<title
>&XML;-validering</title>

<para
>&quantaplus; har ett utmärkt &XML;-valideringsverktyg, som använder bakgrundsprogrammet <command
>xmllint</command
>. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Aktuell fil</guilabel
></term>
<listitem>
<para
>Om filen som ska valideras för närvarande har fokus i &quantaplus;, lämna helt enkelt <guilabel
>Aktuell fil</guilabel
> markerad. Om den inte är det, avmarkera <guilabel
>Aktuell fil</guilabel
> och välj filen som ska valideras i filväljaren Annan fil. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Kontrollera att välformat</guilabel
></term>
<listitem>
<para
>Om du bara vill veta att en fil är välformad, markera kryssrutan <guilabel
>Kontrollera bara att välformat</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Definitionens webbadress</guilabel
></term>
<listitem>
<para
>Om du använder en &DTD;, och den specificeras i &XML;-filen, välj &DTD; (intern), standardvalet, eller välja annars &DTD; (extern) och hitta &DTD;:n med filväljaren för definitionens webbadress. Både för validering av &W3C; &XML; schema och RelaxNG krävs extern definition via filväljaren för definitionens webbadress. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="xsltproc-3-2">
<title
>Behandling av &XSL;</title>

<para
>Ja, &quantaplus; har också ett &XSL;-behandlingsverktyg! Det använder verktyget <command
>xsltproc</command
> som tillhandahålls med <application
>libxml2</application
>. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Aktuell fil</guilabel
></term>
<listitem>
<para
>Om filen som ska behandlas för närvarande har fokus i &quantaplus;, lämna helt enkelt <guilabel
>Aktuell fil</guilabel
> markerad. Om den inte är det, avmarkera <guilabel
>Aktuell fil</guilabel
> och välj filen som ska behandlas i filväljaren <guilabel
>Annan fil</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Stilmall</term>
<listitem>
<para
>Välj &XSL;-filen som du vill ska användas. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Utdatafilnamn</guilabel
></term>
<listitem>
<para
>Skriv in namnet som du vill att resultatfilen ska kallas. Filen skrivs normalt i din hemkatalog. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<para
>Det här programmet saknar flexibilitet. Ursäkta, vi ska bättra oss nästa gång. </para>
</note>
</sect2>

</sect1>

<!-- <sect1 id="kfilereplace-3-2">
<title
>KFileReplace</title>

<para>
KFileReplace is a terrific new addition to &quantaplus;. It allows one to
quickly replace strings over multiple files in only a few clicks of the
mouse. Imagine you have converted all your GIF images to PNG images
(hasn't everyone done this already?), only the extension has changed, and
you have the &lt;img /> tag scattered throughout 50 XHTML files. Are you
going to do a Find &amp; Replace on every file? Surely not when you can do
them all at the same time! This is only one of the many situations where
you will find KFileReplace a seriously helpful tool. This section will show
you how to use this wonderful feature.
</para>

<sect2 id="using-kfr-3-2">
<title
>Using KFileReplace</title>

<para>
With all these wonderful features KFileReplace has, surely you are
incredibly interested in how to use it! Well, make sure your swim suit
is on tight, because we are about to dive in!
</para>

<sect3 id="start-kfr-3-2">
<title
>Starting KFileReplace</title>

<para>
You will find KFileReplace in two places: &quantaplus;' main toolbar and the
menubar (Plugins -> KFileReplace). It is represented by this icon:
<inlinemediaobject>
<imageobject>
<imagedata fileref="kfr-icon.png" format="PNG"/>
</imageobject>
</inlinemediaobject
>.
By executing it from either location, you will be presented with the New
Search &amp; Replace Project dialog.
</para>

<mediaobject>
<imageobject>
<imagedata fileref="kfr-new-dialog.png" format="PNG"/>
</imageobject>
<caption
><para
>KFileReplace's New Search &amp; Replace Project dialog.</para
></caption>
</mediaobject>

</sect3>

<sect3 id="replace-string-kfr-3-2">
<title
>Replacing Strings in Files Over Multiple Folders</title>


<para>
Your boss just gave word that:

<orderedlist numeration="arabic">
<listitem>
<para
>all image formats will be PNG from now on;</para>
</listitem>
<listitem>
<para
>all current images must be converted to PNG;</para>
</listitem>
<listitem>
<para
>and it all needs to be done in one hour.</para>
</listitem>
</orderedlist>

<quote
>One hour!?!?</quote
> you think to yourself. <quote
>It'll take at
least 45 minutes to convert the images!</quote
> Calm down. Convert
the images, load up your project, and fire up KFileReplace. Filter for
only the file types you want to change. Press the <inlinemediaobject>
<imageobject
><imagedata format="PNG" fileref=""/></imageobject>
</inlinemediaobject
> and for, say GIF images, .gif for the string to
replace and .png for the replacement string.
</para>

</sect3>
</sect2>
</sect1
> -->

<sect1 id="kparts-3-2">
<sect1info>
<title
>Använda insticksprogram</title>
<authorgroup>
<author
><firstname
>Mathieu</firstname
> <surname
>Kooiman</surname
> <affiliation
> <address
><email
>quanta@map-is.nl</email
></address>
</affiliation>
</author>

<othercredit role="translator"
><firstname
>Stefan</firstname
><surname
>Asserhäll</surname
><affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
><contrib
>Översättare</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Använda insticksprogram</title>

<sect2 id="what-is-a-plugin-3-2">
<title
>Vad är ett insticksprogram?</title>

<para
>&quantaplus; kan ladda insticksprogram, som är delprogram (Kparts). Mekanismen med delprogram, är ytterligare en mycket kraftfull funktion i &kde;. Ett delprogram är en relativt liten, återanvändbar behållare för en funktion. Den gör det möjligt för &kde;-utvecklare att enkelt bygga vidare på andra programmerares arbete. Ett exempel på detta är &quantaplus; själv. Editorn som &quantaplus; använder är &kate;s delprogram. &kate;s delprogram har redan en mängd funktioner som &quantaplus; behöver, som syntaxfärgläggning. Genom att integrera det i &quantaplus;, blev det möjligt för &quantaplus; utvecklare att fokusera på vad &quantaplus; ska kunna göra, istället för att hantera de många problem som skulle orsakats av att utveckla en ny editorkomponent från början. </para>

<para
>Insticksprogrammen som &quantaplus; laddar, kanske inte har något alls att göra med &quantaplus; själv. Det gör det till ett mycket kraftfullt system. Du kan dra nytta av extra funktioner, och behöver inte vänta på att någon integrerar dem i &quantaplus;. Insticksprogrammen kan laddas till ett antal olika grafiska element. Mer om detta nedan. </para>

</sect2>

<sect2 id="plugin-dialog-3-2">
<title
>Förstå dialogrutan för att redigera insticksprogram</title>

<para
>För att installera ett insticksprogram eller ett delprogram, används menyn <menuchoice
><guimenu
>Insticksprogram</guimenu
> <guimenuitem
>Redigera</guimenuitem
></menuchoice
>. Då visas följande dialogruta: </para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="plugin-edit.png"/>
</imageobject>
<caption
><para
>Dialogrutan för att redigera insticksprogram.</para
></caption>
</mediaobject>

<para
>Den här dialogrutan låter dig hantera alla definierade insticksprogram, och låter dig lägga till nya. Vi beskriver varje element i gränssnittet här. <variablelist>
<varlistentry>
<term
><guilabel
>Sökvägar</guilabel
></term>
<listitem>
<para
>Här kan du fylla i en sökväg. När du lägger till ett instickprogram utan en <guilabel
>Plats</guilabel
>, söker &quantaplus; i denna sökväg för att hitta insticksprogrammet. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Lägg till</guilabel
></term>
<listitem>
<para
>Det här visar en dialogruta som låter dig lägga till ett nytt insticksprogram. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Anpassa</guilabel
></term>
<listitem>
<para
>Det här låter dig ändra inställningar för ett visst insticksprogram. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Ta bort</guilabel
></term>
<listitem>
<para
>Tar bort det aktuella markerade insticksprogrammet. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Uppdatera</guilabel
></term>
<listitem>
<para
>Uppdaterar dialogrutans innehåll. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para
>Läs <xref linkend="configure-plugins"/> för att lära dig mer om insticksprogram.</para>
</sect2>
</sect1>
<sect1 id="team-members">
  <title
>Utveckling i grupp</title>
  <para
>Ofta har ett projekt mer än en person som arbetar med det, och det finns något sorts hierarkiskt förhållande mellan dem. &quantaplus; stöder begreppet gruppmedlem, och de kan ställas in i dialogrutan <menuchoice
><shortcut
><keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
></shortcut
> <guimenu
>Projekt</guimenu
> <guimenuitem
>Projektegenskaper</guimenuitem
></menuchoice
>. </para>
  <mediaobject>
    <imageobject>
      <imagedata format="PNG" fileref="team-editing.png"/>
    </imageobject>
    <caption
><para
>Redigeringsdialogrutan Gruppmedlemmar</para
></caption>
  </mediaobject>
  <para
>Posterna <guilabel
>Namn</guilabel
> och <guilabel
>E-post</guilabel
> är självförklarande. <guilabel
>Smeknamn</guilabel
> är en användares smeknamn och fungerar som en unik identifierare. </para>
  <para
><guilabel
>Roll</guilabel
> anger medlemmens roll i projektet och kan vara en av följande: <itemizedlist>
<listitem
><para>
<guilabel
>Gruppledare</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Delprojektledare</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Aktivitetsledare</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Enkel medlem</guilabel>
</para
></listitem>
</itemizedlist>
</para>
<para
><guilabel
>Uppgift</guilabel
> är en beskrivning av uppgiften som är tilldelad till medlemmen.</para>
<para
><guilabel
>Delprojekt</guilabel
>: Du kan välja en lista med delprojekt. Delprojekt kan anpassas och skapas genom att klicka på knappen <guilabel
>Redigera delprojekt</guilabel
>. Varje delprojekt har ett namn som är synligt för användaren och en plats. Den senare anger en relativ sökväg till en katalog under projektträdet. Det betyder att ett delprojekt är en katalog under huvudprojektet. Huvudprojektet kan till exempel finnas på företagets webbplats, medan ett delprojekt kan vara webbplatsen för intranätet, placerat i underkatalogen <filename path="intranet"
>intranät</filename
> i projektet.</para>
<para
>En medlem kan ha mer än en roll i projektet, som både gruppledare och delprojektledare.</para>
<para
>En användare bör välja vem i listan med gruppmedlemmar som han själv är. Det är möjligt genom att markera en gruppmedlem i listan och trycka på knappen <guilabel
>Ange som dig själv</guilabel
>. Medlemmen som för närvarande är markerad (din identitet) visas med fetstil efter texten <guilabel
>Du är:</guilabel
>.</para>
<para
>Smeknamn och att ställa in dig själv är viktigt rörande meddelanden och noteringar. Se <xref linkend="annotations"/> för att lära dig mer om noteringar.</para>
<para
>Förutom att hålla reda på gruppen, finns det ytterligare en fördel med att ange gruppmedlemmar: Du kan skapa en händelse som informerar gruppledarna när en viss åtgärd utförs. Se <xref linkend="event-actions"/> om hur det görs.</para>
</sect1>
<sect1 id="event-actions">
  <title
>Händelseåtgärder</title>
  <para
>Händelseåtgärder är åtgärder som utförs när en viss händelse inträffar i projektet. Ett exempel kan vara att logga när projektet öppnas och stängs, så att det senare går att granska hur mycket någon arbetade med det, eller skicka e-post när en fil sparas, eller lägga till en ny fil i CVS med hjälp av ett skript när filen läggs till i projektet, och listan kunde fortsätta.</para>
  <para
>På sidan <guilabel
>Händelseinställning</guilabel
> i dialogrutan <menuchoice
><shortcut
><keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
></shortcut
> <guimenu
>Projekt</guimenu
> <guimenuitem
>Projektegenskaper</guimenuitem
></menuchoice
> kan du skapa, redigera och ta bort händelseåtgärder. </para>
<mediaobject>
  <imageobject>
    <imagedata format="PNG" fileref="event-editing.png"/>
  </imageobject>
  <caption
><para
>Händelseditorns dialogruta</para
></caption>
</mediaobject>
<para
>Posterna i dialogrutan är:</para>
<variablelist>
<varlistentry>
<term
><guilabel
>Händelse</guilabel
></term>
<listitem
><para
>åtgärden utförs när händelsen som väljes i listan inträffar. Händelsenamnen är självförklarande.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Åtgärd</guilabel
></term>
<listitem
><para
>den utförda åtgärdens typ. Möjliga alternativ är </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Åtgärd utan skript</guilabel
></term>
<listitem
><para
>en åtgärd som inte är en användardefinierad skriptåtgärd. Se <xref linkend="user-actions"/> för användaråtgärder. </para>
<para
><guilabel
>Åtgärdsnamn</guilabel
> anger åtgärden som ska utföras när händelsen inträffar.</para>
</listitem>
</varlistentry>
<varlistentry>
  <term
><guilabel
>Skicka e-post</guilabel
></term>
  <listitem
><para
>e-post skickas till mottagaren som väljes i listan <guilabel
>Mottagare</guilabel
> när åtgärden utförs. Mottagaren kan vara en grupp eller delprojektledare. Se <xref linkend="team-members"/> för att definiera sådana ledare. </para
>    
  </listitem>
</varlistentry>
<varlistentry>
  <term
><guilabel
>Logga händelse</guilabel
></term>
  <listitem
><para
>händelserna loggas i en fil. Åtgärdens argument är: </para>
    <variablelist>
	<varlistentry>
	<term
><guilabel
>Loggfil</guilabel
></term>
	<listitem
><para
>filnamnet med fullständig sökväg</para
></listitem>
	</varlistentry>
	<varlistentry>
	<term
>Information</term>
	<listitem
><para
>Hur mycket information ska loggen innehålla</para
></listitem>
	</varlistentry>
	<varlistentry>
	<term
><guilabel
>Beteende</guilabel
></term>
	<listitem
><para
>Om befintlig loggfil ska skrivas över eller om den nya loggade händelsen ska läggas till sist i den.</para
></listitem>
	</varlistentry>
     </variablelist>
  </listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Skriptåtgärd</guilabel
></term>
<listitem
><para
>en användardefinierad skriptåtgärd. Se <xref linkend="user-actions"/> för användaråtgärder. </para>
  <para
><guilabel
>Åtgärdsnamn</guilabel
> anger åtgärden som ska utföras när händelsen inträffar.</para>
</listitem>
</varlistentry>

</variablelist>
</listitem>
</varlistentry>
</variablelist>
<para
>Övriga poster beror på typ av <guilabel
>åtgärd</guilabel
> som beskrivna. </para>
</sect1>

<sect1 id="annotations">
<title
>Noteringar</title>
<para
>Noteringar är speciella kommentarer i dokumenten. De skiljer sig från vanliga kommentarer i följande avseenden: <itemizedlist>
<listitem
><para
>informationen samlas in av Quanta och visas i verktygsvyn <guilabel
>Noteringar</guilabel
>. </para
></listitem>
<listitem
><para
>informationen kan adresseras till en gruppmedlem </para
></listitem>
</itemizedlist>
</para>
<para
>Att skriva in noteringar är enkelt. Du kan antingen använda alternativet <guilabel
>Notering</guilabel
> i editorns sammanhangsberoende meny, eller skriva in nyckelordet <emphasis
>@annotation</emphasis
> i ett kommentarområde följt av noteringens text. <example
><title
>Noteringsexempel i XML</title
><screen
>&lt;!-- @annotation Det är möjligt att den här koden är felaktig. --&gt;</screen>
<screen
>&lt;!-- @annotation
 Flerraders 
 notering. 
--&gt;</screen
></example>
<example
><title
>Noteringsexempel i PHP</title
><screen
>/* @annotation 
Använd PHP-kommentarer vid noteringar i ett PHP-omåde
*/</screen>

</example>
</para>
<para
>Noteringar kan adresseras till en särskild medlem i gruppen. Syntaxen i detta fall är <emphasis
>@annotation(smeknamn)</emphasis
> eller <emphasis
>@annotation(roll)</emphasis
>, där <emphasis
>smeknamn</emphasis
> är gruppmedlemmens smeknamn, medan <emphasis
>roll</emphasis
> är en projektroll från följande lista: <itemizedlist
> <listitem
><para
> gruppledare </para
></listitem
> <listitem
><para
> aktivitetsledare </para
></listitem
> <listitem
><para
> delprojektledare </para
></listitem
> </itemizedlist
> Aktivitets- och delprojektledare ska följas av motsvarande aktivitets- eller delprojektnamn, som visas i exemplen nedan. </para>
<para>
<example
><title
>Gör en anteckning till en gruppmedlem med smeknamnet <emphasis
>eric</emphasis
></title>
<screen
>&lt;-- @annotation(eric) Eric, ta en titt på det här. Andras --&gt;</screen>
</example>
<example
><title
>Informera gruppledaren</title>
<screen
>&lt;-- @annotation(gruppledare) Det här är mycket viktigt för gruppen --&gt;</screen>
</example>
<example
><title
>Informera <emphasis
>PHP</emphasis
>-delprojektledaren</title>
<screen
>// @annotation(delprojektledare:PHP) Vad tror du om det?</screen>
</example>
</para>
<para
>Smeknamn och rollnamn är inte skiftlägeskänsliga, men mellanslag omkring parenteser och <emphasis
>:</emphasis
> gör noteringen ogiltig.</para>
<para
>Mer om gruppmedlemmar, roller och smeknamn finns under <xref linkend="team-members"/>.</para>
<para
>Noteringarna som finns i projektet kan inspekteras i vyn <guilabel
>Noteringar</guilabel
>. Den består av trädflikar: <variablelist
> <varlistentry
> <term
><guilabel
>Aktuell fil</guilabel
></term
> <listitem
><para
> Noteringarna som finns i aktuell fil.</para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>För dig</guilabel
></term
> <listitem
><para
> Noteringar i projektet adresserade till dig. Posterna grupperas per fil. </para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>Alla filer</guilabel
></term
> <listitem
><para
>Noteringarna som finns i alla projektfiler, grupperade enligt fil. </para
></listitem
> </varlistentry
> </variablelist
> Noteringarna söks igenom efter externa ändringar vid laddning av projekt och filer. På så sätt känns till och med en notering som någon lägger till utanför &quantaplus; igen. Eftersom sökningen kan ta en viss tid, kan informationsdialogrutan om nya noteringar adresserade till dig dyka upp några sekunder efter projektet laddats. </para>
</sect1>
&debugging-quanta; </chapter>
