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

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

</author>

<othercredit role="translator"
><firstname
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>marcus_gama@uol.com.br</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>
</chapterinfo>

<title
>Recursos Avançados</title>

<para
>Este capítulo apresenta os recursos avançados do &quantaplus; e como usá-los. </para>

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

<para
>A versão 3.2 do &quantaplus; vem com muitas ferramentas e recursos &XML; novos. As ferramentas são única em sua integração com o &quantaplus;. Todas estas ferramentas usam o <application
>Kommander</application
> como uma interface e o <application
>libxml2</application
> e <application
>libxlst</application
> como programas de base. A combinação deles torna as 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 de documentação principais do &kde;: <command
>meinproc</command
> e <command
>checkXML</command
>. </para>

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

<para
>Qualquer um que já trabalhou com a documentação do &kde; conhece o <command
>meinproc</command
> e o quão extraordinário ele é. Bem, examinaremos em detalhes com uma grande interface gráfica! Não será mais necessário um shell; simplesmente clique em um ícone que se assemelha a um processador e tudo será feito! </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Pasta de Trabalho Atual</guilabel
></term>
<listitem>
<para
>Este aplicativo espera que um arquivo <filename
>index.docbook</filename
> esteja presente em uma pasta. Se o <filename
>index.docbook</filename
> estiver na pasta de trabalho atual, então simplesmente deixe a <guilabel
>Pasta de Trabalho Atual</guilabel
> selecionada. Caso contrário, então desabilite a <guilabel
>Pasta de Trabalho Atual</guilabel
> e insira a pasta que deseja processar no campo <guilabel
>Outra Pasta</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<para
>Os arquivos de saída serão colocados na mesma pasta dos arquivos fontes. Todos os arquivos &HTML; serão removidos cada vez que o <command
>meinproc</command
> é executado. </para>
</note>

</sect3>

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

<para
>Novamente, qualquer um que tenha trabalhado com a documentação do &kde; conhece a utilidade deste aplicativo. Novamente, o &quantaplus; fornece uma formidável interface gráfica para ele. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Pasta de Trabalho Atual</guilabel
></term>
<listitem>
<para
>Se o arquivo atualmente aberto é o <filename
>index.docbook</filename
>, então simplesmente deixe <guilabel
>Pasta de Trabalho Atual</guilabel
> habilitado. Caso contrário, desabilite <guilabel
>Pasta de Trabalho Atual</guilabel
> e insira a pasta onde o <filename
>index.docbook</filename
> pode ser encontrado. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<title
>Saída</title>
<para
>Se não houver saída, então seu arquivo é inválido. Por favor corrija os erros reportados e tente novamente. </para>
</note>
</sect3>
</sect2>

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

<para
>O &quantaplus; possui uma grande ferramenta de validação &XML;, que usa o <command
>xmllint</command
> como programa base. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Arquivo Atual</guilabel
></term>
<listitem>
<para
>Se o arquivo a ser validado está atualmente em foco no &quantaplus;, então simplesmente deixe <guilabel
>Arquivo Atual</guilabel
> habilitado. Caso contrário, então desabilite o <guilabel
>Arquivo Atual</guilabel
> e selecione o arquivo a ser validado a partir do seletor de Outro Arquivo. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Verificação de Conformação</guilabel
></term>
<listitem>
<para
>Se você somente deseja saber se o arquivo está conforme, clique a caixa de verificação <guilabel
>Verificação de Conformação Somente</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Definição de &URI;</guilabel
></term>
<listitem>
<para
>Se você estiver usando um &DTD; e ele é especificado dentro do arquivo &XML;, então selecione &DTD; (Interno) (padrão), caso contrário selecione &DTD; (Externo) e localizar o &DTD; com o seletor de arquivo de Definição de &URI;. A validação tanto do Esquema &W3C; &XML; como a RelaxNG são necessárias para ser definido externamente através do seletor de arquivo de <guilabel
>Definição de &URI;</guilabel
>. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>

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

<para
>Sim, o &quantaplus; possui uma ferramenta de processamento &XSL; também! Ele usa a ferramenta <command
>xsltproc</command
> fornecida com o <application
>libxml2</application
>. </para>

<variablelist>
<varlistentry>
<term
><guilabel
>Arquivo Atual</guilabel
></term>
<listitem>
<para
>Se o arquivo a ser processado está atualmente em foco no &quantaplus;, então simplesmente deixe <guilabel
>Arquivo Atual</guilabel
> selecionado. Caso contrário, então desabilite <guilabel
>Arquivo Atual</guilabel
> e selecione o arquivo a ser processado a partir do seletor de <guilabel
>Outro Arquivo</guilabel
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Folha de Estilo</term>
<listitem>
<para
>Selecione o arquivo &XSL; que você deseja usar. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Nome do arquivo de saída</guilabel
></term>
<listitem>
<para
>Insira o nome do arquivo no qual você deseja que o resultado seja salvo. O arquivo é gerado na sua pasta pessoal por padrão. </para>
</listitem>
</varlistentry>
</variablelist>

<note>
<para
>Este aplicativo perde flexibilidade. Desculpe, nós faremos melhor na 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
>Usando 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
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>marcus_gama@uol.com.br</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 

</authorgroup>
</sect1info>

<title
>Usando Plugins</title>

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

<para
>O &quantaplus; é capaz de carregar plugins, que são KParts. O ambiente de trabalho de KPart é outro potencialidade do ambiente de trabalho do &kde;. Um KPart é um pedaço de funcionalidade reusável relativamente pequeno. Ele permite aos desenvolvedores do &kde; facilmente construir a partir do trabalho de outros programadores. Um exemplo disto é o próprio &quantaplus;. O editor do &quantaplus; usa o KPart &kate;. O KPart &kate; já possui um conjunto de funcionalidades que o &quantaplus; precisa, como destaque de sintaxe. Integrando-o ao &quantaplus; permite aos desenvolvedores do &quantaplus; focar no que o &quantaplus; deve ser capaz de fazer, ao invés de enfrentar os muitos problemas que o desenvolvimento de um novo componente/KPart de editor a partir do zero trará. </para>

<para
>Os plugins que o &quantaplus; carrega não devem fazer nada com o &quantaplus; propriamente dito. Isto faz dele um sistema de plugin poderoso. Você pode beneficiar-se de funcionalidades extras sem precisar esperar que alguém integre-as ao &quantaplus;! Os plugins podem ser carregados em diversos elementos de &GUI;. Mais sobre isto pode ser visto abaixo. </para>

</sect2>

<sect2 id="plugin-dialog-3-2">
<title
>Entendendo o Diálogo de Edição de Plugin</title>

<para
>Para instalar um Plugin ou KPart nós trabalharemos a partir do menu <menuchoice
> <guimenu
>Plugins</guimenu
> <guimenuitem
>Editar</guimenuitem
> </menuchoice
>. Isto trará o seguinte diálogo: </para>

<mediaobject>
<imageobject>
<imagedata format="PNG" fileref="plugin-edit.png"/>
</imageobject>
<caption
><para
>O diálogo Editar Plugin.</para
></caption>
</mediaobject>

<para
>Este diálogo permite gerenciar todos os plugins definidos além de adicionar novos. Nós descreveremos cada elemento de &GUI; aqui: <variablelist>
<varlistentry>
<term
><guilabel
>Caminhos de busca</guilabel
></term>
<listitem>
<para
>Aqui você pode preencher um caminho de busca. Ao adicionar um plugin sem uma <guilabel
>Localização</guilabel
>, o &quantaplus; buscará nestes caminhos pelo plugin. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Adicionar</guilabel
></term>
<listitem>
<para
>Isto trará um diálogo que permite adicionar um novo plugin. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Configurar</guilabel
></term>
<listitem>
<para
>Isto permitirá mudar as configurações de um plugin em particular. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Remover</guilabel
></term>
<listitem>
<para
>Remove o plugin atualmente selecionado. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><guilabel
>Atualizar</guilabel
></term>
<listitem>
<para
>Atualiza o conteúdo do diálogo. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para
>Read <xref linkend="configure-plugins"/> to learn more about plugins.</para>
</sect2>
</sect1>
<sect1 id="team-members">
  <title
>Desenvolvimento em Equipe</title>
  <para
>Muitas vezes, um projeto tem mais de uma pessoa trabalhando nele e existe alguma espécie de relação hierárquica entre eles. O &quantaplus; suporta a noção de membros do projeto e eles são configurados no diálogo em <menuchoice
> <shortcut
> <keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
> </shortcut
> <guimenu
>Projeto</guimenu
> <guimenuitem
>Propriedades do Projeto</guimenuitem
> </menuchoice
>. </para>
  <mediaobject>
    <imageobject>
      <imagedata format="PNG" fileref="team-editing.png"/>
    </imageobject>
    <caption
><para
>O diálogo do editor dos membros da equipe</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 projeto e poderá ser um dos seguintes: <itemizedlist>
<listitem
><para>
<guilabel
>Líder da Equipe</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Lider do Subprojeto</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-projeto</guilabel
>: você poderá selecionar uma lista de sub-projetos. Eles poderão ser configurados e criados pressionando o botão <guilabel
>Editar sub-projetos</guilabel
>. Cada sub-projeto tem um nome visível de usuário e um item de localização, correspondendo o último a uma localização relativa de uma pasta sob a árvore do projeto. Isto significa que um sub-projeto é uma pasta sob o projeto principal. Por exemplo, o projeto principal poderá ser a página Web da sua companhia, enquanto um sub-projeto poderá ser a página Web da Intranet, localizada sob a pasta <filename path="intranet"
>intranet</filename
> do projeto.</para>
<para
>Um membro poderá ter mais de um papel no projeto, como ser líder da equipe e do sub-projeto.</para>
<para
>Além de manter um registro da sua equipe, existe mais um benefício na configuração dos membros da equipe: você poderá configurar um evento para informar os líderes da equipe quando acontecer alguma ação. Veja em <xref linkend="event-actions"/> como fazê-lo.</para>
</sect1>
<sect1 id="event-actions">
  <title
>Ações do Evento</title>
  <para
>As ações de eventos são ações que são executadas quando algum evento ocorre no projeto. Um desses exemplos poderá ser o registro de quando o projeto foi aberto e fechado da última vez, para que possa ser analisado posteriormente quanto cada um trabalhou ou para enviar uma mensagem de e-mail quando for gravado um arquivo, ou ainda para adicionar o arquivo ao CVS com a ajuda de um programa, quando desejar adicionar o arquivo ao projeto; e esta lista poderá continuar.</para>
  <para
>Na página de <guilabel
>Configuração do Evento</guilabel
> no diálogo de <menuchoice
> <shortcut
> <keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
> </shortcut
> <guimenu
>Projeto</guimenu
> <guimenuitem
>Propriedades do Projeto</guimenuitem
> </menuchoice
>, você poderá criar, editar e remover as ações do evento. </para>
<mediaobject>
  <imageobject>
    <imagedata format="PNG" fileref="event-editing.png"/>
  </imageobject>
  <caption
><para
>O diálogo do editor de evento</para
></caption>
</mediaobject>
<para
>Os itens no diálogo são:</para>
<variablelist>
<varlistentry>
<term
><guilabel
>Evento</guilabel
></term>
<listitem
><para
>a ação é executada quando ocorrer o evento selecionado na lista. Os nomes dos eventos são suficientemente claros.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Ação</guilabel
></term>
<listitem
><para
>o tipo da ação executada. As escolhas possíveis são </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Ação sem programa</guilabel
></term>
<listitem
><para
>uma ação que não é uma ação de um programa definido pelo usuário. Veja as ações do usuário em <xref linkend="user-actions"/>. </para>
<para
><guilabel
>Nome da ação</guilabel
> indica a açã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 ação para o destinatário selecionado na lista do <guilabel
>Destinatário</guilabel
>. Ele poderá ser um líder de equipe ou de um sub-projeto. Veja em <xref linkend="team-members"/> a definição destes líderes. </para
>    
  </listitem>
</varlistentry>
<varlistentry>
  <term
><guilabel
>Registrar o evento</guilabel
></term>
  <listitem
><para
>o evento é registrado num arquivo. Os argumentos desta ação são: </para>
    <variablelist>
	<varlistentry>
	<term
><guilabel
>Arquivo de registro</guilabel
></term>
	<listitem
><para
>o nome completo e a localização do arquivo</para
></listitem>
	</varlistentry>
	<varlistentry>
	<term
>Detalhe</term>
	<listitem
><para
>Quanta informação irá conter este registro</para
></listitem>
	</varlistentry>
	<varlistentry>
	<term
><guilabel
>Comportamento</guilabel
></term>
	<listitem
><para
>Se deve criar/sobrepor o arquivo de registro existente ou adicionar o novo evento a ele.</para
></listitem>
	</varlistentry>
     </variablelist>
  </listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Ação de programa</guilabel
></term>
<listitem
><para
>uma ação de um programa definido pelo usuário. Veja em <xref linkend="user-actions"/> as ações do usuário. </para>
  <para
><guilabel
>Nome da ação</guilabel
> indica a ação a executar quando ocorrer o evento.</para>
</listitem>
</varlistentry>

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