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

<chapter id="advanced-quanta-3-2">
<chapterinfo>
<title
>Características Avançadas</title>
<authorgroup>
<author
><firstname
>Christopher</firstname
> <surname
>Hornbaker</surname
> <affiliation
> <address
><email
>chrishornbaker@earthlink.net</email
></address>
</affiliation>

</author>

<othercredit role="translator"
><firstname
>Pedro</firstname
><surname
>Morais</surname
><affiliation
><address
><email
>morais@kde.org</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>
</chapterinfo>

<title
>Características Avançadas</title>

<para
>Este capítulo debruça-se sobre as características avançadas do &quantaplus;, e como as utilizar. </para>

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

<para
>A versão 3.2 do &quantaplus; traz com ele muitas ferramentas e funcionalidades novas de &XML;. As ferramentas são únicas na sua integração dentro do &quantaplus;. Todas essas ferramentas usam o <application
>Kommander</application
> como uma interface e a <application
>libxml2</application
> e a <application
>libxslt</application
> como infra-estruturas. A combinação de ambos cria ferramentas rápidas, eficientes, produtivas e completas. </para>

<sect2 id="kde-db-3-2">
<title
>Ferramentas de Documentação do &kde;</title>

<para
>O &quantaplus; suporta as duas ferramentas principais de documentação do &kde;: o <command
>meinproc</command
> e o <command
>checkXML</command
>. </para>

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

<para
>Todos os que já trabalharam com a documentação do &kde; conhecem o <command
>meinproc</command
> e quão bom é este. Bem, dê-lhe uma vista de olhos com uma interface gráfica óptima! Não precisa mais de se restringir a uma linha de comandos; basta carregar no ícone semelhante a um processador e está pronto! </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Pasta de Trabalho Actual</guilabel
></term>
<listitem>
<para
>Esta aplicação está à espera de um ficheiro <filename
>index.docbook</filename
> dentro de uma pasta. Se o <filename
>index.docbook</filename
> estiver na pasta de trabalho actual, então basta deixar seleccionada a <guilabel
>Pasta de Trabalho Actual</guilabel
>. Se não estiver, então desligue a opção <guilabel
>Pasta de Trabalho Actual</guilabel
> e indique a pasta que deseja processar no campo <guilabel
>Outra Pasta</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<para
>Os ficheiros de resultado são colocados na mesma pasta que os ficheiros de código. Todos os ficheiros de &HTML; são removidos de cada vez que o <command
>meinproc</command
> é executado. </para>
</note>

</sect3>

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

<para
>Mais uma vez, as pessoas que já usaram a documentação do &kde; conhecem esta aplicação útil. De novo, o &quantaplus; oferece uma pequena grande interface gráfica para este utilitário. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Pasta de Trabalho Actual</guilabel
></term>
<listitem>
<para
>Se o ficheiro aberto no momento for o <filename
>index.docbook</filename
>, então poderá deixar a opção <guilabel
>Pasta de Trabalho Actual</guilabel
>. Se não for, então desligue a opção <guilabel
>Pasta de Trabalho Actual</guilabel
> e indique a pasta onde o <filename
>index.docbook</filename
> poderá ser encontrado. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<title
>Resultado</title>
<para
>Se existir algum resultado, então é porque o seu ficheiro é inválido. Corrija por favor os erros indicados e tente de novo. </para>
</note>
</sect3>
</sect2>

<sect2 id="xmlval-3-2">
<title
>Validação de &XML;</title>

<para
>O &quantaplus; tem uma óptima ferramenta de validação de &XML;, a qual utiliza a infra-estrutura do <command
>xmllint</command
>. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Ficheiro Actual</guilabel
></term>
<listitem>
<para
>Se o ficheiro a validar estiver de momento em primeiro plano no &quantaplus;, então basta deixar o <guilabel
>Ficheiro Actual</guilabel
> assinalado. Se não estiver, então desligue a opção <guilabel
>Ficheiro Actual</guilabel
> e seleccione o ficheiro a validar no selector de ficheiros Outro Ficheiro. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Verificação de Formatação Válida</guilabel
></term>
<listitem>
<para
>Se só deseja ver se o ficheiro está bem formatado, carregue na opção <guilabel
>Apenas Verificação de Boa-Formação</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>&URI; da Definição</guilabel
></term>
<listitem>
<para
>Se você estiver a usar um &DTD; e se este estiver indicado no ficheiro &XML;, então seleccione o &DTD; (Interno) (por omissão), caso contrário seleccione o &DTD; (Externo) e indique qual é o &DTD; com o selector de ficheiros do &URI; de Definição. Tanto o &XML; Schema do &W3C; como a validação do RelaxNG são obrigados a serem definidos externamente no selector de ficheiros do <guilabel
>&URI; de Definição</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

<sect2 id="xsltproc-3-2">
<title
>Processamento de &XSL;</title>

<para
>Sim, o &quantaplus; tem uma ferramenta de processamento de &XSL;, também! Isto usa a ferramenta  <command
>xsltproc</command
> que vem com a <application
>libxml2</application
>. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Ficheiro Actual</guilabel
></term>
<listitem>
<para
>Se o ficheiro a ser processado está em primeiro plano no &quantaplus; neste momento, então basta deixar a opção <guilabel
>Ficheiro Actual</guilabel
> assinalada. Se não estiver, então desligue a opção <guilabel
>Ficheiro Actual</guilabel
> e seleccione o ficheiro a processar no selector <guilabel
>Outro Ficheiro</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Folha de estilo</term>
<listitem>
<para
>Seleccione o ficheiro &XSL; que deseja usar. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Nome do ficheiro do resultado</guilabel
></term>
<listitem>
<para
>Indique o nome do ficheiro com que deseja denominar o ficheiro com o resultado. O ficheiro é colocado na sua pasta pessoal por omissão. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<para
>Esta aplicação é limitada em flexibilidade. Desculpe-nos, tentaremos fazer melhor da próxima vez. </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
>Usar os 'Plugins'</title>
<authorgroup>
<author
><firstname
>Mathieu</firstname
> <surname
>Kooiman</surname
> <affiliation
> <address
><email
>quanta@map-is.nl</email
></address>
</affiliation>
</author>

<othercredit role="translator"
><firstname
>Pedro</firstname
><surname
>Morais</surname
><affiliation
><address
><email
>morais@kde.org</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Usar os 'Plugins'</title>

<sect2 id="what-is-a-plugin-3-2">
<title
>O Que é um 'Plugin'?</title>

<para
>O &quantaplus; é capaz de carregar 'plugins', os quais são KParts. A plataforma de KPart é outra funcionalidade bastante poderosa do &kde;. Uma KPart é um contentor de funcionalidades relativamente pequeno e reutilizável. Permite aos programadores do &kde; programarem facilmente com o trabalho de outros programadores. Um exemplo disto é o próprio &quantaplus;. O editor que o &quantaplus; usa é a KPart do &kate;. A KPart do &kate; já contém muita da funcionalidade que o &quantaplus; necessitava, como o realce de sintaxe. A integração do mesmo com o &quantaplus; permitiu aos programadores do &quantaplus; focarem-se no que o &quantaplus; deveria ser capaz de fazer, em vez de se preocuparem com os vários problemas que teria a criação de um novo componente/KPart de edição do zero. </para>

<para
>Os 'plugins' que o &quantaplus; carrega poderão não ter nada a ver com o próprio &quantaplus;. Isto torna-o um sistema bastante poderoso de 'plugins'. Você poderá tirar partido de várias funcionalidades extra e não é preciso esperar até alguém o integrar com o &quantaplus;! Os 'plugins' podem ser carregados num conjunto de elementos de &GUI;. Poderá ver mais sobre isto em baixo. </para>

</sect2>

<sect2 id="plugin-dialog-3-2">
<title
>Compreender a Janela de Edição do 'Plugin'</title>

<para
>Para instalar um 'Plugin' ou KPart você irá aceder a <menuchoice
> <guimenu
>'Plugins'</guimenu
> <guimenuitem
>Editar</guimenuitem
> </menuchoice
>. Isto fará aparecer a seguinte janela: </para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="plugin-edit.png"/>
</imageobject>
<caption
><para
>A janela de Edição do 'Plugin'.</para
></caption>
</mediaobject>

<para
>Esta janela permite-lhe gerir todos os 'plugins' definidos e permite-lhe adicionar novos. Nós iremos descrever cada um dos elementos gráficos aqui: <variablelist>
<varlistentry>
<term
><guilabel
>Locais de pesquisa</guilabel
></term>
<listitem>
<para
>Aqui você poderá indicar um local de pesquisa. Ao adicionar um 'plugin' sem <guilabel
>Localização</guilabel
>, o &quantaplus; irá procurar nas pastas aqui indicadas de modo a encontrar o 'plugin'. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Adicionar</guilabel
></term>
<listitem>
<para
>Isto fará aparecer uma janela que lhe permitirá adicionar um novo 'plugin'. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Configurar</guilabel
></term>
<listitem>
<para
>Isto permitir-lhe-á alterar a configuração de um dado 'plugin'. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Remover</guilabel
></term>
<listitem>
<para
>Remove o 'plugin' seleccionado no momento. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Actualizar</guilabel
></term>
<listitem>
<para
>Actualiza o conteúdo da janela. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para
>Leia a secção <xref linkend="configure-plugins"/> para aprender mais sobre os 'plugins'.</para>
</sect2>
</sect1>
<sect1 id="team-members">
  <title
>Desenvolvimento em Equipa</title>
  <para
>Muitas vezes, um projecto tem mais que uma pessoa a trabalhar nele e existe alguma espécie de relação hierárquica entre eles. O &quantaplus; suporta a noção de membros do projecto, podendo estes ser configurados na janela em <menuchoice
> <shortcut
> <keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
> </shortcut
> <guimenu
>Projecto</guimenu
> <guimenuitem
>Propriedades do Projecto</guimenuitem
> </menuchoice
>. </para>
  <mediaobject>
    <imageobject>
      <imagedata format="PNG" fileref="team-editing.png"/>
    </imageobject>
    <caption
><para
>A janela de edição dos membros da equipa</para
></caption>
  </mediaobject>
  <para
>Os itens do <guilabel
>Nome</guilabel
>, <guilabel
>E-mail</guilabel
> são auto-explicativos. </para>
  <para
>O <guilabel
>Papel</guilabel
> define o papel do membro no projecto e poderá ser um dos seguintes: <itemizedlist>
<listitem
><para>
<guilabel
>Líder da Equipa</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Lider do Subprojecto</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Lider da Tarefa</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Membro Normal</guilabel>
</para
></listitem>
</itemizedlist>
</para>
<para
>A <guilabel
>Tarefa</guilabel
> é uma descrição da tarefa atribuída a este membro.</para>
<para
><guilabel
>Sub-projecto</guilabel
>: poderá seleccionar uma lista de subprojectos. Estes poderão ser configurados e criados se carregar no botão <guilabel
>Editar os subprojectos</guilabel
>. Cada subprojecto tem um nome visível de utilizador e um item de localização, correspondo o último a uma localização relativa de uma pasta sob a árvore do projecto. Isto significa que um subprojecto é uma pasta sob o projecto principal. Por exemplo, o projecto principal poderá ser a página Web da sua companhia, enquanto um subprojecto poderá ser a página Web da Intranet, localizada sob a pasta <filename path="intranet"
>intranet</filename
> do projecto.</para>
<para
>Um membro poderá ter mais que um papel no projecto, como ser líder da equipa e do subprojecto.</para>
<para
>Para além de manter um registo da sua equipa, existe um benefício na configuração dos membrosda equipa: você poderá configurar um evento para informar os líderes da equipa quando acontecer alguma acção. Veja em <xref linkend="event-actions"/> como fazê-lo.</para>
</sect1>
<sect1 id="event-actions">
  <title
>Acções do Evento</title>
  <para
>As acções de eventos são acções que são executadas quando algum evento ocorre no projecto. Um desses exemplos poderá ser o registo de quando o projecto foi aberto e fechado da última vez, para que possa ser analisado posteriormente quanto é que cada um trabalhou ou para enviar uma mensagem de e-mail quando for gravado um ficheiro, ou ainda para adicionar o ficheiro ao CVS com a ajuda de um programa, quando desejar adicionar o ficheiro ao projecto; esta lista poderá continuar.</para>
  <para
>Na página de <guilabel
>Configuração do Evento</guilabel
> na janela de <menuchoice
> <shortcut
> <keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
> </shortcut
> <guimenu
>Projecto</guimenu
> <guimenuitem
>Propriedades do Projecto</guimenuitem
> </menuchoice
>, você poderá criar, editar e remover as acções do evento. </para>
<mediaobject>
  <imageobject>
    <imagedata format="PNG" fileref="event-editing.png"/>
  </imageobject>
  <caption
><para
>A janela de edição de eventos</para
></caption>
</mediaobject>
<para
>Os itens na janela são:</para>
<variablelist>
<varlistentry>
<term
><guilabel
>Evento</guilabel
></term>
<listitem
><para
>a acção é executada quando ocorrer o evento seleccionado na lista. Os nomes dos eventos são suficientemente claros.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Acção</guilabel
></term>
<listitem
><para
>o tipo da acção executada. As escolhas possíveis são </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Acção sem programa</guilabel
></term>
<listitem
><para
>uma acção que não é uma acção de um programa definido pelo utilizador. Veja as acções do utilizador em <xref linkend="user-actions"/>. </para>
<para
><guilabel
>Nome da acção</guilabel
> indica a acção a executar quando ocorrer o evento.</para>
</listitem>
</varlistentry>
<varlistentry>
  <term
><guilabel
>Enviar um e-mail</guilabel
></term>
  <listitem
><para
>é enviado um e-mail quando ocorrer a acção para o destinatário seleccionado na lista do <guilabel
>Destinatário</guilabel
>. Este poderá ser um líder de equipa ou de um subprojecto. Veja em <xref linkend="team-members"/> a definição destes líderes. </para
>    
  </listitem>
</varlistentry>
<varlistentry>
  <term
><guilabel
>Registar o evento</guilabel
></term>
  <listitem
><para
>o evento é registado num ficheiro. Os argumentos desta acção são: </para>
    <variablelist>
	<varlistentry>
	<term
><guilabel
>Ficheiro de registo</guilabel
></term>
	<listitem
><para
>o nome completo e a localização do ficheiro</para
></listitem>
	</varlistentry>
	<varlistentry>
	<term
>Detalhe</term>
	<listitem
><para
>Quanta informação irá conter este registo</para
></listitem>
	</varlistentry>
	<varlistentry>
	<term
><guilabel
>Comportamento</guilabel
></term>
	<listitem
><para
>Se deve criar/sobrepor o ficheiro de registo existente ou adicionar o novo evento a ele.</para
></listitem>
	</varlistentry>
     </variablelist>
  </listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Acção de programa</guilabel
></term>
<listitem
><para
>uma acção de um programa definido pelo utilizador. Veja em <xref linkend="user-actions"/> as acções do utilizador. </para>
  <para
><guilabel
>Nome da acção</guilabel
> indica a acção a executar quando ocorrer o evento.</para>
</listitem>
</varlistentry>

</variablelist>
</listitem>
</varlistentry>
</variablelist>
<para
>Os outros itens dependem do tipo de <guilabel
>Acção</guilabel
> com que foram descritos. </para>
</sect1>
&debugging-quanta; </chapter>
