Capitolo 4. Generare codice con i modelli

KDevelop usa i modelli per generare file di codice sorgente e per evitare di scrivere codice ripetibile.

Creare una nuova classe

Il modo più banale di generare codice probabilmente è scrivere nuove classi. Per creare una nuova classe in un progetto esistente, fare clic con il tasto destro sulla cartella di un progetto e scegliere Crea da modello.... Si può fare la stessa cosa dal menu facendo clic su FileNuovo da modello..., ma usare la cartella del progetto ha il vantaggio di impostare un collegamento base per i file di output. Scegli Classe nella vista di selezione della categoria, ed il linguaggio e il modello desiderati nelle altre due viste. Dopo aver selezionato il modello della classe, dovrai specificare i dettagli della nuova classe.

Come primo passo devi specificare un identificatore per la nuova classe. Questo può essere un nome semplice (come Bus) o un identificatore con un namespace (come Transportation::Bus). Nell'ultimo caso, KDevelop analizzerà l'identificatore e separerà correttamente il namespace dal nome effettivo. Nella stessa pagina, puoi aggiungere classi di base alla nuova classe. Puoi notare che alcuni modelli scelgono una classe base da soli, sei libero di rimuoverla e/o aggiungerne altre. Qui dovresti scrivere il tipo di ereditarietà, indipendentemente dal linguaggio, come ad esempio public QObject per il C++, extends SomeClass per il PHP o semplicemente il nome della classe per il Python.

Nella pagina seguente, ti verrà offerta una selezione di metodi virtuali dalle classi ereditate, così come alcuni costruttori, distruttori e operatori predefiniti. La selezione della casella di controllo accanto alla firma del metodo implementerà questo metodo nella nuova classe.

Facendo clic su Successivo si va ad una pagina dove puoi aggiungere membri ad una classe. A seconda del modello selezionato, questi possono apparire nella nuova classe come variabili membro, o il modello potrebbe creare per loro proprietà con setter e getter. In un linguaggio dove devono essere dichiarati i tipi di variabile, come il C++ ad esempio, devi specificare sia il tipo che il nome del membro, come int number o QString name. In altri linguaggi puoi non specificare il tipo, ma è buona norma specificarlo comunque, perché il modello scelto potrebbe ancora farne un certo uso.

Nelle pagine seguenti puoi scegliere una licenza per la tua nuova classe, impostare qualsiasi opzione personalizzata richiesta dal modello selezionato, e configurare dove salvare i file generati. Facendo clic su Completa, completi l'assistente e crei la nuova classe. I file generati saranno aperti nell'editor, in modo che tu possa iniziare ad aggiungere codice subito.

Dopo aver creato una nuova classe C++ ti sarà data la possibilità di aggiungere la classe al progetto scelto. Scegline uno dalle pagine della finestra, o chiudi la pagina e aggiungi manualmente i file ad un progetto.

Se hai scelto il modello Qt Object, controllato alcuni dei metodi predefiniti, e aggiunto due variabili membro, l'output dovrebbe essere simile alla seguente immagine.

Puoi vedere che i dati membro sono convertiti in proprietà Qt, con funzioni d'accesso e le macro Q_PROPERTY. Gli argomenti delle funzioni setter sono anche passati come const-reference, se del caso. Inoltre, è dichiarata una classe privata e un puntatore privato creato con Q_DECLARE_PRIVATE. Tutto questo è fatto dal modello, la scelta di un altro nel primo passo potrebbe cambiare completamente l'output.