<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>kdevelop &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/kdevelop/</link>
	<description>Feed of posts on WordPress.com tagged "kdevelop"</description>
	<pubDate>Tue, 08 Dec 2009 02:24:17 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Alcuni spostamenti in KDE]]></title>
<link>http://toastedtech.wordpress.com/2009/11/29/alcuni-spostamenti-in-kde/</link>
<pubDate>Sun, 29 Nov 2009 21:13:31 +0000</pubDate>
<dc:creator>montoya</dc:creator>
<guid>http://toastedtech.wordpress.com/2009/11/29/alcuni-spostamenti-in-kde/</guid>
<description><![CDATA[Se siete dei fan di KDevelop, allora dovete sapere che i sorgenti non sono più in trunk/KDE, ma in t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Se siete dei fan di <a href="http://www.kdevelop.org/">KDevelop</a>, allora dovete sapere che i sorgenti non sono più in trunk/KDE, ma in trunk/extragear/sdk: stessa cosa vale per KDevPlatform e <a href="http://quanta.kdewebdev.org/">Quanta</a>. Con questa mossa, gli sviluppatori non avranno più l&#8217;acqua alla gola riguardo scadenze ufficiali e quant&#8217;altro.</p>
<p><a href="http://toastedtech.wordpress.com/files/2009/11/peso.jpg"><img class="aligncenter size-full wp-image-1953" title="peso" src="http://toastedtech.wordpress.com/files/2009/11/peso.jpg" alt="" width="344" height="281" /></a></p>
<p>Questi annunciano inoltre che, il possibile rilascio di KDevelop 4.0, avverrà probabilmente verso la fine di <a href="http://apaku.wordpress.com/2009/11/29/kdevelop4-moved/">marzo 2010</a>.</p>
<p>Un altro spostamento di minore importanza riguarda il mitico plugin <a href="http://kate-editor.org/katepart">katepart</a> denominato <a href="http://toastedtech.wordpress.com/2009/08/06/incrementare-la-produttivita-di-katekdevelop/">autobrace</a>, che è stato incluso addirittura in kdelibs <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ammetto che questo post interesserà al massimo a 5-6 persone su 6G totali&#8230; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> :D</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop4 moved]]></title>
<link>http://apaku.wordpress.com/2009/11/29/kdevelop4-moved/</link>
<pubDate>Sun, 29 Nov 2009 20:48:05 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/11/29/kdevelop4-moved/</guid>
<description><![CDATA[As we decided that we won&#8217;t make the KDE 4.4 schedule and drop out of it, we thought that we s]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As we decided that we won&#8217;t make the KDE 4.4 schedule and drop out of it, we thought that we should also play by the KDE policy rules and move out of trunk/KDE.</p>
<p>That move has just happened and KDevelop, KDevPlatform and Quanta can now be found under trunk/extragear/sdk/.</p>
<p>Everybody who&#8217;s running svn now needs to adjust his url using </p>
<p>svn switch svn://anonsvn.kde.org/home/kde/trunk/extragear/sdk/kdevelop</p>
<p>And similar for kdevplatform or quanta.</p>
<p>The tentative release date for KDevelop4 has been moved to end of march now.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Don't install Ubuntu 9.10 if you want a stable KDevelop]]></title>
<link>http://apaku.wordpress.com/2009/11/10/dont-install-ubuntu-9-10-if-you-want-a-stable-kdevelop/</link>
<pubDate>Tue, 10 Nov 2009 21:45:45 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/11/10/dont-install-ubuntu-9-10-if-you-want-a-stable-kdevelop/</guid>
<description><![CDATA[First note: This is a bit of a rant, so be prepared It seems that Ubuntu has reached another sad mil]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>First note: This is a bit of a rant, so be prepared <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It seems that Ubuntu has reached another sad milestone on their way to the worst distribution ever.</p>
<p>Someone there thought its a cool idea to ship KDevelop4 Beta5 with a stable Ubuntu release.</p>
<p>What angers me most about this is that this not only hurts Ubuntu &#8211; I couldn&#8217;t care less about that &#8211; it hurts KDevelop and it also hurts me and other people trying to get KDevelop&#8217;s bugs under control. I&#8217;ve closed the 20th or so duplicate right now about a bug thats been in beta5 and has been fixed since weeks. Its a bug that&#8217;ll not be in the final release of KDevelop4, but its a bug I&#8217;ll probably get to see again and again in bugzilla for quite some time.</p>
<p>I never liked Ubuntu, but this really is a new level of broken packaging.</p>
<p>As final word something constructive: If you are running Ubuntu 9.10 either consider <a href="http://www.kdevelop.org/mediawiki/index.php/KDevelop_4/compiling">compiling kdevelop and kdevplatform from sources</a> or report bugs you encounter with the Ubuntu kdevelop package to Ubuntu, not to KDE&#8217;s bugzilla even if thats what the Crash dialog suggests to you.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop4, KDevelop4 그림으로 살짝 보기.]]></title>
<link>http://lum7671.wordpress.com/2009/11/02/kdevelop4-kdevelop4-%ea%b7%b8%eb%a6%bc%ec%9c%bc%eb%a1%9c-%ec%82%b4%ec%a7%9d-%eb%b3%b4%ea%b8%b0/</link>
<pubDate>Mon, 02 Nov 2009 10:31:36 +0000</pubDate>
<dc:creator>lum7671</dc:creator>
<guid>http://lum7671.wordpress.com/2009/11/02/kdevelop4-kdevelop4-%ea%b7%b8%eb%a6%bc%ec%9c%bc%eb%a1%9c-%ec%82%b4%ec%a7%9d-%eb%b3%b4%ea%b8%b0/</guid>
<description><![CDATA[제목을 &#8220;사랑스러운 KDevelop4&#8243; 로 하려다가 너무 감성적이기도 하고 내용이 별로 없는데 많은 기대를 주는 낚시성이 있는 것으로 보여 바꿨다. 그만큼 맘]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>제목을 &#8220;사랑스러운 KDevelop4&#8243; 로 하려다가 너무 감성적이기도 하고<br />
내용이 별로 없는데 많은 기대를 주는 낚시성이 있는 것으로 보여 바꿨다.<br />
그만큼 맘에 들 것 이라는 의미로 받아 줬으면 좋겠다.</p>

<p>&#160;</p>
<ul>
<li> 코드 색상이 맘에 든다. 흡사 맥의 MacVim, Aquamacs 를 보는 듯한&#8230;</li>
<li> CMake 프로젝트를 지원한다. (&#8220;Project&#8221; &#8211; &#8220;Open / Import Project&#8221;), 겔러리 2, 3번째, 기존의 CMakeLists.txt 불러오는 화면</li>
<li> 한글 조합 입력 중 글자가 사라지는 문제가 해결 되었다.</li>
<li> KDevelop3에서 유용하게 자주 사용했던 전체 프로젝트에서 검색(grep)이 잘 된다. 겔러리 4번째</li>
<li> UI가 KDE4에서 개선 되어서 인지 KDevelop3에서 지저분 했던 느낌이 없다.</li>
</ul>
<p>아직 많은 것을 해보진 못 했다.<br />
하지만, 내가 기대했던 중요한 부분은 맘에 들게 개발되어져 있는 것 같다. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>- 끝 -</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to properly report bugs for KDevelop]]></title>
<link>http://apaku.wordpress.com/2009/09/12/how-to-properly-report-bugs-for-kdevelop/</link>
<pubDate>Sat, 12 Sep 2009 06:29:00 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/09/12/how-to-properly-report-bugs-for-kdevelop/</guid>
<description><![CDATA[Actually this probably applies to any FOSS app out there. This morning I saw in my irc backlog (luck]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Actually this probably applies to any FOSS app out there.</p>
<p>This morning I saw in my irc backlog (lucky you that I keep that and usually at least skim it):</p>
<blockquote><p>
[07:41:33] &#8211;&#62; firefly2442_ () has joined #kdevelop<br />
[07:42:29] &#60;firefly2442_&#62; I found a bug in kdevelop 3.5.3, in the project options under run options<br />
[07:42:50] &#60;firefly2442_&#62; I can navigate and specify my main program executable<br />
[07:43:08] &#60;firefly2442_&#62; however, when I try to run it, it doesn&#8217;t work because the folders have spaces in them<br />
[07:43:46] &#60;firefly2442_&#62; the actual command that gets executed and run in the bottom window should be modified to add quotes to allow for folders with spaces<br />
[07:43:53] &#60;firefly2442_&#62; should be a simple fix<br />
[07:44:04] &#60;firefly2442_&#62; cheers <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[07:44:16] &#60;&#8211; firefly2442_ () has quit (Client Quit)
</p></blockquote>
<p>This is a good example of how you should _never_  try to report bugs or problems with KDevelop. Unless of course you just wanted to do a braindump which nobody cares. Its fine to approach us on IRC, but please don&#8217;t just dump things and then leave immediately.</p>
<p><strong>The right way of doing this is by either using our bugreporting wizard at <a href="http://bugs.kde.org">KDE Bugzilla</a> or by at least sending a mail to one of our <a href="http://www.kdevelop.org/index.html?filename=mailinglist.html">mailing lists</a> so we can reply to you.</strong></p>
<p>I know this is a bit more effort than joining into an irc channel and dropping a few lines, but really there are far better chances of your problem being solved doing the few extra steps.</p>
<p>Sadly this means the above irc-report will not go anywhere, I don&#8217;t even have kdevelop3 around anymore, so I cannot test this and file the bug myself. Not to mention that 3.5.3 is rather old (3.5.5 is current) and KDevelop3 is not actively maintained anymore.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop4 Beta5 tarball updated]]></title>
<link>http://apaku.wordpress.com/2009/08/22/kdevelop4-beta5-tarball-updated/</link>
<pubDate>Sat, 22 Aug 2009 22:31:24 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/08/22/kdevelop4-beta5-tarball-updated/</guid>
<description><![CDATA[Unfortunately I suck, hence the originally uploaded kdevelop4 beta5 tarball didn&#8217;t include the]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Unfortunately I suck, hence the originally uploaded kdevelop4 beta5 tarball didn&#8217;t include the version increasement (thats the only missing change, so the help-&#62;about KDevelop will show the wrong version). I&#8217;ve fixed that now and re-uploaded a new tarball for kdevelop, this should show up on the mirrors in a couple of hours.</p>
<p>To make sure that everybody has the right packages, these are the md5sum for the proper packages:<br />
<strike><code><br />
70064ad0e285d29242a90af3f3c2283f  kdevelop-3.9.95.tar.bz2<br />
2ee0d124682bb3cbc3f1068389749e0c  kdevplatform-0.9.95.tar.bz2<br />
</code></strike></p>
<p>So if the md5sum of your kdevelop-tarball doesn&#8217;t match, re-download it in a few hours.</p>
<p><b>Update!!!!</b><br />
It seems like screwing up once wasn&#8217;t enough this time, the kdevplatform package also had a wrong version. I&#8217;ve uploaded a new one, but syncing will again take some time. Here are the latest md5sums:<br />
<code><br />
70064ad0e285d29242a90af3f3c2283f  kdevelop-3.9.95.tar.bz2<br />
e38fd54ea9c16b41222e893c06ca3946  kdevplatform-0.9.95.tar.bz2<br />
</code></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop4 Beta5]]></title>
<link>http://apaku.wordpress.com/2009/08/22/kdevelop4-beta5/</link>
<pubDate>Sat, 22 Aug 2009 13:01:49 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/08/22/kdevelop4-beta5/</guid>
<description><![CDATA[I&#8217;ve just released the fith beta of KDevelop4 into the wild, so go get it We&#8217;ve fixed qu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve just released the fith beta of KDevelop4 into the wild, so go get it <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>We&#8217;ve fixed quite some crashes and also implemented a few new features, among them improvements in the refactorings and a new patchreview toolview (see Views-&#62;Add Toolview). That allows you to easily review patches inline in the Kate editor. This way we combine diff-viewing with the powerful semantic highlighting from the C++ support.</p>
<p>I&#8217;d also like to point out that this is the last beta that will be working with KDE 4.2.x, the next one (still at least 4 weeks away) will need KDE 4.3.0 or 4.3.1 (we&#8217;re not yet 100% sure about the patch-level). The reason is quite simply that for 4.2.x compatibility we need quite some extra code/ugly ifdef&#8217;s and you&#8217;re missing out on some features which are only possible with 4.3.x.</p>
<p>Update: You can find the source packages on the <a href="http://download.kde.org/download.php?url=unstable/kdevelop/3.9.95/src/">KDE mirrors</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Try out the new way to configure launches]]></title>
<link>http://apaku.wordpress.com/2009/08/09/try-out-the-new-way-to-configure-launches/</link>
<pubDate>Sat, 08 Aug 2009 23:35:46 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/08/09/try-out-the-new-way-to-configure-launches/</guid>
<description><![CDATA[I&#8217;ve just finished a rework of the GUI to configure launches. This is mostly based on feedback]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve just finished a rework of the GUI to configure launches. This is mostly based on feedback I gathered via bugreports, irc chats and mailinglists. Apparently a combobox to just add/remove tabs to an existing tabwidget isn&#8217;t working well and suggests to users a completely different thing to configure. Also people expected the selected combobox value (i.e. the launch mode) to be saved across invocations of the dialog.</p>
<p>So this was just confusing people that didn&#8217;t write the gui themselves and lead to me explaining how things work over and over again. With recent svn (and this will be in the next beta too) you&#8217;ll now get a bit different view:<br />
<a href="http://www.apaku.de/blog_shots/kdev4_new_run_dialog.png"><img src="http://www.apaku.de/blog_shots/kdev4_new_run_dialog.png" alt="New Launch Configuration Dialog" /></a></p>
<p>As you can see for each launch mode supported by a launch configuration there&#8217;s a separate subitem under it to configure the specific things for that launch mode. This of course depends on the actual launcher used for the mode (i.e. which debugger is used for the Debug mode). The generic pages for a launch configuration are available from the launch-config item itself. In the example shot above you can see this includes the actual application to execute, configuration of the dependencies and so on. These settings are used by all the launch modes.</p>
<p>Feedback would be appreciated, preferably via our mailinglist or bugs.kde.org, but if you&#8217;re too lazy just add a comment <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Create scriptbindings for your app using Qt]]></title>
<link>http://friesoft.wordpress.com/2009/07/24/create-scriptbindings-for-your-app-using-qt/</link>
<pubDate>Fri, 24 Jul 2009 10:55:31 +0000</pubDate>
<dc:creator>friesoft</dc:creator>
<guid>http://friesoft.wordpress.com/2009/07/24/create-scriptbindings-for-your-app-using-qt/</guid>
<description><![CDATA[Hey! Maybe you&#8217;ve been struggling in the past to get scripting into your application? Hard tas]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hey!</p>
<p>Maybe you&#8217;ve been struggling in the past to get scripting into your application? Hard task isn&#8217;t it? </p>
<p>NO.. you get pretty good scripting capabilities using the <a href="http://code.google.com/p/qtscriptgenerator/">qtscriptgenerator</a></p>
<p>They expose nearly 100% of the Qt api.. I hear you crying: &#8220;BUT THAT&#8217;S A SECURITY THREAT!&#8221; .. and I fully agree.. so it&#8217;s still up to you, to decide what you wanna do&#8230; maybe only allowing to use part of the qt modules,  maybe just exporting some classes/functions.. it&#8217;s up to you to decide, which scripting capabilities you want to offer your developers and how you want to prevent scriptkiddies from taking over your machine <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>This whole stuff is still really new to me so forgive me if I told ya complete bull**** ^^</p>
<p>I&#8217;m also looking forward to the kdevelop bindingsgenerator getting ripped out and ported to be useful for normal bindings.. reason for this is that as far as I&#8217;ve heard recently the qtscriptgenerator is pretty out of date technologywise and the kdevelop bindingsgenerator is much better from the technical pov..</p>
<p>Hope we&#8217;ll be looking into a bright scripting future.. the possibilities are just too cute to resist <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>*me goes back to ripping apart amaroks scripting/khotnewstuff capabilities <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> *<br />
*me likes the approach they&#8217;ve taken <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> *</p>
<p>Cya</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La prima applicazione con KDevelop e Qt 4]]></title>
<link>http://morg4n.wordpress.com/2009/07/05/la-prima-applicazione-con-kdevelop-e-qt-4/</link>
<pubDate>Sun, 05 Jul 2009 14:19:50 +0000</pubDate>
<dc:creator>morg4n</dc:creator>
<guid>http://morg4n.wordpress.com/2009/07/05/la-prima-applicazione-con-kdevelop-e-qt-4/</guid>
<description><![CDATA[Questa guida non ha la pretesa di insegnare a programmare in C++ (per questo ci sono tonnellate di m]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><img class="aligncenter size-full wp-image-590" title="splash" src="http://morg4n.wordpress.com/files/2009/07/splash.png" alt="splash" width="400" height="300" /></p>
<p style="text-align:justify;">Questa guida non ha la pretesa di insegnare a programmare in C++ (per questo ci sono tonnellate di manuali ed esempi disponibili) ma di introdurre rapidamente l&#8217;utente, che si avvicina per la prima volta alla programmazione nel mondo GNU/Linux, alla programmazione delle interfacce grafiche con le fantastiche librerie Qt4.<br />
Un consiglio, abusate pure come volete della guida in linea delle Qt4 che è fatta veramente bene e diventa indispensabile se si decide di sviluppare applicazioni più complesse.</p>
<p style="text-align:center;"><strong>Allacciate le cinture&#8230; si comincia!</strong></p>
<p><!--more--></p>
<h2 style="text-align:justify;"><strong><strong>Creazione del progetto Qt 4<br />
</strong></strong></h2>
<ul style="text-align:justify;padding-left:30px;">
<li> Avviare KDevelop</li>
<li>Selezionare dal menù <strong>Progetto</strong> la voce <strong>Nuovo progetto</strong></li>
<li>Selezionare dal ramo <strong>C++</strong> la voce <strong>QMake project</strong> quindi, da quest&#8217;ultimo, scegliere <strong>Applicazione Qt4</strong></li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-572" title="immagine_001" src="http://morg4n.wordpress.com/files/2009/07/immagine_001.png?w=300" alt="immagine_001" width="300" height="280" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>Nel campo <strong>Nome applicazione</strong> specificare un nome per il progetto (ad es. CiaoMondo_Qt4)</li>
<li>Nel campo <strong>Posizione</strong> specificare il percorso all&#8217;interno del quale salvare il progetto (io ho creato la cartella Progetti all&#8217;interno della mia home directory), quindi cliccare su <strong>Avanti</strong>.</li>
<li>Specificare il nome dell&#8217;autore del progetto, il vostro indirizzo e-mail, la versione del programma ed il tipo di licenza con cui intendete rilasciare il programma. Per adesso potete semplicemente accettare i valori proposti ed andare avanti ma, se intendete distribuire il vostro programma sarà bene inserire le informazioni con cura, queste infatti vi permetteranno di rivendicare sempre la paternità sul vostro magnifico software. Cliccare su <strong>Avanti</strong>.</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-573" title="immagine_002" src="http://morg4n.wordpress.com/files/2009/07/immagine_002.png?w=300" alt="immagine_002" width="300" height="280" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li> Selezionare il sistema di controllo della versione. Anche qui per ora possiamo sorvolare e cliccare con decisione sul pulsante <strong>Avanti</strong> ma, se un giorno decideste di scrivere un&#8217;applicazione più complessa, un sistema per il controllo della versione potrebbe aiutarvi molto. Cliccare su <strong>Avanti</strong> con noncuranza <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-574" title="immagine_003" src="http://morg4n.wordpress.com/files/2009/07/immagine_003.png?w=300" alt="immagine_003" width="300" height="280" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>In questa schermata è possibile modificare il template contenete le informazioni sull&#8217;autore del software e sul tipo di licenza con cui quest&#8217;ultimo viene distribuito (il software, non l&#8217;autore <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ). Da notare che quanto scritto in questa pagina verrà inserito all&#8217;inizio di ogni file header (.h) del vostro progetto. Cliccare su <strong>Avanti</strong>.</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-575" title="immagine_004" src="http://morg4n.wordpress.com/files/2009/07/immagine_004.png?w=300" alt="immagine_004" width="300" height="280" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>In questa schermata è possibile modificare il template contenete le informazioni sull&#8217;autore del software e sul tipo di licenza con cui quest&#8217;ultimo viene distribuito. Da notare che quanto scritto in questa pagina verrà inserito all&#8217;inizio di ogni file sorgente (.cpp) del vostro progetto. Cliccare su <strong>Fine</strong>.</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-576" title="immagine_005" src="http://morg4n.wordpress.com/files/2009/07/immagine_005.png?w=300" alt="immagine_005" width="300" height="280" /></p>
<p style="text-align:justify;padding-left:30px;">A questo punto KDevelop ha già creato un&#8217;applicazione Qt4 funzionante:</p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-577" title="immagine_006" src="http://morg4n.wordpress.com/files/2009/07/immagine_006.png?w=300" alt="immagine_006" width="300" height="225" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>Siccome lo so che siete curiosi come delle scimmie e non vedete l&#8217;ora di far girare il vostro programma, selezionare dal menù <strong>Compila</strong> la voce <strong>Compila progetto</strong> (oppure premere <strong>F8</strong>) e rispondere affermativamente alla richiesta di eseguire qmake. In questo modo verranno creati tutti i file intermedi (come Makefile, file moc e uic) necessari per compilare il software.</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-578" title="immagine_007" src="http://morg4n.wordpress.com/files/2009/07/immagine_007.png?w=300" alt="immagine_007" width="300" height="97" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>Nella finestra <strong>Messaggi</strong> è possibile leggere quello che accade in fase di compilazione. Se tutto va come deve andare, alla fine apparirà la scritta:</li>
</ul>
<pre style="padding-left:30px;">*** successo ***</pre>
<p>Se dovessero esserci problemi (errori di sintassi, librerie mancanti, ecc.) questa finestra sarà una delle nostre migliori alleate.</p>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-579" title="immagine_008" src="http://morg4n.wordpress.com/files/2009/07/immagine_008.png?w=300" alt="immagine_008" width="300" height="225" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>Ci siamo, dal menù <strong>Compila</strong> selezionare la voce <strong>Esegui programma principale</strong> (oppure premere <strong>Shift+F9</strong>)</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-580" title="immagine_009" src="http://morg4n.wordpress.com/files/2009/07/immagine_009.png?w=283" alt="immagine_009" width="283" height="300" /></p>
<h2 style="text-align:justify;"><strong>Creazione dell&#8217;interfaccia grafica</strong></h2>
<p style="text-align:justify;">Prima di procedere è necessario capire come si usano le interfacce grafiche in Qt4:</p>
<p style="text-align:justify;">Si crea il file di interfaccia grafica con il Qt Designer (come abbiamo appena fatto). Quindi si compila il file .ui ottenuto in modo che venga tradotto in un file sorgente (.h). Quest&#8217;ultimo conterrà una classe i cui metodi si occuperanno di creare tutti i controlli (pulsanti, label, ecc.) e di impostarne le proprietà. Si crea infine una nuova classe che, attraverso l&#8217;ereditarietà multipla erediterà da quella risultante dalla compilazione del file .ui (in modo che contenga tutti i controlli definiti) e, ad esempio, da QDialog (in modo che si comporti come una finestra di dialogo e ne abbia le stesse proprietà e funzioni).</p>
<p style="text-align:justify;">Confusi? Proviamo a farlo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<ul style="text-align:justify;padding-left:30px;">
<li>Dal menù <strong>File</strong> selezionare la voce <strong>Nuovo.</strong></li>
<li>Specificare il nome per il file di interfaccia grafica (ad es. MioDialogoBase).</li>
<li>Selezionare <strong>Qt4 Dialog (.ui)</strong> come tipo di file.</li>
<li>Selezionare la casella <strong>Aggiungi al progetto</strong>, quindi cliccare su <strong>OK</strong>.</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-581" title="immagine_010" src="http://morg4n.wordpress.com/files/2009/07/immagine_010.png?w=300" alt="immagine_010" width="300" height="136" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>Il file appena creato verrà aperto in automatico con l&#8217;editor di interfaccia <strong>Qt Designer</strong>, trascinare due controlli di tipo <strong>Push Button</strong> ed un controllo di tipo <strong>Label</strong> sulla finestra di dialogo che stiamo creando. Spostare e ridimensionare i controlli e la finestra di dialogo per ottenere un risultato simile a quello dell&#8217;immagine seguente:</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-582" title="immagine_011" src="http://morg4n.wordpress.com/files/2009/07/immagine_011.png?w=300" alt="immagine_011" width="300" height="225" /></p>
<ul style="text-align:justify;padding-left:30px;">
<li>E&#8217; buona norma dare dei nomi significati ai controlli, quindi modificare il valore della proprietà <strong>objectName</strong> nel <strong>Property Editor</strong> per ciascuno di essi in questo modo:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;">Oggetto         objectName
---------------------------------
Dialog          DlgMioDialogoBase
Label           lblCiaoMondo
pushButton      btnCiaoMondo
pushButton_2    btnChiudi</pre>
<p style="text-align:justify;padding-left:30px;">Da notare che il nome dell&#8217;oggetto Dialog (ad es. DlgMioDialogoBase) sarà anche il nome di una delle classi base per la classe dell&#8217;interfaccia grafica.</p>
<ul style="padding-left:30px;">
<li>Impostare anche le seguenti proprietà dei controlli:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;">Oggetto             Proprietà                 Valore
------------------------------------------------------------------------
DlgMioDialogoBase   windowTitle               Programma di prova
lblCiaoMondo        alignment.Horizontal      AlignHCenter
lblCiaoMondo        alignment.Vertical        AlignVCenter
lblCiaoMondo        font.Family               Sans Serif
lblCiaoMondo        font.PointSize            36
lblCiaoMondo        text                      Non impostare nessun testo
btnCiaoMondo        text                      Saluta
btnChiudi           text                      Chiudi</pre>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-583" title="immagine_012" src="http://morg4n.wordpress.com/files/2009/07/immagine_012.png?w=300" alt="immagine_012" width="300" height="225" /></p>
<ul style="padding-left:30px;">
<li>Selezionare dal menù <strong>File</strong> la voce <strong>Save</strong> per salvare il layout dell&#8217;interfaccia grafica e chiudere il <strong>Qt Designer</strong></li>
<li>Selezionare dal menù <strong>Compila</strong> la voce <strong>Compila progetto</strong> (oppure premere <strong>F8</strong>) per ricompilare il programma e far si che vengano generati i file sorgente relativi all&#8217;interfaccia grafica. Come prima è possibile vedere nella finestra <strong>Messaggi</strong> il risultato della compilazione ed il nome dei file generati (ad es. ui_MioDialogo.h).</li>
</ul>
<p style="text-align:justify;padding-left:30px;">A questo punto è stato ottenuto il file che fungerà da classe base per la classe dell&#8217;interfaccia vera e propria. Adesso è necessario creare quet&#8217;ultima:</p>
<ul style="padding-left:30px;">
<li>Dal menù <strong>Progetto</strong> selezionare la voce <strong>Nuova classe</strong>.</li>
<li>Nel campo <strong>Nome</strong> specificare il nome per la classe (ad es. MioDialogo)</li>
<li>Nel riquadro <strong>Ereditarietà</strong> cliccare sul pulsante <strong>Aggiungi</strong> e specificare come classe base <strong>QDialog</strong> e specificando come file di itestazione <strong>QDialog</strong> (si senza il .h finale!)</li>
<li>Ripetere l&#8217;operazione e specificare come classe base il nome della finestra di dialogo definita nel <strong>Qt Designer</strong> (ad es. DlgMioDialogoBase) in quanto questo è anche il nome della classe base risultato della compilazione del file .ui ed il file sorgente dove tale classe è contenuta (ad es. ui_MioDialogoBase.h)</li>
<li>Per ora non preoccupiamoci di tutti gli altri settaggi che è possibile fare, limitiamoci a notare i nomi dei file di intestazione (ad es. miodialogo.h) e di implementazione (ad es. miodialogo.cpp) che verranno creati per la nuova classe. Cliccare su <strong>OK</strong> per creare la nuova classe.</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-584" title="immagine_013" src="http://morg4n.wordpress.com/files/2009/07/immagine_013.png?w=293" alt="immagine_013" width="293" height="300" /></p>
<ul style="padding-left:30px;">
<li>Cliccare sul pulsante <strong>Classi</strong> per vedere l&#8217;albero delle classi contenute nel progetto.</li>
<li>Cliccare sul nome della classe (ad es. MioDialogo) per aprire il file di intestazione (.h)</li>
<li>Espandere il ramo della classe e cliccare sul nome di un metodo (ad es. sul costruttore MioDialogo) per aprire il file di implementazione (.cpp)</li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-585" title="immagine_014a" src="http://morg4n.wordpress.com/files/2009/07/immagine_014a.png?w=300" alt="immagine_014a" width="300" height="225" /></p>
<p style="text-align:justify;padding-left:30px;">Com&#8217;è possibile notare la classe eredita da <strong>QDialog</strong> e <strong>DlgMioDialogoBase</strong> e, pertanto, sono state aggiunte le direttive include necessarie. Notare anche che all&#8217;inizio di ogni file è stata aggiunta la nota di copyright in base al template ed alle informazioni inserite in fase di creazione del progetto.</p>
<ul style="padding-left:30px;">
<li>Fare clic con il pulsante destro sul nome della classe (ad es. MioDialogo) e selezionare la voce <strong>Aggiungi metodo</strong>.</li>
<li>Nel campo <strong>Tipo da restituire</strong> specificare <strong>void</strong>.</li>
<li>Nel campo <strong>Dichiaratore</strong> specificare il nome della fuzione (ad es. btnCiaoMondo_clicked())</li>
<li>Nel campo <strong>Accesso</strong> selezionare <strong>Public Slots</strong></li>
<li>Nel campo <strong>Memoria</strong> selezionare <strong>Virtual</strong>, fare clic su <strong>OK</strong></li>
<li>Nel campo <strong>File</strong> implementazione verificare che il nome del file sia corretto (ad es. /home/crash/Progetti/CiaoMondo_Qt4/src/miodialogo.cpp) a me mancava il punto prima di cpp: dev&#8217;essere un bug di KDevelop <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
</ul>
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-586" title="immagine_015a" src="http://morg4n.wordpress.com/files/2009/07/immagine_015a.png?w=300" alt="immagine_015a" width="300" height="289" /></p>
<ul style="padding-left:30px;">
<li>Ripetere gli ultimi cinque passi specificando btnChiudi_clicked() come nome della funzione.</li>
</ul>
<p style="text-align:justify;padding-left:30px;">Alla fine controllando il file di intestazione (.h) si avrà:</p>
<pre style="text-align:justify;padding-left:60px;">class MioDialogo : public QDialog, public DlgMioDialogoBase
{
   public:
      MioDialogo();
      ~MioDialogo();
   public slots:
      virtual void btnCiaoMondo_clicked();
      virtual void btnChiudi_clicked();
};</pre>
<ul style="padding-left:30px;">
<li>Aggiungere la macro <strong>Q_OBJECT</strong> e la definizione del <strong>namespace</strong> all&#8217;inizio della definizione della classe:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;"><strong>using namespace Ui;</strong>

class MioDialogo : public QDialog, public DlgMioDialogoBase
{
   <strong>Q_OBJECT</strong>
   public:
      MioDialogo();
      ~MioDialogo();
   public slots:
      virtual void btnCiaoMondo_clicked();
      virtual void btnChiudi_clicked();
};</pre>
<p style="text-align:justify;padding-left:30px;">senza di essa infatti gli slot non verrebbero riconosciuti in fase di esecuzione e non accadrebbe nulla quando si premono i pulsanti.</p>
<ul style="padding-left:30px;">
<li>Aprire il file di implementazione della classe creata (ad es. miodialogo.cpp) e modificarne il costruttore aggiungendo le seguenti istruzioni:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;">setupUi( this );
connect(btnCiaoMondo, SIGNAL( clicked() ), this, SLOT( btnCiaoMondo_clicked() ) );
connect(btnChiudi, SIGNAL( clicked() ), this, SLOT( btnChiudi_clicked() ) );</pre>
<p style="text-align:justify;padding-left:30px;">la prima istruzione è contenuta nella classe base DlgMioDialogoBase e serve per far si che vengano creati tutti i controlli, mentre le altre permettono di richiamare rispettivamente la funzione btnCiaoMondo_clicked quando viene premuto il pulsante btnCiaoMondo e la fuzione btnChiudi_clicked quando viene premuto il pulsante btnChiudi.</p>
<ul style="padding-left:30px;">
<li>Modificare il corpo delle due funzioni in questione:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;">/*!
   \fn MioDialogo::btnCiaoMondo_clicked()
*/
void MioDialogo::btnCiaoMondo_clicked()
{
   <strong>lblCiaoMondo-&#62;setText("Ciao mondo!");</strong>
}

/*!
   \fn MioDialogo::btnChiudi_clicked()
*/
void MioDialogo::btnChiudi_clicked()
{
   <strong>accept();</strong>
}</pre>
<p style="text-align:justify;padding-left:30px;">la funzione btnCiaoMondo_clicked, così modificata, imposta il testo della Label lblCiaoMondo uguale a &#8220;Ciao mondo!&#8221;, mentre la funzione btnChiudi_clicked causa la chiusura della finestra e la fine del programma.</p>
<p style="text-align:justify;padding-left:30px;">Non resta che modificare il file main.cpp.</p>
<ul style="padding-left:30px;">
<li>Aprire il file main.cpp cliccando su main nell&#8217;albero delle classi</li>
<li>Commentare o eliminare le righe:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;">#include "ciaomondo_qt4.h"
...
CiaoMondo_Qt4 * mw = new CiaoMondo_Qt4();
mw-&#62;show();</pre>
<p style="text-align:justify;padding-left:30px;">che servono per visualizzare la finestra di default creata dal wizard.</p>
<ul style="padding-left:30px;">
<li>Aggiungere la direttiva include per la classe dell&#8217;interfaccia che abbiamo creato, la dichiarazione dell&#8217;oggetto finestra di dialogo e la sua esecuzione:</li>
</ul>
<pre style="text-align:justify;padding-left:60px;">#include "miodialogo.h"
...
MioDialogo dlg;
dlg.exec();</pre>
<ul style="padding-left:30px;">
<li>Selezionare dal menù <strong>File</strong> la voce <strong>Salva</strong></li>
<li>Selezionare dal menù <strong>Compila</strong> la voce <strong>Progetto dist-clean</strong></li>
<li>Selezionare dal menù <strong>Compila</strong> la voce <strong>Compila progetto</strong> (oppure premere <strong>F8</strong>)</li>
<li>Dal menù <strong>Compila</strong>, selezionare la voce <strong>Esegui programma principale</strong> (oppure premere <strong>Shift+F9</strong>), cliccare sul pulsante <strong>Saluta</strong> e su <strong>Chiudi</strong> per ammirare la propria creatura funzionare!</li>
</ul>
<p style="text-align:justify;"><img class="aligncenter size-medium wp-image-587" title="immagine_016" src="http://morg4n.wordpress.com/files/2009/07/immagine_016.png?w=300" alt="immagine_016" width="300" height="119" /></p>
<p style="text-align:justify;">Se qualcosa dovesse andare storto, controllare bene la sintassi dei comandi, accertarsi che non manchino parentesi, punti e virgola, controllare di aver incluso tutti i file necessari, verificare di aver rispettato maiuscole e minuscole, ecc. ecc.</p>
<p style="text-align:justify;">Il file del progetto completo si trova nel <a title="Il Forziere di Morg4n" href="../il-forziere-di-morg4n/">Forziere di Morg4n</a></p>
<p style="text-align:center;"><strong>Buona programmazione a tutti!!! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop4 Beta4 (on Windows)]]></title>
<link>http://apaku.wordpress.com/2009/06/28/kdevelop4-beta4-on-windows/</link>
<pubDate>Sun, 28 Jun 2009 18:05:32 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/06/28/kdevelop4-beta4-on-windows/</guid>
<description><![CDATA[We&#8217;ve just released the 4th Beta of KDevelop4 and its coming along quite nicely. This one even]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>We&#8217;ve just released the 4th Beta of KDevelop4 and its coming along quite nicely.</p>
<p>This one even compiles on Windows (using MSVC9 aka MS VS 2008) and also is able to load projects. I haven&#8217;t been able to try out more things, like file-parsing or code-completion. One thing that won&#8217;t work for example for sure is building any cmake project as we don&#8217;t yet have any support for nmake.</p>
<p>So the Windows port is not ready for public consumption (as opposed to Beta4 on linux) but it does make progress again.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Setting up Environment for running KDevelop4]]></title>
<link>http://apaku.wordpress.com/2009/06/24/setting-up-environment-for-running-kdevelop4/</link>
<pubDate>Wed, 24 Jun 2009 19:35:15 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/06/24/setting-up-environment-for-running-kdevelop4/</guid>
<description><![CDATA[These are short and (hopefully) precise instructions what you need to do when you&#8217;ve built KDe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>These are short and (hopefully) precise instructions what you need to do when you&#8217;ve built KDevelop4 from source and installed it somewhere other than your KDE libraries are (those are often from packages and then installed in /usr or /opt/kde).</p>
<p>I&#8217;m assuming here that you have the KDE libraries installed in /usr (i.e. from some packages) and that you&#8217;ve installed KDevelop4 into $HOME/kdevelop4 (by passing -DCMAKE_INSTALL_PREFIX=$HOME/kdevelop4 to cmake). If your paths are different just substitute them. Also I&#8217;m assuming you&#8217;re running KDevelop4 from a terminal and not via the run dialog or via a menu entry, if you want that to work you need to find out how to set environment for the whole X11 session &#8211; thats usually distro-specific.</p>
<p>So, first thing to do is setup the KDEDIRS magic environment variable. It tells KDE core components where to search for plugins and other data related to KDE apps and contains just a list of paths (aka prefixes) where KDE libraries and/or applications have been installed. </p>
<p>In my example I set KDEDIRS to point to /usr and $HOME/kdevelop4 as those are the two places where I have KDE4 apps:<br />
<code><br />
export KDEDIRS=$HOME/kdevelop4:/usr<br />
</code></p>
<p>Next thing is to run a KDE tool called &#8220;kbuildsycoca4&#8243;, this reads various config files that describe which plugins are available and builds a cache from that information. This is necessary so KDevelop can find all its plugins.</p>
<p>And last but not least you can simply run KDevelop by typing &#8220;kdevelop&#8221; and hitting Enter.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop 4 progresse]]></title>
<link>http://manudwarf.wordpress.com/2009/06/22/kdevelop-4-progresse/</link>
<pubDate>Mon, 22 Jun 2009 11:26:13 +0000</pubDate>
<dc:creator>manudwarf</dc:creator>
<guid>http://manudwarf.wordpress.com/2009/06/22/kdevelop-4-progresse/</guid>
<description><![CDATA[- traduction de &#8220;Beta3 and Beta4&#8221; - Ceux qui lisent le dot le savent déjà, mais pour les]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><em>- traduction de &#8220;<a href="http://apaku.wordpress.com/2009/06/02/beta3-and-beta4/">Beta3 and Beta4</a>&#8221; -</em></p>
<p>Ceux qui lisent le dot le savent déjà, mais pour les autres (c&#8217;est à dire vous) : la troisième beta de KDevelop4 est disponible. Nous avons fixé des tonnes de bugs, ajouté une nouvelle plateforme de lancement, des fonctionnalités C++ ainsi qu&#8217;une toute nouvelle manière de passer de la perspective de codage à celle de déboguage et vice-versa (seulement pour KDE 4.3).</p>
<p>Cependant depuis le tagging le dernier week-end, David est devenu d&#8217;une certaine façon fou en corrigeant toute sorte de crash et blocages (selon moi) mystérieux, ainsi que quelques améliorations de rapidité.  Par ailleurs Thomax McGuire &#8211; un fan de KDevelop et PIMster &#8211; c&#8217;est assis, fouillé dans notre IHM complexe pour corriger l&#8217;un des bugs les plus gênants jamais rencontrés dans ce nouveau code : https://bugs.kde.org/show_bug.cgi?id=170863 (celui qui maximisait la fenêtre principale à l&#8217;ouverture de la barre de recherche de Kate).</p>
<p>Donc nous sortirons prochainement une nouvelle beta (esperons-le avec d&#8217;autres corrections/améliorations pour Valgrind, le débogueur, la plate-forme de lancement et une nouvelle barre de progression). Je n&#8217;ai aucune date pour l&#8217;instant puisque cela dépend d&#8217;un certain truc administratif qu&#8217;il faut régler en premier, mais vous serez prévenus quand ça arrivera <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[KDevelop4 UI: Areas, Working Sets, etc.]]></title>
<link>http://zwabel.wordpress.com/2009/06/21/kdevelop4-ui-areas-working-sets-etc/</link>
<pubDate>Sun, 21 Jun 2009 21:58:55 +0000</pubDate>
<dc:creator>zwabel</dc:creator>
<guid>http://zwabel.wordpress.com/2009/06/21/kdevelop4-ui-areas-working-sets-etc/</guid>
<description><![CDATA[General Progress A lot is happening in KDevelop4 these days. Now it&#8217;s nearly already 2 Months ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>General Progress</strong><br />
A lot is happening in KDevelop4 these days. Now it&#8217;s nearly already 2 Months ago that we had our developer meeting in Ukraine. We had a lot of fun, although for me the trip started two days late. I didn&#8217;t get my passport in time, damn. But once there, I got quite productive. Since I have limited time these days, that hack sprint motivated me to touch the one big outstanding architectural issue yet existent in the duchain. I knew it was a painful mammooth task, that&#8217;s why I kept my fingers off it for a long time.</p>
<p>I have implemented a special reference-counting mechanism for the duchain that uses the standard convenient C++ way of achieving the thing: In the constructor of an object, increase a counter, and in the destructor of an object, decrease it again. Now finally _everything_ in the duchain is reference-counted, even extreme light-weight objects like &#8220;IndexedString&#8221;, which is nothing more than a wrapper around an integer representing a string.</p>
<p>That object is used everywhere, and since the reference-counts are disk-persistent, increasing them is not as cheap as usually. So here&#8217;s the clue: It is only done when the memory-area the constructed/destructed object is in is actually marked as a &#8220;disk persistent&#8221; area, that will be stored to disk later, or is already on-disk. That means that it has near-zero runtime overhead for most of the object usages. During shutdown the objects are all sweeped, and the ones without a persistent reference-count are cleared away. The most complicated task was getting all the already existing duchain storage schemes work nicely together with such reference-counted containted objects.</p>
<p>I got it ready about 1 week after I was home again. Two weeks later it actually was stable. Anyway, it was worth it. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Apart from this architectural thing, the focus is mainly on polishing now. Tons and tons of bugs and crashes were fixed.</p>
<p>Apart from bug-fixing, I&#8217;m trying to use my limited time to move KDevelop4 forward in some of the other areas that need it most. After all, a good C++ support alone is not enough of a selling point for an IDE, and I have some ideas about how KDevelop 4.0 should look. Also, I sometimes feel the intense need to do something &#8220;creative&#8221;.</p>
<p><strong>Areas</strong><br />
Now KDevelop4 has a feature called &#8220;Areas&#8221;. From what I know it&#8217;s comparable to the Eclipse &#8220;Perspectives&#8221; feature with some slight differences.</p>
<p>Each area contains a distinct set of tool-views, and toolbars, tailored for a specific task (Currently we have &#8220;Test&#8221;, &#8220;Debug&#8221;, and &#8220;Code&#8221;). In difference to Eclipe Perspectives, areas may also contain different sets of files. We actually thought about renaming them to &#8220;Perspective&#8221; for consistency, but then again &#8220;Perspective&#8221; implies looking at the same thing just from a different direction, while an &#8220;Area&#8221; is actually a different working-space, like a different table, where you use different tools to work on different items. So we&#8217;ll probably stick with this terminology for now.</p>
<p>Before the hack sprint, there was a little dropdown list in the toolbar to switch areas. But in our opinion this was not very usable, given that we want areas to be a central part of our UI concept. You could never see what other areas there was, and you always needed one click too much to switch them. So we discussed different mechanisms for area-switching. My initial idea was quite simple: Use tabs. It&#8217;s the concept that fits best. Just some additional non-removable tabs somewhere at the top, and areas would be totally intuitive and logical to use. The others were a bit more in favor of using separate toolbuttons, and after I wasted a few hours trying to hack something together with tabs, I gave it up. Alexander Dymo then created area-switcher toolbuttons, probably similar to the way Eclipse does perspective switching.</p>
<p>However a few weeks after being home again, I started feeling that these toolbuttons don&#8217;t work. How is it intuitive that you click a toolbutton, and suddenly you have completely different files open? And how could we automatically switch the area when we start debugging, without making the user crazy? Also, toolbars are generally &#8220;optional&#8221;. And if we want to make Areas a central concept, we cannot make the area-switching optional. We shouldn&#8217;t give the user a chance to break his UI. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So I started again doing mockups about how the UI could look, here&#8217;s the evolution:<br />
<a href="http://zwabel.wordpress.com/files/2009/05/mockup.png">http://zwabel.wordpress.com/files/2009/05/mockup.png</a><br />
<a href="http://zwabel.wordpress.com/files/2009/05/mockup.png">http://zwabel.wordpress.com/files/2009/05/mockup.png</a><br />
<a href="http://zwabel.wordpress.com/files/2009/05/mockup3.png">http://zwabel.wordpress.com/files/2009/05/mockup3.png</a><br />
Niko:<br />
<a href="http://www.vivid-planet.com/upload/vertical-tabs2.png">http://www.vivid-planet.com/upload/vertical-tabs2.png</a><br />
Me again:<br />
<a href="http://zwabel.wordpress.com/files/2009/05/vertical-tabs3.png">http://zwabel.wordpress.com/files/2009/05/vertical-tabs3.png</a><br />
And the final version:<br />
<img src="http://zwabel.wordpress.com/files/2009/05/mockup41.png" alt="Mockup" /><br />
Just by the way you may be wondering why there suddenly is so few wasted space: On the hack sprint, Alexander Dymo removed both status-bars, moved the editor-information(line+column) into the file-tab line, and moved status indication in the bottom toolbar into the bottom dock switcher, so both status bars are gone.</p>
<p>If you&#8217;re wondering about the additional highlighting of the current area tab: We were a bit worried that tabs in the top-right would be somewhat out of user focus, the user might not notice when the area automatically changes, and that it might also be a bit confusing having multiple levels of tabs in the same user-interface. The highlighting moves the thing more into the user focus so changes are directly recognized, increases general awareness, and makes it generally look like a different widget then the document tabs, which reduces confusion.</p>
<p>Now after all the mocking, which I actually just did to start some discussion and gather some ideas+opinions, I suddenly found the hidden QMenuBar::setCornerWidget function, which actually allows implementing the last mockup in a relatively clean way. I sat down for an evening, and ended up with exactly what you see on the last mockup. It needed some additional hacking to get the added highlighting, to have the icons on the left side while having a general right-to-left layout, and to make the tab separator line fade out to the left, but it works, and it is solid. And at least my personal experience shows, that this is very usable and very intuitive, while not wasting a single pixel.</p>
<p>So far so good.</p>
<p><strong>Working Sets</strong><br />
A few years ago, shortly after I joined the KDevelop project, there was a lengthy discussion about tabs in general, and whether/how they could be made useful. The problem: From a specific count of documents upwards, tabs are completely useless to get an overview. And due to the easy navigation in KDevelop, it easily happened (and still happens) that suddenly 20 documents were open, making tabs completely useless. At the beginning of KDevelop4, some developers were tired of the uselessness of tabs, and completely removed them in favor of a dropdown list. However me and some others couldn&#8217;t live with that. The problem: You replace something that <strong>sometimes becomes useless</strong> with something that is <strong>always useless</strong>. There has always also been a document list toolview, that shows all currently open documents. Those who don&#8217;t want tabs probably use that. However, as I know from using kate, even a document-list becomes nearly useless from a specific count of documents on.</p>
<p>So at that time, I had the idea that instead of trying to create an utopic widget that allows easily managing an infinite amount of open documents, just allowing the user better ways of managing the set of documents he is currently working on, so he can easily keep the count of open documents in a tab-manageable area. My idea of achieving this at that point was using working sets. A working set is a specific set of files, the files you really work on. For me, when the open document-count grows into an unmanageable area, that usually comes from either working on multiple problems at the same time, or from a lot of browsing through different documents. The core development activity is usually only focused on a relatively small set of documents. A working set allows grouping small lists of documents together, archiving and restoring them, easily merging, splitting, duplicating, and easy moving of files from one working-set into the other. Such a mechanism would allow keeping the count of files manageable: As soon as you start working on another task, just close the whole current working set, and start your new task with a clean list of documents. As soon as you want back one of the old files or the old working-set, just restore it. Paired with a good user-interface, this might well create a new and more efficient paradigm of working.</p>
<p>My idea was that each working-set would be represented by a unique icon somewhere in a permanently visible part of the UI, so you can easily access them.</p>
<p>However since I was very busy with C++ support, I never came back to this idea. But now suddenly, that I was doing that area-switching stuff, it came back into my mind:<br />
- Areas have different sets of documents, so if they should be really easily usable, it should also be easy to transfer files from one area into the other.<br />
- Due to the area-tabbar I have added, there suddenly is a perfect place where those working-sets could live: At the left side of it.<br />
- KDevelop4 also supports multiple main-windows. How to synchronize or move documents between them? Working-sets would make it a breeze.</p>
<p>Combined with the advantages above, this just created too much temptation for me not to try it. So within the last weeks I piece by piece created full working-set support in KDevelop4.</p>
<p>The hardest part was adapting the background management part of KDevelop4&#8217;s UI framework, and until a few days ago it suffered from frequent crashes. But now it seems to finally be stable, so I can announce it for you to try out.</p>
<p>How the UI looks now:<br />
<img src="http://zwabel.wordpress.com/files/2009/06/kdev4_ui_working_sets.png" alt="kdev4_ui_working_sets" title="kdev4_ui_working_sets" width="980" height="654" class="alignnone size-full wp-image-163" /><br />
At the left side of the area-switcher, you see the icons for all existing working-sets. Currently that is only two. The icons are taken from several other KDE Applications. In long term, we need a unique set of icons that are totally association-free in the software world for usage in the working-sets. But for now, the most important thing is that each set has a different icon. The area-switcher itself shows the currently active working-set within the switcher, so you see which working set is active in which area. Also there&#8217;s an additional working set icon left to the document tabs, to make clear that they belong to each other, and make it yet a bit clearer and easier to use.</p>
<p>When you click onto one of those icons, the clicked working set is loaded into the current area, or it is closed if it is the current set, allowing you to create a new one by opening a new document.</p>
<p><img src="http://zwabel.wordpress.com/files/2009/06/kdev4_working_set.png" alt="kdev4_working_set" title="kdev4_working_set" width="980" height="654" class="alignnone size-full wp-image-164" /><br />
When you hover a working set icon, you get a very useful tooltip, showing you the contained documents, allowing you to load or unload single documents with one click, and to delete or close the entire working set.</p>
<p><img src="http://zwabel.wordpress.com/files/2009/06/kdev4_working_set_2.png" alt="kdev4_working_set_2" title="kdev4_working_set_2" width="980" height="654" class="alignnone size-full wp-image-165" /></p>
<p><img src="http://zwabel.wordpress.com/files/2009/06/kdev4_working_set_3.png" alt="kdev4_working_set_3" title="kdev4_working_set_3" width="1005" height="654" class="alignnone size-full wp-image-166" /><br />
This is how it looks when you&#8217;re in the debug area, with a different working set open than in the code area. Working-sets are fully synchronized, so if you activate the same working-set within both areas, the areas transform into Eclipse perspectives, as they both always contain the same documents.</p>
<p><strong>KDevelop4 Beta4</strong><br />
On Monday KDevelop4 will go into a mini-freeze with only bugfixes allowed, before releasing the next beta middle of the week. We want to make sure to release a high-quality and stable beta. We have released beta3 just a week ago, but that was a bit premature, as it doesn&#8217;t contain some features that we want feedback about, and there were quite a few important last-minute bug-fixes that we would have liked to add, but the release process was already a bit too far at that point.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Dokumentasi Pemograman Desktop KDE/C++]]></title>
<link>http://pranotoutomo.wordpress.com/2009/06/20/dokumentasi-pemograman-desktop-kdec/</link>
<pubDate>Sat, 20 Jun 2009 19:25:44 +0000</pubDate>
<dc:creator>suryopranoto</dc:creator>
<guid>http://pranotoutomo.wordpress.com/2009/06/20/dokumentasi-pemograman-desktop-kdec/</guid>
<description><![CDATA[Kde-Oxygen Wew, akhirnya saya bisa ngeposting tentang IT lagi. Setelah sekian lama ngejunk nggak jel]]></description>
<content:encoded><![CDATA[Kde-Oxygen Wew, akhirnya saya bisa ngeposting tentang IT lagi. Setelah sekian lama ngejunk nggak jel]]></content:encoded>
</item>
<item>
<title><![CDATA[Beta3 and Beta4]]></title>
<link>http://apaku.wordpress.com/2009/06/02/beta3-and-beta4/</link>
<pubDate>Tue, 02 Jun 2009 20:14:31 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/06/02/beta3-and-beta4/</guid>
<description><![CDATA[Anybody who reads the dot will already know, but for those who don&#8217;t (yes I mean you): KDevelo]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Anybody who reads the dot will already know, but for those who don&#8217;t (yes I mean you): KDevelop4 has released its third beta. We&#8217;ve fixed tons of bugs, added a new launch framework, new C++ features and added a whole new way of switching the perspective from code to debug and back (KDE4.3 only).</p>
<p>However since the tagging on the weekend a week ago, David somehow has gone crazy on fixing all kinds of mysterious (well to me at least) crashes and locks, as well as some speed improvements. Additionally Thomas McGuire &#8211; a KDevelop fan and PIMster &#8211; sat down, digged in our complex ui-library and fixed one of the most annoying bugs ever found in this still new codebase: https://bugs.kde.org/show_bug.cgi?id=170863 (the one that resizes the mainwindow even in maximized mode when opening the find-bar from kate).</p>
<p>Hence we&#8217;ll shortly be releasing another beta (hopefully with some more fixes/improvements for valgrind, the debugger, launch framework and a new progresswidget). I don&#8217;t have any date yet as it depends on some administration stuff to be setup first, but you&#8217;ll notice when it happens <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[new dependency for kdevelop/gdb]]></title>
<link>http://apaku.wordpress.com/2009/05/08/new-dependency-for-kdevelopgdb/</link>
<pubDate>Fri, 08 May 2009 20:23:00 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/05/08/new-dependency-for-kdevelopgdb/</guid>
<description><![CDATA[Apparently some people tap into this pitfall, so I&#8217;ll kinda &#8220;announce&#8221; this here. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Apparently some people tap into this pitfall, so I&#8217;ll kinda &#8220;announce&#8221; this here. KDevelop4 from trunk requires kdebase/workspace since this week. The reason is a much improved process-selection-widget for our gdb-plugin. This allows far better attach-to-process experience than the old widget. The new widget comes from a library thats so far used by ksysguard and is installed as part of the KDE workspace. For KDE 4.4 the library will move to kdelibs and then this requirement will be lifted again, but until then the best option we have is depending on kdebase/workspace.</p>
<p>Also I&#8217;d like to note that right now OpenSuSE and Gentoo packages for kdebase/workspace have a bug, which prevents automatic finding of the relevant cmake modules when building KDevelop. Amilcar <a href="http://lists.kde.org/?l=kdevelop-devel&#38;m=124165590830731&#38;w=2">posted a workaround</a> to the kdevelop mailinglists, but I&#8217;m pretty sure the distro&#8217;s will catch up soon with fixed packages.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[New Launch Framework Landed]]></title>
<link>http://apaku.wordpress.com/2009/04/30/new-launch-framework-landed/</link>
<pubDate>Thu, 30 Apr 2009 21:43:07 +0000</pubDate>
<dc:creator>apaku</dc:creator>
<guid>http://apaku.wordpress.com/2009/04/30/new-launch-framework-landed/</guid>
<description><![CDATA[Finally, after about 3 weeks of work I&#8217;ve been able to merge back the new launch framework for]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Finally, after about 3 weeks of work I&#8217;ve been able to merge back the new launch framework for KDevelop4.</p>
<p>The rework was needed because the existing gui and framework didn&#8217;t allow for enough flexibility for more complex cases like remote-gdb debugging, or debugging webpages. Also it forced the user to store its configurations inside a project.</p>
<p>I&#8217;m too tired right now to create screenshots, but there&#8217;s also not that much to see besides a new treeview in the relevant dialog that lists the configs.</p>
<p>If you want to try it out, just svn up. Please note that there are a few minor gui bugs that I need to fix in the next 2 days as well as dependencies not working at all. Everything else should work (oh yeah, valgrind plugin is currently not working either). If you find bugs I&#8217;d kindly ask you to report them on IRC or better the kdevelop-devel mailinglist and not yet on bugzilla so we&#8217;re not flooded with new bugs and need to do another 2 days triaging session just to find out what obvious ones we fixed already. Give me a week or two to hammer out the obvious bugs and then feel free to send all your wishes and bugs via bugzilla.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Experinced C++ developer on the market]]></title>
<link>http://spillerlaszlo.wordpress.com/2009/04/21/experinced-c-developer-on-the-market/</link>
<pubDate>Tue, 21 Apr 2009 07:56:01 +0000</pubDate>
<dc:creator>Spiller László</dc:creator>
<guid>http://spillerlaszlo.wordpress.com/2009/04/21/experinced-c-developer-on-the-market/</guid>
<description><![CDATA[Gained 4 years of experience as C++ developer. His main projects: Flex/Action Script based user inte]]></description>
<content:encoded><![CDATA[Gained 4 years of experience as C++ developer. His main projects: Flex/Action Script based user inte]]></content:encoded>
</item>
<item>
<title><![CDATA[C++ developer on the market]]></title>
<link>http://spillerlaszlo.wordpress.com/2009/04/20/c-developer-on-the-market/</link>
<pubDate>Mon, 20 Apr 2009 12:56:26 +0000</pubDate>
<dc:creator>Spiller László</dc:creator>
<guid>http://spillerlaszlo.wordpress.com/2009/04/20/c-developer-on-the-market/</guid>
<description><![CDATA[Gained 4 years of experience as C++ developer. His main projects: - Flex/Action Script based user in]]></description>
<content:encoded><![CDATA[Gained 4 years of experience as C++ developer. His main projects: - Flex/Action Script based user in]]></content:encoded>
</item>

</channel>
</rss>
