Kapitel 4. Kodgenerering med mallar

KDevelop använder mallar för att generera källkodsfiler och undvika att skriva upprepad kod.

Skapa en ny klass

Den vanligaste användningen av kodgenerering är troligen att skriva nya klasser. För att skapa en ny klass i ett befintligt projekt, högerklicka på ett projektkatalog och välj Skapa från mall.... Samma dialogruta kan visas från menyn genom att klicka på ArkivNy från mall..., men använda en projektkatalog har fördelen att ställa in en baswebbadress för utdatafiler. Välj Klass i vyn för kategorival, och önskat språk och mall i de andra två vyerna. Efter du har valt en klassmall, måste du ange detaljinformation om den nya klassen.

Först måste du ange en identifierare för den nya klassen. Det kan vara ett enkelt namn (som Bus) eller en fullständig identifierare med namnrymder (som Transportation::Bus). I det senare fallet tolkar KDevelop identifieraren och separerar namnrymden från själva namnet. På samma sida kan du lägga till en basklass för den nya klassen. Du kan märka att några mallar väljer en basklass själva, du har full frihet att ta bort den och/eller lägga till andra basklasser. Du bör skriva in det fullständiga arvsatsen här, vilket är språkberoende, såsom public QObject för C++, extends SomeClass för PHP eller helt enkelt klassens namn för Python.

På nästa sida erbjuds du ett urval av virtuella metoder från alla ärvda klasser, samt några standardkonstruktorer, destruktorer och operatorer. Att markera kryssrutan intill signaturen för en metod implementerar den metoden i den nya klassen.

Att klicka på Nästa visar en sida där du kan lägga till medlemmar i en klass. Beroende på den valda mallen, kan de visas i den nya klassen som medlemsvariabler, eller så kan mallen skapa egenskaper med tilldelnings- och hämtningsfunktioner för dem. I ett språk där variabeltyper måste deklareras, såsom C++, måste du ange både typen och namnet på medlemmen, såsom int number eller QString name. För andra språk kan du utelämna typen, men det är bra att ange den ändå, eftersom den valda mallen kan dra nytta av det.

På följande sidor kan du välja en licens för den nya klassen, ställa in eventuella egna alternativ som krävs av den valda mallen, och anpassa utdataplatser för alla genererade filer. Genom att klicka på Slutför, avslutas guiden och den nya klassen skapas. De genererade filerna öppnas i editorn, så att du direkt kan börja lägga till kod.

Efter att ha skapat en ny C++ klass, får du alternativet att lägga till klassen i ett projektmål. Välj ett mål från dialogsidan, eller stäng sidan och lägg till filerna manuellt i ett mål.

Om du valde mallen Qt-objekt, markerade några av standardmetoderna, och lade till två medlemsvariabler, ska utmatningen se ut som på följande bild.

Du kan se att datamedlemmar konverteras till Qt-egenskaper, med åtkomstfunktioner och Q_PROPERTY makron. Argument för tilldelningsfunktioner skickas till och med som konstantreferenser där det är lämpligt. Dessutom deklareras en privat klass, och en privat pekare skapas med Q_DECLARE_PRIVATE. Allt det görs av mallen, att välja en annan mall i det första steget kan ändra utdata fullständigt.