1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
|
<?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
>[email protected]</email
></address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>[email protected]</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 <img /> tag scattered throughout 50 XHTML files. Are you
going to do a Find & 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 & Replace Project dialog.
</para>
<mediaobject>
<imageobject>
<imagedata fileref="kfr-new-dialog.png" format="PNG"/>
</imageobject>
<caption
><para
>KFileReplace's New Search & 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
>[email protected]</email
></address>
</affiliation>
</author>
<othercredit role="translator"
><firstname
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>[email protected]</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>
|