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
|
<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id="dcop-interface">
<sect1info>
<title>Funzioni &DCOP;</title>
<authorgroup>
<author><firstname></firstname> <surname></surname> <affiliation><address> <email></email>
</address></affiliation>
</author>
<othercredit role="translator"><firstname>Samuele</firstname><surname>Kaplun</surname><affiliation><address><email>kaplun@aliceposta.it</email></address></affiliation><contrib>Traduzione del documento</contrib></othercredit>
</authorgroup>
</sect1info>
<title>Funzioni &DCOP;</title>
<para>&DCOP; può essere richiamato in &kommander; in diversi modi. Il primo metodo è attraverso la console </para>
<para>dcop kmdr-executor-@pid KommanderIf changeWidgetText myWidget <quote>new text</quote> </para>
<para>Si presume che tu ti trovi in un file &kommander; ed hai accesso al comando speciale @pid che contiene l'ID del processo. Nella pratica è più semplice sostituire <quote>kmdr-executor-@pid</quote> con @dcopid. Per modificare la finestra di &kommander;, puoi, comunque, utilizzare questa sintassi (ovviamente senza i comandi speciali) dalla linea di comando o da qualsiasi altro script esterno. </para>
<para>Dato che &kommander; non possiede un analizzatore completo nel sua fase Alpha, usare il comando &DCOP; interno, molto più rapido, dalla finestra di un'altra applicazione (la console &DCOP; è molto lenta) è più complicato perché devi fornire molte informazioni, incluso un prototipo della chiamata. La chiamata di prima diventerebbe: </para>
<para>@dcop(@dcopid, KommanderIf, <quote>enableWidget(QString, bool)</quote>, Widget, true) </para>
<para>Al momento in cui questo manuale è stato scritto dovresti sapere che annidare chiamate &DCOP; all'interno di strutture di linguaggi di script (come <application>bash</application>) impone l'utilizzo dei metodi di chiamata da console. <emphasis>Se utilizzi il &DCOP; interno tutti i comandi speciali di &kommander; saranno eseguiti prima dello script.</emphasis> </para>
<para>Esiste una nuova modalità semplificata di utilizzare &DCOP; all'interno di &kommander; utilizzando una sintassi ad oggetti. Supponiamo che tu voglia cambiare il testo in un widget chiamato @LineEdit1. Si scriverebbe così. </para>
<para>@LineEdit1.changeWidgetText(New text) </para>
<para>Come puoi vedere la nuova sintassi è molto semplice quanto consistente visivamente con i gruppi di funzioni. Tutti comandi &DCOP; referenziati qui utilizzeranno la nuova sintassi ad oggetti indicata prima. <emphasis>Per favore, nota che se stai facendo riferimento ad un widget che utilizza &DCOP; da un'alta finestra o da un'altra applicazione, il primo parametro sarà sempre il nome del widget. Sono qui elencate tutte le funzioni a partire dal secondo parametro.</emphasis> </para>
<sect2 id="dcop-globals">
<title>&DCOP; per Variabili Globali</title>
<variablelist>
<varlistentry>
<term>global(QString nomeVariabile)</term>
<listitem>
<para>Restituisce il valore della variabile globale specificata. Quando uno script viene lanciato all'interno di una finestra di &kommander; qualsiasi variabile (non globale) impostata in quello script cesserà di esistere una volta terminato lo script e perciò non sarà più disponibile ai processi degli altri script o in una nuova istanza del processo chiamante. Nel <quote>contesto</quote> globale la variabile esisterà per ogni processo od ogni finestra fino al momento in cui quella viene chiusa. Puoi modificare queste variabili in ogni momento con una nuova chiamata a <function>@setGlobal</function>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>setGlobal(QString nomeVariabile, QString valore)</term>
<listitem>
<para>Crea una variabile che è globale per la finestra del processo e le assegna un valore. Questo valore può essere recuperato con global(QString nomeVariabile) o reimpostato. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-all">
<title>&DCOP; per tutti i Widget</title>
<variablelist>
<varlistentry>
<term>changeWidgetText(QString testo)</term>
<listitem>
<para>Questo comando dovrebbe venir rinominato in setWidgetText ed il suo nome verrà probabilmente deprecato. Esso rimuove il testo visualizzato nel widget sostituendolo con il testo fornito. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>enableWidget(bool abilita)</term>
<listitem>
<para>Abilita o disabilita un widget. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>associatedText</term>
<listitem>
<para>Restituisce il testo associato al particolare widget. Questo non è lo stesso di quello visualizzato. Verrebbe altrimenti utilizzato con <quote>@widgetText</quote> o con il testo e/o script utilizzato per arrivare al valore visualizzato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>setAssociatedText(QString testo)</term>
<listitem>
<para>Imposta la stringa predefinita di Testo di &kommander;. Questa è tipicamente impostata a <quote>@widgetText</quote> per visualizzare ciò che viene inserito nel widget. È raro che tu ne abbia bisogno, in ogni caso c'è. Viene applicato a tutti i widget che contengono informazioni. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-box">
<title>&DCOP; per i Widget ListBox e ComboBox</title>
<variablelist>
<varlistentry>
<term>addListItem(QString elemento, int indice)</term>
<listitem>
<para>Aggiunge un elemento ad un widget ListBox all'indice specificato. L'indice della lista comincia da zero. Per aggiungere alla fine della lista utilizzare -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>addListItems(QStringList elementi, int indice)</term>
<listitem>
<para>Aggiunge una lista di stringhe in una sola volta. La lista dovrebbe essere delimitata da <acronym>EOL</acronym> (\n - a-capo). Questo comando è comodo perché puoi facilmente utilizzare bash per procurarti la lista. Utilizzando, ad esempio, @exec(ls -l ~/projects | grep kmdr) al posto degli elementi, restituirà l'elenco dei file di &kommander; nella cartella dei tuoi progetti. L'indice della lista comincia da zero. Utilizza -1 per aggiungere alla fine della lista. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>addUniqueItem(QString elemento)</term>
<listitem>
<para>addUniqueItem aggiungerà un elemento alla fine della lista solo se non è già presente. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>clearList</term>
<listitem>
<para>Rimuove tutti gli elementi. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>removeListItem(int indice)</term>
<listitem>
<para>Rimuove tutti gli elementi a partire dall'indice specificato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>item(int indice)</term>
<listitem>
<para>Restituisce il testo dell'elemento all'indice specificato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>setCurrentListItem(int indice)</term>
<listitem>
<para>Imposta l'elemento corrente (o selezionato) all'indice specificato. Si applica ai widget ListBox e ComboBox. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-button">
<title>&DCOP; per i Widget CheckBox e RadioButton</title>
<variablelist>
<varlistentry>
<term>setChecked(QString nomeWidget, bool attivato)</term>
<listitem>
<para>Attiva/disattiva i widget CheckBox o RadioButton. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-tab">
<title>&DCOP; per i Widget TabWidget</title>
<variablelist>
<varlistentry>
<term>setCurrentTab(QString nomeWidget, int indice)</term>
<listitem>
<para>Seleziona la linguetta del TabWidget in base all'indice. L'indice comincia da 0. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
|