Wednesday, March 05, 2008

KAppTemplate

So what I have been up to these past days? I started a GUI interface for KAppTemplate. KAppTemplate was (still is) a bash script (in kdesdk) which generates some templates projects for people who want to start a KDE app but do not want the full KDevelop. Somehow I ended up in porting KAppTemplate to KDE 4 (being bash, it was not too difficult, I hear you mumbling! true, but the templates themselves needed the port). One of my contributions in KDevelop 3 was to maintain some templates and I added some (as I began from scratch, I guess I am grateful for those tools and I want to help newcomers in KDE as much as I can).
KAppTemplate interface will be based on QWizard and the idea will be to share the templates with KDevelop (probably having a KHNS repository for them). So it's like a total rewrite in fact. KDevelop at the moment has only a Qt4 template and KAppTemplate has 2 KDE 4 templates.
I digged into model/view and also wrote 2 unit tests, thanks to David Faure and Kévin Ottens for the inspirational talk they gave at last Akademy. I took me time to assimilate the concept of tests but when I found myself writing several small test cases to check some chunks of my code, I remembered about tests :) Pretty neat! The whole code is in /playground/devtools/
KAppTemplate as it'll maybe look like:


Clarisse was 2 last Sunday but as we were away we could not celebrate properly and it'll be done next Sunday. She starts talking and is very funny, inventing syllables and concatenating words like "Joachim" (our son aged 17, her idol) and "Clarisse" give "Yo'isse" (she cannot say J or R). While as she is always around it's often difficult for me to concentrate when coding, on the other hand I'm lucky to share every step she takes. During the second week holiday I went to the "Cité de l'espace" with Léah and also to the circus. Léah will be 10 in May and is interested by everything, constantly asking questions and always smiling... To a soccer match with Joachim (our team at the moment is meant to go to the 2nd League...)

4 comments:

Diederik van der Boor said...

Whoa. Thumbs up! These kind of things are so much needed in my opinion.

elvis said...

I agree! Great that you took care of this.

NamShub said...

Hey great work.

Does it still use the same "template definition" format as before?

I've been working on adding a few templates (DataEngine & Plasmoid, for now) so I wanted to make sure this work won't be "wasted" or if I should upgrade to a new format

Anyway, this is not in SVN yet, right?

annma said...

Thanks everyone for the support!
@namshub: the way templates are defined has changed a bit but nothing drastic. The goal is to match KDevelop templates so there's no duplicated work (currently KDevelop has only a QT4 template). The placeholders changed (all the _ are gone so APP_NAME_LC for ex is APPNAMELC) and also the files names should have placeholders: the template is now copied directly to the dest dir while the placeholders macros are substituted.

The current work is in /playground/devtools and the template extraction does not work yet but it's a matter of days. There's an attempt of an explanatory file HOWTO_MakeNewTemplate.txt which is a bit of a mess but might be useful.

Feel free to hack in the code if you want to! Your templates if they have the current format will be easy to adapt and they are very welcomed! A Plasmoid one is indeed very much needed!