<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://techbase.kde.org/skins/common/feed.css?0.2"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Danimo&amp;feedformat=atom</id>
		<title>KDE TechBase - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Danimo&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Special:Contributions/Danimo"/>
		<updated>2013-05-18T17:51:03Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/User_talk:Dhaumann</id>
		<title>User talk:Dhaumann</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Dhaumann"/>
				<updated>2011-02-22T06:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Reverted edits by Koko351152 (Talk) to last version by Karel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Its fine to delete the kdesvn-build page. I will merge my content into the existing page. Also, I will also modify the link from the Getting Started page to point to the existing kdesvn-build page.&lt;br /&gt;
[[User:Kunalthakar|Kunalthakar]] 19:51, 7 November 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Please block ==&lt;br /&gt;
User:38 buy tribulus&lt;br /&gt;
and make me an administrator, thanks! --[[User:Tstaerk|Tstaerk]] 11:52, 12 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Title Translation ==&lt;br /&gt;
&lt;br /&gt;
Hi guy !!!&lt;br /&gt;
I would like to know if menu bar translation is possible... If true, how could I do this?&lt;br /&gt;
Thank you...&lt;br /&gt;
&lt;br /&gt;
:You can use the template &amp;lt;nowiki&amp;gt;{{DISPLAYTITLE:foo}}&amp;lt;/nowiki&amp;gt;, where 'foo' is the translation. However, the display title reflects the wiki link, that's why a text &amp;quot;link to this page as &amp;lt;nowiki&amp;gt;[[...]]&amp;lt;/nowiki&amp;gt;&amp;quot; will appear then. --[[User:Dhaumann|Dhaumann]] 15:40, 18 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Actually not, I have hidden that text with display:none for on-screen printing. One bug though: When using DISPLAYTITLE, the &amp;lt;title&amp;gt; tag is not filled for some reason... --[[User:Danimo|Danimo]] 16:33, 18 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Damn... If you need help with this, you can ask me as you want for help... ;) --[[User:Fatalerrors|Fatalerrors]] 10:52, 20 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Hi, Dhaumann, can you read and write Chinese? Cool! --[[User:Liangqi|Liangqi]] 23:00, 18 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Unfortunately no. I can't read nor write it. But I still try my best to fix links in a language where I mostly see squares :-) --[[User:Dhaumann|Dhaumann]] 23:22, 18 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:: I see, I had found it in the diff. Thanks. I had mentioned this link problem in our mailing list. --[[User:Liangqi|Liangqi]] 11:36, 20 June 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sorting in feature list ==&lt;br /&gt;
&lt;br /&gt;
Why did you manually move (to sort) the stuff in the feature list?&lt;br /&gt;
It totally breaks the history... :(&lt;br /&gt;
&lt;br /&gt;
IMHO it should had been some kind of automatic sorting... or this sadly proves once again the old system was quite better..&lt;br /&gt;
&lt;br /&gt;
--[[user:Pino|pino]] 11:32, 17 March 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
== Do me a favour... ==&lt;br /&gt;
&lt;br /&gt;
Could you somehow take care of [[Development/Tutorials/Phonon/Introduction]]? It's in no usable state and I would recommend deleting it, and rather directly point a link to the API. I'm asking here, cause you once moved the page. --[[Special:Contributions/88.66.153.231|88.66.153.231]] 00:44, 3 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Wiki Structure - sub-pages ==&lt;br /&gt;
&lt;br /&gt;
The example [[Help:Wiki_Structure#Sub-pages|here]] is not valid anymore (or at least there's nothing like that &amp;quot;on the very top of the page&amp;quot;). What's better to do with it? Thanks.&lt;br /&gt;
&lt;br /&gt;
: True, will investigate. --dhaumann&lt;br /&gt;
&lt;br /&gt;
{{Excellent|2009-06-28}}&lt;br /&gt;
&lt;br /&gt;
== sub pages ==&lt;br /&gt;
&lt;br /&gt;
I'm wanting to move pages out of sub pages because It is very difficult to write wiki links and remember where everything is, also I would set up categories before moving the pages,  I'm telling / asking you because I think I saw a note asking people to use sub pages, and I do think there are times for them, I just note that categorizing wiki pages by sub page defeats some of the usefulness of wiki's... subpages are most appropriate for version specific content, would like to discuss, contact info is on my user page --[[User:AaronPeterson|AaronPeterson]] 09:31, 29 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== new page submission? ==&lt;br /&gt;
&lt;br /&gt;
Hi, I could not really determine where I could submit my new page for review: http://techbase.kde.org/User:Karel/EasyStartDevelopmentOnDebian&lt;br /&gt;
So I decided to submit it here :) Is this article good enough to be move to the tutorials section somewhere? Thanks for the review!&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User_talk:Danimo</id>
		<title>User talk:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Danimo"/>
				<updated>2011-02-22T06:33:06Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Undo revision 57075 by Koko351152 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CAPTCHAs that won't go away==&lt;br /&gt;
Aseigo [[Talk:Main_Page#Something_wrong_with_the_CAPTCHAs|suggested]] that I ask you about this.  Everytime I make an edit, it claims that I am adding a URL, and wants me to do some math.  Is it even supposed to do this to registered users?  In any case, ''most'' times I am not adding a url at all, and I tire of the systems inordinate appetite for elementary arithmetic.  Can this be fixed?  Thanks. --[[User:Axiom|Axiom]] 20:27, 28 March 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;{{file}}&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
As you asked me, I removed all the occurrences of &amp;lt;nowiki&amp;gt;{{file}}&amp;lt;/nowiki&amp;gt; with &amp;lt;nowiki&amp;gt;{{path}}&amp;lt;/nowiki&amp;gt;, and removed the obsolete template &amp;lt;nowiki&amp;gt;{{file}}&amp;lt;/nowiki&amp;gt;. -- [[user:Pino|pino]] 02:16, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There is also a template called &amp;lt;nowiki&amp;gt;{{module}}&amp;lt;/nowiki&amp;gt; for KDE modules (kdelibs, kdebase), etc. I initially used path here, too, and thought that's enough. It's not widely used, only by 2 articles. Maybe we should replace it by path again? What do you think? --[[User:Dhaumann|Dhaumann]] 09:14, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::I agree. --[[User:Danimo|Danimo]] 09:28, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Or maybe link it to the module page in the apidocs (e.g [http://api.kde.org/4.0-api/kdelibs-apidocs/ kdelibs])? --[[User:Milliams|milliams]] 14:47, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Good idea, &amp;lt;nowiki&amp;gt;{{kdelibs}}, {{kdebase}}&amp;lt;/nowiki&amp;gt; etc... +1 from my side :) --[[User:Dhaumann|Dhaumann]] 15:11, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::::Sounds good. Or how about &amp;lt;nowiki&amp;gt;{{module|foo}}&amp;lt;/nowiki&amp;gt; linking to http://api.kde.org/4.0-api/foo-apidocs/? I don't know how flexible this method is though? --[[User:Milliams|milliams]] 19:41, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::::+1 on [[User:Milliams|milliams]]' idea --[[user:Pino|pino]] 21:35, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Assistance needed for new contributor to Techbase==&lt;br /&gt;
Hi. My name is Thor, I am a new contributor to KDE and I am looking to provide some help with regard to one of the KDE Games, KTuberling (The Potato dude).  I am a Polyglot, and work in many different languages, and I have noticed on issues of KTuberling that even with correct software in place, certain speech selections do not function (Notably; Serbian and Danish).  I have been working on these for a while and would like to obtain source code for the Tuberling to try and correct the error.  Could you tell me please how I find out who is working on what, and what they are doing to it?  Thanks and Regards.  [[User:ThunderGod|ThunderGod]] 15:40, 30 December 2007 (CET)&lt;br /&gt;
:The best place to find assistance with this is by visiting the #kdegames or #kde-edu channels on irc.freenode.org or by sending an joining the KDE Games mailing list at [https://mail.kde.org/mailman/listinfo/kde-games-devel https://mail.kde.org/mailman/listinfo/kde-games-devel]. I believe tsdgeos (Albert Astals Cid) is the best person to speak to. --[[User:Milliams|milliams]] 17:13, 30 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== More readable URLs ==&lt;br /&gt;
&lt;br /&gt;
At the moment all links on this site are in the form [http://techbase.kde.org/index.php?title=Development/Tutorials http://techbase.kde.org/index.php?title=Development/Tutorials]. I think it would make the site much more readable to convert these links into something like [http://techbase.kde.org/Development/Tutorials http://techbase.kde.org/Development/Tutorials]. Now, as you can see, if you click on that link it does indeed work and takes you to the same page (so you've obviously got mod_rewrite working correctly) so the problem is that mediawiki itself isn't formatting it's links to take advantage of this. I think you basically need to do step 2 from [http://www.mediawiki.org/wiki/Manual:Short_URL#Setup_steps here]. --[[User:Milliams|milliams]] 14:53, 18 April 2008 (CEST)&lt;br /&gt;
:It seems this is working now. Thanks a lot :) --[[User:Milliams|milliams]] 14:34, 28 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Remove my account ==&lt;br /&gt;
&lt;br /&gt;
Please remove my account; i'd like to choose another username. Thank you. [[User:Krf|KRF]]&lt;br /&gt;
&lt;br /&gt;
:Mediawiki has no concept of user account deletion, since that would mess up the history. Just create a new user and add redirects from your current user accounts user page. --[[User:Danimo|Danimo]] 17:55, 20 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Okay, would be nice if you could make my username uppercase then... Some database tweaking maybe? ;). No need to answer this, you can remove my entry when you've read it. Thank you anyway. [[User:Krf|KRF]]&lt;br /&gt;
&lt;br /&gt;
== Hidden search button text in french localized ktechbase==&lt;br /&gt;
&lt;br /&gt;
When switching ktechbase language to french the button search text is really too small. I have read somewhere that the css file will use fixed width for a while so changing the search button width from 4em to 6em will fix that small issue.&lt;br /&gt;
&lt;br /&gt;
== The problem with images in article ==&lt;br /&gt;
&lt;br /&gt;
When adding the existing image file i can't save the whole article.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Article: http://techbase.kde.org/Projects/Plasma/Plasmoids_(ru)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Adding image (ex. kickoff.png), typing the code, saving and got &amp;quot;http://techbase.kde.org/index.php?title=Projects/Plasma/Plasmoids_(ru)&amp;amp;amp;action=submit&amp;quot; and&amp;amp;nbsp; a blank page. When i reload a page, i've got old text back, without any changes. Using Firefox 3.0. Can save only the text. What can we do about it? Thanks.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Where can I post a patch? ==&lt;br /&gt;
&lt;br /&gt;
My article on building the dependencies for KDE-4.x:&lt;br /&gt;
&lt;br /&gt;
http://techbase.kde.org/Getting_Started/Build/KDE4/LFS#QCA-2.0.2_.28crypto_add_on_for_Qt.29&lt;br /&gt;
&lt;br /&gt;
requires a patch for a file that will not build.  Is there somewhere on the TechBase site where I can post this?  Currently it is linked to my private web site and I would rather not have that.&lt;br /&gt;
&lt;br /&gt;
[[User:JRT|JRT]] 10:56, 13 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wiki software revealed ==&lt;br /&gt;
&lt;br /&gt;
=== Powered by please ===&lt;br /&gt;
It would be nice to reveal the software used in the [http://www.mediawiki.org/wiki/Manual:Footer page footer]. [http://techbase.kde.org/skins/common/images/poweredby_mediawiki_88x31.png (with this image)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;P STYLE=&amp;quot;TEXT-ALIGN: RIGHT&amp;quot; &amp;gt;[http://www.mediawiki.org/wiki/MediaWiki Powered by MediaWiki]&lt;br /&gt;
&lt;br /&gt;
=== Database configuration bug ===&lt;br /&gt;
See e.g. &amp;amp;lt;URL:{{fullurl:złocień}}&amp;gt;:&lt;br /&gt;
&amp;lt;BLOCKQUOTE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4 STYLE=&amp;quot;COLOR: BLACK&amp;quot; &amp;gt;Database error&amp;lt;/h4&amp;gt;&lt;br /&gt;
		A database query syntax error has occurred.&lt;br /&gt;
This may indicate a bug in the software.&lt;br /&gt;
The last attempted database query was:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;tt&amp;gt;(SQL query hidden)&amp;lt;/tt&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from within function &amp;quot;&amp;lt;tt&amp;gt;Article::pageData&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
MySQL returned error &amp;quot;&amp;lt;tt&amp;gt;1267: Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_unicode_ci,COERCIBLE) for operation '=' (localhost)&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/BLOCKQUOTE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should never happen, compare &amp;amp;lt;URL:http://www.mediawiki.org/wiki/Z%C5%82ocie%C5%84&amp;gt;.  This problem will prevents Wiki for having non-Western-European page names in translations.  The most probable cause is a misconfiguration of the database engine; however, it is also worth noting that the current MediaWiki software is [http://lists.wikimedia.org/pipermail/mediawiki-announce/2010-July/000092.html 1.16] whereas you are using 1.14 (from HTML metadata, otherwise unmentioned), so maybe it would be time to upgrade?&lt;br /&gt;
&lt;br /&gt;
--[[User:Yecril71pl|Yecril71pl]] 15:03, 14 September 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo</id>
		<title>User:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo"/>
				<updated>2009-08-01T20:56:14Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subpages ==&lt;br /&gt;
&lt;br /&gt;
{{List_subpages}}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Beautify Subpage titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
sorry for reporting a bug here; but this seems like as good a place as any :)&lt;br /&gt;
When using &amp;lt;nowiki&amp;gt;&amp;lt;code cpp&amp;gt;&amp;lt;/nowiki&amp;gt; tags I noted a bug.  Specifically when you use the colon (or other means) to indent it.  [[User:Zander|Zander]] 20:39, 9 April 2007 (CEST)&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code cpp&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QDate&amp;gt;&lt;br /&gt;
#include &amp;lt;zlib.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Class</id>
		<title>Template:Class</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Class"/>
				<updated>2009-08-01T20:24:28Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://api.kde.org/classmapper.php?class={{{1}}}&amp;amp;module={{{2|kdelibs}}}&amp;amp;version={{{3|4.x}}} {{{1}}}]&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=== Usage Examples ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{class|kcolordialog}}&amp;lt;/nowiki&amp;gt; looks for the docs of KColorDialog in kdelibs from KDE trunk.&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{class|Syndication::Feed|kdepimlibs}}&amp;lt;/nowiki&amp;gt; shows optional parameter for lookup in other modules.&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{class|kcolordialog|kdelibs|3.5}}&amp;lt;/nowiki&amp;gt; shows optional parameter to look up the docs in a different version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Template]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/Using_KActions</id>
		<title>Development/Tutorials/Using KActions</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/Using_KActions"/>
				<updated>2009-07-26T12:28:25Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Reverted edits by Danimo (Talk) to last version by Sreich&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KActions}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Beginner Tutorial|&lt;br /&gt;
&lt;br /&gt;
name=How To Use KActions and XMLGUI|&lt;br /&gt;
&lt;br /&gt;
pre=[[Development/Tutorials/Using_KXmlGuiWindow|Tutorial 2 - KXmlGuiWindow]], Basic XML knowledge|&lt;br /&gt;
&lt;br /&gt;
next=[[Development/Tutorials/Saving_and_loading|Tutorial 4 - Saving and loading]]| &lt;br /&gt;
&lt;br /&gt;
reading=None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Abstract==&lt;br /&gt;
This tutorial introduces the concept of actions. Actions are a unified way of supplying the user with ways to interact with your program.&lt;br /&gt;
&lt;br /&gt;
For example, if we wanted to let the user of [[Development/Tutorials/Using_KXmlGuiWindow|Tutorial 2 ]] clear the text box by clicking a button in the toolbar, from an option in the File menu or through a keyboard shortcut, it could all be done with one {{class|KAction}}.&lt;br /&gt;
&lt;br /&gt;
[[image:introtokdetutorial3.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==KAction==&lt;br /&gt;
A {{class|KAction}} is an object which contains all the information about the icon and shortcuts that is associated with a certain action. The action is then connected to a [http://doc.trolltech.com/latest/signalsandslots.html slot] which carries out the work of your action.&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
&lt;br /&gt;
===main.cpp===&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#include &amp;lt;KApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;KAboutData&amp;gt;&lt;br /&gt;
#include &amp;lt;KCmdLineArgs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
  KAboutData aboutData( &amp;quot;tutorial3&amp;quot;, &amp;quot;tutorial3&amp;quot;,&lt;br /&gt;
      ki18n(&amp;quot;Tutorial 3&amp;quot;), &amp;quot;1.0&amp;quot;,&lt;br /&gt;
      ki18n(&amp;quot;A simple text area using KAction etc.&amp;quot;),&lt;br /&gt;
      KAboutData::License_GPL,&lt;br /&gt;
      ki18n(&amp;quot;Copyright (c) 2007 Developer&amp;quot;) );&lt;br /&gt;
  KCmdLineArgs::init( argc, argv, &amp;amp;aboutData );&lt;br /&gt;
  KApplication app;&lt;br /&gt;
 &lt;br /&gt;
  MainWindow* window = new MainWindow();&lt;br /&gt;
  window-&amp;gt;show();&lt;br /&gt;
  return app.exec();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This time, very little has changed in &amp;lt;tt&amp;gt;main.cpp&amp;lt;/tt&amp;gt;, only the KAboutData constructor has been updated to show that we are now on tutorial 3.&lt;br /&gt;
&lt;br /&gt;
===mainwindow.h===&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;KXmlGuiWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;KTextEdit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public KXmlGuiWindow&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    MainWindow(QWidget *parent=0);&lt;br /&gt;
	&lt;br /&gt;
  private:&lt;br /&gt;
    KTextEdit* textArea;&lt;br /&gt;
    void setupActions();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Only a function &amp;lt;tt&amp;gt;void setupActions()&amp;lt;/tt&amp;gt; has been added which will do all the work setting up the KActions.&lt;br /&gt;
&lt;br /&gt;
===mainwindow.cpp===&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;KApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;KAction&amp;gt;&lt;br /&gt;
#include &amp;lt;KLocale&amp;gt;&lt;br /&gt;
#include &amp;lt;KActionCollection&amp;gt;&lt;br /&gt;
#include &amp;lt;KStandardAction&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent)&lt;br /&gt;
    : KXmlGuiWindow(parent)&lt;br /&gt;
{&lt;br /&gt;
  textArea = new KTextEdit;&lt;br /&gt;
  setCentralWidget(textArea);&lt;br /&gt;
&lt;br /&gt;
  setupActions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::setupActions()&lt;br /&gt;
{&lt;br /&gt;
  KAction* clearAction = new KAction(this);&lt;br /&gt;
  clearAction-&amp;gt;setText(i18n(&amp;quot;Clear&amp;quot;));&lt;br /&gt;
  clearAction-&amp;gt;setIcon(KIcon(&amp;quot;document-new&amp;quot;));&lt;br /&gt;
  clearAction-&amp;gt;setShortcut(Qt::CTRL + Qt::Key_W);&lt;br /&gt;
  actionCollection()-&amp;gt;addAction(&amp;quot;clear&amp;quot;, clearAction);&lt;br /&gt;
  connect(clearAction, SIGNAL(triggered(bool)),&lt;br /&gt;
          textArea, SLOT(clear()));&lt;br /&gt;
&lt;br /&gt;
  KStandardAction::quit(kapp, SLOT(quit()),&lt;br /&gt;
                        actionCollection());&lt;br /&gt;
&lt;br /&gt;
  setupGUI();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
This builds upon the KXmlGuiWindow code from [[Development/Tutorials/Using_KXmlGuiWindow|Tutorial 2]]. Most of the changes are to &amp;lt;tt&amp;gt;mainwindow.cpp&amp;lt;/tt&amp;gt;, an important structural change being that the constructor for MainWindow now calls &amp;lt;tt&amp;gt;setupActions()&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;setupGUI()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;setupActions()&amp;lt;/tt&amp;gt; is where the new KAction code goes before finally calling &amp;lt;tt&amp;gt;setupGUI()&amp;lt;/tt&amp;gt; itself.&lt;br /&gt;
&lt;br /&gt;
===Creating the KAction object===&lt;br /&gt;
The KAction is built up in a number of steps. The first is including the &amp;lt;tt&amp;gt;KAction&amp;lt;/tt&amp;gt; library and then creating the KAction:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#include &amp;lt;KAction&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
KAction* clearAction = new KAction(this);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This creates a new KAction called &amp;lt;tt&amp;gt;clearAction&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Setting KAction Properties===&lt;br /&gt;
====Text====&lt;br /&gt;
Now we have our KAction object, we can start setting its properties. The following code sets the text that will be displayed in the menu and under the &amp;lt;tt&amp;gt;KAction&amp;lt;/tt&amp;gt;'s icon in the toolbar.&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;clearAction-&amp;gt;setText(i18n(&amp;quot;Clear&amp;quot;));&amp;lt;/code&amp;gt;&lt;br /&gt;
Note that the text is passed through the i18n() function; this is necessary for the UI to be translatable (more information on this can be found in the [[Development/Tutorials/Localization/i18n|i18n tutorial]]).&lt;br /&gt;
&lt;br /&gt;
====Icon====&lt;br /&gt;
If the action is going to be displayed in a toolbar, it's nice to have an icon depicting the action. The following code sets the icon to the standard KDE &amp;lt;tt&amp;gt;document-new&amp;lt;/tt&amp;gt; icon through the use of the &amp;lt;tt&amp;gt;setIcon()&amp;lt;/tt&amp;gt; function:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;clearAction-&amp;gt;setIcon(KIcon(&amp;quot;document-new&amp;quot;));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Keyboard Shortcut====&lt;br /&gt;
Setting a keyboard shortcut to perform our action is equally simple:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;clearAction-&amp;gt;setShortcut(Qt::CTRL + Qt::Key_W);&amp;lt;/code&amp;gt;&lt;br /&gt;
This associates Ctrl+W with the KAction.&lt;br /&gt;
&lt;br /&gt;
===Adding to the Collection===&lt;br /&gt;
In order for the action to be accessed by the XMLGUI framework (explained in depth later) it must be added to the application's ''action collection''. The action collection is accessed via the &amp;lt;tt&amp;gt;actionCollection()&amp;lt;/tt&amp;gt; function like this: &lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
actionCollection()-&amp;gt;addAction(&amp;quot;clear&amp;quot;, clearAction);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Here, the &amp;lt;tt&amp;gt;clearAction&amp;lt;/tt&amp;gt; KAction is added to the collection and given a name of ''clear''. This name (''clear'') is used by the XMLGUI framework to refer to the action, ergo, it should not be localized, since it is used internally only.&lt;br /&gt;
&lt;br /&gt;
====Connecting the action====&lt;br /&gt;
Now that the action is fully set up, it needs to be connected to something useful. In this case (because we want to clear the text area), we connect our action to the &amp;lt;tt&amp;gt;clear()&amp;lt;/tt&amp;gt; action belonging to a KTextEdit (which, unsurprisingly, clears the KTextEdit)&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
connect( clearAction, SIGNAL( triggered(bool) ), &lt;br /&gt;
         textArea, SLOT( clear() ) );&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This is the same as it would be done in Qt with a {{qt|QAction}}.&lt;br /&gt;
&lt;br /&gt;
===KStandardAction===&lt;br /&gt;
&lt;br /&gt;
For actions which would likely appear in almost every KDE application such as 'quit', 'save', and 'load' there are pre-created convenience KActions, accessed through [http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/namespaceKStandardAction.html KStandardAction].&lt;br /&gt;
&lt;br /&gt;
They are very simple to use. Once the library has been included (&amp;lt;tt&amp;gt;#include &amp;lt;KStandardAction&amp;gt;&amp;lt;/tt&amp;gt;), simply supply it with what you want the function to do and which KActionCollection to add it to. For example:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;KStandardAction::quit(kapp, SLOT(quit()), actionCollection());&amp;lt;/code&amp;gt;&lt;br /&gt;
This creates a KAction with the correct icon, text and shortcut and even adds it to the File menu.&lt;br /&gt;
&lt;br /&gt;
==Adding the action to menus and toolbars==&lt;br /&gt;
At the moment, the new &amp;quot;Clear&amp;quot; action has been created but it hasn't been associated with any menus or toolbars. This is done with a KDE technology called XMLGUI, which does nice things like movable toolbars for you.&lt;br /&gt;
&lt;br /&gt;
{{note|In a later version of KDE4, XMLGUI, may be replaced with a new framework called liveui. For now, XMLGUI, is the only and correct way to set up the UI.}}&lt;br /&gt;
&lt;br /&gt;
==XMLGUI==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;setupGUI()&amp;lt;/tt&amp;gt; function in {{class|KXmlGuiWindow}} depends on the XMLGUI system to construct the GUI, which XMLGUI does by parsing an XML file description of the interface.&lt;br /&gt;
&lt;br /&gt;
The rule for naming this XML file is &amp;lt;tt&amp;gt;appnameui.rc&amp;lt;/tt&amp;gt;, where &amp;lt;tt&amp;gt;appname&amp;lt;/tt&amp;gt; is the name you set in {{class|KAboutData}} (in this case, ''tutorial3''). So in our example, the file is called &amp;lt;tt&amp;gt;tutorial3ui.rc&amp;lt;/tt&amp;gt;, and is located in the build directory. Where the file will ultimately be placed is handled by CMake.&lt;br /&gt;
&lt;br /&gt;
''See also'' [http://developer.kde.org/documentation/library/kdeqt/kde3arch/xmlgui.html developer.kde.org] which still provides valid information for KDE4.&lt;br /&gt;
&lt;br /&gt;
==''appname''ui.rc File==&lt;br /&gt;
&lt;br /&gt;
Since the description of the UI is defined with XML, the layout must follow strict rules. This tutorial will not go into great depth on this topic, but for more information, see the [[Development/Architecture/KDE4/XMLGUI_Technology|detailed XMLGUI page]] (here is an older tutorial: [http://developer.kde.org/documentation/tutorials/xmlui/preface.html]).&lt;br /&gt;
&lt;br /&gt;
===tutorial3ui.rc===&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;gui name=&amp;quot;tutorial3&amp;quot;&lt;br /&gt;
     version=&amp;quot;1&amp;quot;&lt;br /&gt;
     xmlns=&amp;quot;http://www.kde.org/standards/kxmlgui/1.0&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;http://www.kde.org/standards/kxmlgui/1.0&lt;br /&gt;
                         http://www.kde.org/standards/kxmlgui/1.0/kxmlgui.xsd&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;MenuBar&amp;gt;&lt;br /&gt;
    &amp;lt;Menu name=&amp;quot;file&amp;quot; &amp;gt;&lt;br /&gt;
      &amp;lt;Action name=&amp;quot;clear&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Menu&amp;gt;&lt;br /&gt;
  &amp;lt;/MenuBar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;ToolBar name=&amp;quot;mainToolBar&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;text&amp;gt;Main Toolbar&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;Action name=&amp;quot;clear&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/ToolBar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;Toolbar&amp;gt;&amp;lt;/tt&amp;gt; tag allows you to describe the toolbar, which is the bar across the top of the window normally with icons. Here it is given the unique name ''mainToolBar'' and its user visible name set to ''Main Toolbar'' using the &amp;lt;tt&amp;gt;&amp;lt;text&amp;gt;&amp;lt;/tt&amp;gt; tag. The clear action is added to the toolbar using the &amp;lt;tt&amp;gt;&amp;lt;Action&amp;gt;&amp;lt;/tt&amp;gt; tag, the name parameter in this tag being the string that was passed to the KActionCollection with &amp;lt;tt&amp;gt;addAction()&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;mainwindow.cpp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Besides having the action in the toolbar, it can also be added to the menubar. Here the action is being added to the ''File'' menu of the &amp;lt;tt&amp;gt;MenuBar&amp;lt;/tt&amp;gt; the same way it was added to the toolbar.&lt;br /&gt;
&lt;br /&gt;
Change the 'version' attribute of the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;gui&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; tag if you changed .rc file since the last install to force a system cache update. Be sure it is an integer, if you use a decimal value, it will not work, but will not notify that it didn't.&lt;br /&gt;
&lt;br /&gt;
Some notes on the interaction between code and the .rc file: Menus appear automatically and should have a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;text/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; child tag unless they refer to standard menus. Actions need to be created manually and inserted into the actionCollection() using the name in the .rc file. Actions can be hidden or disabled, whereas menus can't.&lt;br /&gt;
&lt;br /&gt;
==CMake==&lt;br /&gt;
Finally, the &amp;lt;tt&amp;gt;tutorial3ui.rc&amp;lt;/tt&amp;gt; needs to go somewhere where KDE can find it (can't just leave it in the source directory!). '''This means the project needs to be installed somewhere.'''&lt;br /&gt;
===CMakeLists.txt===&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
project(tutorial3)&lt;br /&gt;
&lt;br /&gt;
find_package(KDE4 REQUIRED)&lt;br /&gt;
include_directories(${KDE4_INCLUDES})&lt;br /&gt;
&lt;br /&gt;
set(tutorial3_SRCS &lt;br /&gt;
  main.cpp&lt;br /&gt;
  mainwindow.cpp&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kde4_add_executable(tutorial3 ${tutorial3_SRCS})&lt;br /&gt;
&lt;br /&gt;
target_link_libraries(tutorial3 ${KDE4_KDEUI_LIBS})&lt;br /&gt;
&lt;br /&gt;
install(TARGETS tutorial3 DESTINATION ${BIN_INSTALL_DIR})&lt;br /&gt;
install(FILES tutorial3ui.rc &lt;br /&gt;
        DESTINATION  ${DATA_INSTALL_DIR}/tutorial3)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file is almost identical to the one for tutorial2, but with two extra lines at the end that describe where the files are to be installed. Firstly, the &amp;lt;tt&amp;gt;tutorial3&amp;lt;/tt&amp;gt; target is installed to the &amp;lt;tt&amp;gt;BIN_INSTALL_DIR&amp;lt;/tt&amp;gt; then the &amp;lt;tt&amp;gt;tutorial3ui.rc&amp;lt;/tt&amp;gt; file that describes the layout of the user interface is installed to the application's data directory.&lt;br /&gt;
&lt;br /&gt;
===Make, Install And Run===&lt;br /&gt;
If you don't have write access to where your KDE4 installation directory, you can install it to a folder in your home directory.&lt;br /&gt;
&lt;br /&gt;
To tell CMake where to install the program, set the &amp;lt;tt&amp;gt;DCMAKE_INSTALL_PREFIX&amp;lt;/tt&amp;gt; switch. You probably just want to install it somewhere local for testing (it's probably a bit silly to go to the effort of installing these tutorials to your KDE directory), so the following might be appropriate:&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 cmake .. -DCMAKE_INSTALL_PREFIX=$HOME&lt;br /&gt;
 make install&lt;br /&gt;
 $HOME/bin/tutorial3&lt;br /&gt;
which will create a KDE-like directory structure in your user's home directory directory and will install the executable to {{path|$HOME/bin/tutorial3}}.&lt;br /&gt;
&lt;br /&gt;
==Moving On==&lt;br /&gt;
Now you can move on to [[Development/Tutorials/Saving_and_loading|saving and loading]].&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/Using_KActions</id>
		<title>Development/Tutorials/Using KActions</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/Using_KActions"/>
				<updated>2009-07-26T12:28:06Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KActions}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Beginner Tutorial|&lt;br /&gt;
&lt;br /&gt;
name=How To Use KActions and XMLGUI|&lt;br /&gt;
&lt;br /&gt;
pre=[[Development/Tutorials/Using_KXmlGuiWindow|Tutorial 2 - KXmlGuiWindow]], Basic XML knowledge|&lt;br /&gt;
&lt;br /&gt;
next=[[Development/Tutorials/Saving_and_loading|Tutorial 4 - Saving and loading]]| &lt;br /&gt;
&lt;br /&gt;
reading=None&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Abstract==&lt;br /&gt;
This tutorial introduces the concept of actions. Actions are a unified way of supplying the user with ways to interact with your program.&lt;br /&gt;
&lt;br /&gt;
For example, if we wanted to let the user of [[Development/Tutorials/Using_KXmlGuiWindow|Tutorial 2 ]] clear the text box by clicking a button in the toolbar, from an option in the File menu or through a keyboard shortcut, it could all be done with one {{class|KAction}}.&lt;br /&gt;
&lt;br /&gt;
[[image:introtokdetutorial3.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==KAction==&lt;br /&gt;
A {{class|KAction}} is an object which contains all the information about the icon and shortcuts that is associated with a certain action. The action is then connected to a [http://doc.trolltech.com/latest/signalsandslots.html slot] which carries out the work of your action.&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
&lt;br /&gt;
===main.cpp===&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#include &amp;lt;KApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;KAboutData&amp;gt;&lt;br /&gt;
#include &amp;lt;KCmdLineArgs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
  KAboutData aboutData( &amp;quot;tutorial3&amp;quot;, &amp;quot;tutorial3&amp;quot;,&lt;br /&gt;
      ki18n(&amp;quot;Tutorial 3&amp;quot;), &amp;quot;1.0&amp;quot;,&lt;br /&gt;
      ki18n(&amp;quot;A simple text area using KAction etc.&amp;quot;),&lt;br /&gt;
      KAboutData::License_GPL,&lt;br /&gt;
      ki18n(&amp;quot;Copyright (c) 2007 Developer&amp;quot;) );&lt;br /&gt;
  KCmdLineArgs::init( argc, argv, &amp;amp;aboutData );&lt;br /&gt;
  KApplication app;&lt;br /&gt;
 &lt;br /&gt;
  MainWindow* window = new MainWindow();&lt;br /&gt;
  window-&amp;gt;show();&lt;br /&gt;
  return app.exec();&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
This time, very little has changed in &amp;lt;tt&amp;gt;main.cpp&amp;lt;/tt&amp;gt;, only the KAboutData constructor has been updated to show that we are now on tutorial 3.&lt;br /&gt;
&lt;br /&gt;
===mainwindow.h===&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;KXmlGuiWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;KTextEdit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public KXmlGuiWindow&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    MainWindow(QWidget *parent=0);&lt;br /&gt;
	&lt;br /&gt;
  private:&lt;br /&gt;
    KTextEdit* textArea;&lt;br /&gt;
    void setupActions();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Only a function &amp;lt;tt&amp;gt;void setupActions()&amp;lt;/tt&amp;gt; has been added which will do all the work setting up the KActions.&lt;br /&gt;
&lt;br /&gt;
===mainwindow.cpp===&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;KApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;KAction&amp;gt;&lt;br /&gt;
#include &amp;lt;KLocale&amp;gt;&lt;br /&gt;
#include &amp;lt;KActionCollection&amp;gt;&lt;br /&gt;
#include &amp;lt;KStandardAction&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent)&lt;br /&gt;
    : KXmlGuiWindow(parent)&lt;br /&gt;
{&lt;br /&gt;
  textArea = new KTextEdit;&lt;br /&gt;
  setCentralWidget(textArea);&lt;br /&gt;
&lt;br /&gt;
  setupActions();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::setupActions()&lt;br /&gt;
{&lt;br /&gt;
  KAction* clearAction = new KAction(this);&lt;br /&gt;
  clearAction-&amp;gt;setText(i18n(&amp;quot;Clear&amp;quot;));&lt;br /&gt;
  clearAction-&amp;gt;setIcon(KIcon(&amp;quot;document-new&amp;quot;));&lt;br /&gt;
  clearAction-&amp;gt;setShortcut(Qt::CTRL + Qt::Key_W);&lt;br /&gt;
  actionCollection()-&amp;gt;addAction(&amp;quot;clear&amp;quot;, clearAction);&lt;br /&gt;
  connect(clearAction, SIGNAL(triggered(bool)),&lt;br /&gt;
          textArea, SLOT(clear()));&lt;br /&gt;
&lt;br /&gt;
  KStandardAction::quit(kapp, SLOT(quit()),&lt;br /&gt;
                        actionCollection());&lt;br /&gt;
&lt;br /&gt;
  setupGUI();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
This builds upon the KXmlGuiWindow code from [[Development/Tutorials/Using_KXmlGuiWindow|Tutorial 2]]. Most of the changes are to &amp;lt;tt&amp;gt;mainwindow.cpp&amp;lt;/tt&amp;gt;, an important structural change being that the constructor for MainWindow now calls &amp;lt;tt&amp;gt;setupActions()&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;setupGUI()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;setupActions()&amp;lt;/tt&amp;gt; is where the new KAction code goes before finally calling &amp;lt;tt&amp;gt;setupGUI()&amp;lt;/tt&amp;gt; itself.&lt;br /&gt;
&lt;br /&gt;
===Creating the KAction object===&lt;br /&gt;
The KAction is built up in a number of steps. The first is including the &amp;lt;tt&amp;gt;KAction&amp;lt;/tt&amp;gt; library and then creating the KAction:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
#include &amp;lt;KAction&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
KAction* clearAction = new KAction(this);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This creates a new KAction called &amp;lt;tt&amp;gt;clearAction&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Setting KAction Properties===&lt;br /&gt;
====Text====&lt;br /&gt;
Now we have our KAction object, we can start setting its properties. The following code sets the text that will be displayed in the menu and under the &amp;lt;tt&amp;gt;KAction&amp;lt;/tt&amp;gt;'s icon in the toolbar.&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;clearAction-&amp;gt;setText(i18n(&amp;quot;Clear&amp;quot;));&amp;lt;/code&amp;gt;&lt;br /&gt;
Note that the text is passed through the i18n() function; this is necessary for the UI to be translatable (more information on this can be found in the [[Development/Tutorials/Localization/i18n|i18n tutorial]]).&lt;br /&gt;
&lt;br /&gt;
====Icon====&lt;br /&gt;
If the action is going to be displayed in a toolbar, it's nice to have an icon depicting the action. The following code sets the icon to the standard KDE &amp;lt;tt&amp;gt;document-new&amp;lt;/tt&amp;gt; icon through the use of the &amp;lt;tt&amp;gt;setIcon()&amp;lt;/tt&amp;gt; function:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;clearAction-&amp;gt;setIcon(KIcon(&amp;quot;document-new&amp;quot;));&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Keyboard Shortcut====&lt;br /&gt;
Setting a keyboard shortcut to perform our action is equally simple:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;clearAction-&amp;gt;setShortcut(Qt::CTRL + Qt::Key_W);&amp;lt;/code&amp;gt;&lt;br /&gt;
This associates Ctrl+W with the KAction.&lt;br /&gt;
&lt;br /&gt;
===Adding to the Collection===&lt;br /&gt;
In order for the action to be accessed by the XMLGUI framework (explained in depth later) it must be added to the application's ''action collection''. The action collection is accessed via the &amp;lt;tt&amp;gt;actionCollection()&amp;lt;/tt&amp;gt; function like this: &lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
actionCollection()-&amp;gt;addAction(&amp;quot;clear&amp;quot;, clearAction);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Here, the &amp;lt;tt&amp;gt;clearAction&amp;lt;/tt&amp;gt; KAction is added to the collection and given a name of ''clear''. This name (''clear'') is used by the XMLGUI framework to refer to the action, ergo, it should not be localized, since it is used internally only.&lt;br /&gt;
&lt;br /&gt;
====Connecting the action====&lt;br /&gt;
Now that the action is fully set up, it needs to be connected to something useful. In this case (because we want to clear the text area), we connect our action to the &amp;lt;tt&amp;gt;clear()&amp;lt;/tt&amp;gt; action belonging to a KTextEdit (which, unsurprisingly, clears the KTextEdit)&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;&lt;br /&gt;
connect( clearAction, SIGNAL( triggered(bool) ), &lt;br /&gt;
         textArea, SLOT( clear() ) );&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This is the same as it would be done in Qt with a {{qt|QAction}}.&lt;br /&gt;
&lt;br /&gt;
===KStandardAction===&lt;br /&gt;
&lt;br /&gt;
For actions which would likely appear in almost every KDE application such as 'quit', 'save', and 'load' there are pre-created convenience KActions, accessed through [http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/namespaceKStandardAction.html KStandardAction].&lt;br /&gt;
&lt;br /&gt;
They are very simple to use. Once the library has been included (&amp;lt;tt&amp;gt;#include &amp;lt;KStandardAction&amp;gt;&amp;lt;/tt&amp;gt;), simply supply it with what you want the function to do and which KActionCollection to add it to. For example:&lt;br /&gt;
&amp;lt;code cppqt&amp;gt;KStandardAction::quit(kapp, SLOT(quit()), actionCollection());&amp;lt;/code&amp;gt;&lt;br /&gt;
This creates a KAction with the correct icon, text and shortcut and even adds it to the File menu.&lt;br /&gt;
&lt;br /&gt;
==Adding the action to menus and toolbars==&lt;br /&gt;
At the moment, the new &amp;quot;Clear&amp;quot; action has been created but it hasn't been associated with any menus or toolbars. This is done with a KDE technology called XMLGUI, which does nice things like movable toolbars for you.&lt;br /&gt;
&lt;br /&gt;
{{note|In a later version of KDE4, XMLGUI, may be replaced with a new framework called liveui. For now, XMLGUI, is the only and correct way to set up the UI.}}&lt;br /&gt;
&lt;br /&gt;
==XMLGUI==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;setupGUI()&amp;lt;/tt&amp;gt; function in {{class|KXmlGuiWindow}} depends on the XMLGUI system to construct the GUI, which XMLGUI does by parsing an XML file description of the interface.&lt;br /&gt;
&lt;br /&gt;
The rule for naming this XML file is &amp;lt;tt&amp;gt;appnameui.rc&amp;lt;/tt&amp;gt;, where &amp;lt;tt&amp;gt;appname&amp;lt;/tt&amp;gt; is the name you set in {{class|KAboutData}} (in this case, ''tutorial3''). So in our example, the file is called &amp;lt;tt&amp;gt;tutorial3ui.rc&amp;lt;/tt&amp;gt;, and is located in the build directory. Where the file will ultimately be placed is handled by CMake.&lt;br /&gt;
&lt;br /&gt;
''See also'' [http://developer.kde.org/documentation/library/kdeqt/kde3arch/xmlgui.html developer.kde.org] which still provides valid information for KDE4.&lt;br /&gt;
&lt;br /&gt;
==''appname''ui.rc File==&lt;br /&gt;
&lt;br /&gt;
Since the description of the UI is defined with XML, the layout must follow strict rules. This tutorial will not go into great depth on this topic, but for more information, see the [[Development/Architecture/KDE4/XMLGUI_Technology|detailed XMLGUI page]] (here is an older tutorial: [http://developer.kde.org/documentation/tutorials/xmlui/preface.html]).&lt;br /&gt;
&lt;br /&gt;
===tutorial3ui.rc===&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;gui name=&amp;quot;tutorial3&amp;quot;&lt;br /&gt;
     version=&amp;quot;1&amp;quot;&lt;br /&gt;
     xmlns=&amp;quot;http://www.kde.org/standards/kxmlgui/1.0&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;http://www.kde.org/standards/kxmlgui/1.0&lt;br /&gt;
                         http://www.kde.org/standards/kxmlgui/1.0/kxmlgui.xsd&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;MenuBar&amp;gt;&lt;br /&gt;
    &amp;lt;Menu name=&amp;quot;file&amp;quot; &amp;gt;&lt;br /&gt;
      &amp;lt;Action name=&amp;quot;clear&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Menu&amp;gt;&lt;br /&gt;
  &amp;lt;/MenuBar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;ToolBar name=&amp;quot;mainToolBar&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;text&amp;gt;Main Toolbar&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;Action name=&amp;quot;clear&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/ToolBar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;Toolbar&amp;gt;&amp;lt;/tt&amp;gt; tag allows you to describe the toolbar, which is the bar across the top of the window normally with icons. Here it is given the unique name ''mainToolBar'' and its user visible name set to ''Main Toolbar'' using the &amp;lt;tt&amp;gt;&amp;lt;text&amp;gt;&amp;lt;/tt&amp;gt; tag. The clear action is added to the toolbar using the &amp;lt;tt&amp;gt;&amp;lt;Action&amp;gt;&amp;lt;/tt&amp;gt; tag, the name parameter in this tag being the string that was passed to the KActionCollection with &amp;lt;tt&amp;gt;addAction()&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;mainwindow.cpp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Besides having the action in the toolbar, it can also be added to the menubar. Here the action is being added to the ''File'' menu of the &amp;lt;tt&amp;gt;MenuBar&amp;lt;/tt&amp;gt; the same way it was added to the toolbar.&lt;br /&gt;
&lt;br /&gt;
Change the 'version' attribute of the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;gui&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; tag if you changed .rc file since the last install to force a system cache update. Be sure it is an integer, if you use a decimal value, it will not work, but will not notify that it didn't.&lt;br /&gt;
&lt;br /&gt;
Some notes on the interaction between code and the .rc file: Menus appear automatically and should have a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;text/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; child tag unless they refer to standard menus. Actions need to be created manually and inserted into the actionCollection() using the name in the .rc file. Actions can be hidden or disabled, whereas menus can't.&lt;br /&gt;
&lt;br /&gt;
==CMake==&lt;br /&gt;
Finally, the &amp;lt;tt&amp;gt;tutorial3ui.rc&amp;lt;/tt&amp;gt; needs to go somewhere where KDE can find it (can't just leave it in the source directory!). '''This means the project needs to be installed somewhere.'''&lt;br /&gt;
===CMakeLists.txt===&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
project(tutorial3)&lt;br /&gt;
&lt;br /&gt;
find_package(KDE4 REQUIRED)&lt;br /&gt;
include_directories(${KDE4_INCLUDES})&lt;br /&gt;
&lt;br /&gt;
set(tutorial3_SRCS &lt;br /&gt;
  main.cpp&lt;br /&gt;
  mainwindow.cpp&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kde4_add_executable(tutorial3 ${tutorial3_SRCS})&lt;br /&gt;
&lt;br /&gt;
target_link_libraries(tutorial3 ${KDE4_KDEUI_LIBS})&lt;br /&gt;
&lt;br /&gt;
install(TARGETS tutorial3 DESTINATION ${BIN_INSTALL_DIR})&lt;br /&gt;
install(FILES tutorial3ui.rc &lt;br /&gt;
        DESTINATION  ${DATA_INSTALL_DIR}/tutorial3)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file is almost identical to the one for tutorial2, but with two extra lines at the end that describe where the files are to be installed. Firstly, the &amp;lt;tt&amp;gt;tutorial3&amp;lt;/tt&amp;gt; target is installed to the &amp;lt;tt&amp;gt;BIN_INSTALL_DIR&amp;lt;/tt&amp;gt; then the &amp;lt;tt&amp;gt;tutorial3ui.rc&amp;lt;/tt&amp;gt; file that describes the layout of the user interface is installed to the application's data directory.&lt;br /&gt;
&lt;br /&gt;
===Make, Install And Run===&lt;br /&gt;
If you don't have write access to where your KDE4 installation directory, you can install it to a folder in your home directory.&lt;br /&gt;
&lt;br /&gt;
To tell CMake where to install the program, set the &amp;lt;tt&amp;gt;DCMAKE_INSTALL_PREFIX&amp;lt;/tt&amp;gt; switch. You probably just want to install it somewhere local for testing (it's probably a bit silly to go to the effort of installing these tutorials to your KDE directory), so the following might be appropriate:&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 cmake .. -DCMAKE_INSTALL_PREFIX=$HOME&lt;br /&gt;
 make install&lt;br /&gt;
 $HOME/bin/tutorial3&lt;br /&gt;
which will create a KDE-like directory structure in your user's home directory directory and will install the executable to {{path|$HOME/bin/tutorial3}}.&lt;br /&gt;
&lt;br /&gt;
==Moving On==&lt;br /&gt;
Now you can move on to [[Development/Tutorials/Saving_and_loading|saving and loading]].&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Improve</id>
		<title>Template:Improve</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Improve"/>
				<updated>2009-06-28T10:28:35Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: add category to improve message&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Warning|&lt;br /&gt;
'''This section needs improvements''': Please help us to&lt;br /&gt;
''cleanup'' confusing sections and&lt;br /&gt;
''fix sections'' which contain a '''todo''' &lt;br /&gt;
&amp;lt;!--&amp;lt;remove these comments once ParserFunctions are installed?&amp;gt;{{#if:{{{1|}}} |--&amp;gt; &amp;lt;br /&amp;gt; {{{1|}}} &amp;lt;!--}}--&amp;gt; }}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Maintenance Templates]] [[Category:Template]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Improve]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Common.js/search.js</id>
		<title>MediaWiki:Common.js/search.js</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Common.js/search.js"/>
				<updated>2009-05-06T20:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Created page with '//&amp;lt;source lang=&amp;quot;JavaScript&amp;quot;&amp;gt;  /** Change Special:Search to use a drop-down menu *******************************************************   *   *  Description: Change Special:Searc...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;//&amp;lt;source lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/** Change Special:Search to use a drop-down menu *******************************************************&lt;br /&gt;
  *&lt;br /&gt;
  *  Description: Change Special:Search to use a drop-down menu, with the default being&lt;br /&gt;
  *               the internal MediaWiki engine&lt;br /&gt;
  *  Created and maintained by: [[User:Gracenotes]]&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
function SpecialSearchEnhanced() {&lt;br /&gt;
    var createOption = function(site, action, mainQ, addQ, addV) {&lt;br /&gt;
        var opt = document.createElement('option');&lt;br /&gt;
        opt.appendChild(document.createTextNode(site));&lt;br /&gt;
        searchEngines.push([action, mainQ, addQ, addV]);&lt;br /&gt;
        return opt;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.forms['powersearch'])&lt;br /&gt;
        var searchForm = document.forms['powersearch'];&lt;br /&gt;
    if (document.forms['search'])&lt;br /&gt;
        var searchForm = document.forms['search'];&lt;br /&gt;
&lt;br /&gt;
    if (searchForm.lsearchbox) {&lt;br /&gt;
        var searchBox = searchForm.lsearchbox;&lt;br /&gt;
    } else {&lt;br /&gt;
        var searchBox = searchForm.search;&lt;br /&gt;
    }&lt;br /&gt;
    var selectBox = document.createElement('select');&lt;br /&gt;
    selectBox.id = 'searchEngine';&lt;br /&gt;
    searchForm.onsubmit = function() {&lt;br /&gt;
        var optSelected = searchEngines[document.getElementById('searchEngine').selectedIndex];&lt;br /&gt;
        searchForm.action = optSelected[0];&lt;br /&gt;
        searchBox.name = optSelected[1];&lt;br /&gt;
        searchForm.title.value = optSelected[3];&lt;br /&gt;
        searchForm.title.name = optSelected[2];&lt;br /&gt;
    }&lt;br /&gt;
    selectBox.appendChild(createOption('MediaWiki search', wgScriptPath + '/index.php', 'search', 'title', 'Special:Search'));&lt;br /&gt;
    selectBox.appendChild(createOption('Google', 'http://www.google.com/search', 'q', 'sitesearch', 'en.wikipedia.org'));&lt;br /&gt;
    selectBox.appendChild(createOption('Yahoo', 'http://search.yahoo.com/search', 'p', 'vs', 'en.wikipedia.org'));&lt;br /&gt;
    selectBox.appendChild(createOption('Windows Live', 'http://search.live.com/results.aspx', 'q', 'q1', 'site:http://en.wikipedia.org'));&lt;br /&gt;
    selectBox.appendChild(createOption('Wikiwix', 'http://www.wikiwix.com/', 'action', 'lang', 'en'));&lt;br /&gt;
    selectBox.appendChild(createOption('Exalead', 'http://www.exalead.com/wikipedia/results', 'q', 'language', 'en'));&lt;br /&gt;
    searchBox.style.marginLeft = '0px';&lt;br /&gt;
    if (document.getElementById('loadStatus')) {&lt;br /&gt;
        var lStat = document.getElementById('loadStatus');&lt;br /&gt;
    } else {&lt;br /&gt;
        var lStat = searchForm.title;&lt;br /&gt;
    }&lt;br /&gt;
    lStat.parentNode.insertBefore(selectBox, lStat);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var searchEngines = [];&lt;br /&gt;
addOnloadHook(SpecialSearchEnhanced);&lt;br /&gt;
&lt;br /&gt;
//&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Common.js"/>
				<updated>2009-05-06T20:56:17Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
/*&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;*/&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
if (wgPageName == &amp;quot;Special:Search&amp;quot;) //scripts specific to Special:Search&lt;br /&gt;
{&lt;br /&gt;
    importScript(&amp;quot;MediaWiki:Common.js/search.js&amp;quot;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Overrides the function with the same name in http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js&lt;br /&gt;
//Fixes a bug: for the sorting order, takes the whole number, not the number before the second comma. &lt;br /&gt;
//Also, removes spaces. See [[Help:Sorting]].&lt;br /&gt;
function ts_parseFloat(num) {&lt;br /&gt;
	if (!num) return 0;&lt;br /&gt;
     num = removeSpaces(num);&lt;br /&gt;
	num = parseFloat(num.replace(/,/g, &amp;quot;&amp;quot;));&lt;br /&gt;
	return (isNaN(num) ? 0 : num);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Keep spaces in &amp;quot;currency&amp;quot; mode, to sort a range &amp;quot;70 to 80&amp;quot; at 70, not 7080&lt;br /&gt;
function ts_parseFloat_ks(num) {&lt;br /&gt;
	if (!num) return 0;&lt;br /&gt;
	num = parseFloat(num.replace(/,/g, &amp;quot;&amp;quot;));&lt;br /&gt;
	return (isNaN(num) ? 0 : num);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Auxiliary function for function ts_resortTable(lnk)&lt;br /&gt;
function removeSpaces(string) {&lt;br /&gt;
        var tstring = &amp;quot;&amp;quot;;&lt;br /&gt;
        string = '' + string;&lt;br /&gt;
        splitstring = string.split(&amp;quot; &amp;quot;);&lt;br /&gt;
        for(i = 0; i &amp;lt; splitstring.length; i++)&lt;br /&gt;
        tstring += splitstring[i];&lt;br /&gt;
        return tstring;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Overrides the function with the same name in http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js&lt;br /&gt;
//Changes the criteria for various sorting modes, see [[Help:Sorting]].&lt;br /&gt;
//For easy maintenance the difference with wikibits.js is kept limited to a few lines.&lt;br /&gt;
function ts_resortTable(lnk) {&lt;br /&gt;
	// get the span&lt;br /&gt;
	var span = lnk.getElementsByTagName('span')[0];&lt;br /&gt;
&lt;br /&gt;
	var td = lnk.parentNode;&lt;br /&gt;
	var tr = td.parentNode;&lt;br /&gt;
	var column = td.cellIndex;&lt;br /&gt;
&lt;br /&gt;
	var table = tr.parentNode;&lt;br /&gt;
	while (table &amp;amp;&amp;amp; !(table.tagName &amp;amp;&amp;amp; table.tagName.toLowerCase() == 'table'))&lt;br /&gt;
		table = table.parentNode;&lt;br /&gt;
	if (!table) return;&lt;br /&gt;
&lt;br /&gt;
	// Work out a type for the column&lt;br /&gt;
	if (table.rows.length &amp;lt;= 1) return;&lt;br /&gt;
&lt;br /&gt;
	// Skip the first row if that's where the headings are&lt;br /&gt;
	var rowStart = (table.tHead &amp;amp;&amp;amp; table.tHead.rows.length &amp;gt; 0 ? 0 : 1);&lt;br /&gt;
&lt;br /&gt;
	var itm = &amp;quot;&amp;quot;;&lt;br /&gt;
	for (var i = rowStart; i &amp;lt; table.rows.length; i++) {&lt;br /&gt;
		if (table.rows[i].cells.length &amp;gt; column) {&lt;br /&gt;
			itm = ts_getInnerText(table.rows[i].cells[column]);&lt;br /&gt;
			itm = itm.replace(/^[\s\xa0]+/, &amp;quot;&amp;quot;).replace(/[\s\xa0]+$/, &amp;quot;&amp;quot;);&lt;br /&gt;
			if (itm != &amp;quot;&amp;quot;) break;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	sortfn = ts_sort_caseinsensitive;&lt;br /&gt;
     itmns = removeSpaces(itm);&lt;br /&gt;
     if (itmns.match(/^[\d\.\,\-\+]+\%?$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
     if (itmns.match(/^[\d\.\,\-\+]+[eE][\d\-\+]+\%?$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
     if (itmns.match(/^[\d\.\,\-\+]+e[\d\-\+]+\u00d710[\d\-\+]+\%?$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
	if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/))&lt;br /&gt;
		sortfn = ts_sort_date;&lt;br /&gt;
	if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/))&lt;br /&gt;
		sortfn = ts_sort_date;&lt;br /&gt;
	if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/))&lt;br /&gt;
		sortfn = ts_sort_date;&lt;br /&gt;
	if (itm.match(/^[\u00a3$\u20ac\u00a5]/)) // pound dollar euro yen&lt;br /&gt;
		sortfn = ts_sort_currency;&lt;br /&gt;
     if (itm.match(/sm=c$/)) sortfn = ts_sort_currency;&lt;br /&gt;
     if (itm.match(/sm=d$/)) sortfn = ts_sort_date;&lt;br /&gt;
     if (itm.match(/sm=n$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
&lt;br /&gt;
	var reverse = (span.getAttribute(&amp;quot;sortdir&amp;quot;) == 'down');&lt;br /&gt;
&lt;br /&gt;
	var newRows = new Array();&lt;br /&gt;
	for (var j = rowStart; j &amp;lt; table.rows.length; j++) {&lt;br /&gt;
		var row = table.rows[j];&lt;br /&gt;
		var keyText = ts_getInnerText(row.cells[column]);&lt;br /&gt;
		var oldIndex = (reverse ? -j : j);&lt;br /&gt;
&lt;br /&gt;
		newRows[newRows.length] = new Array(row, keyText, oldIndex);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	newRows.sort(sortfn);&lt;br /&gt;
&lt;br /&gt;
	var arrowHTML;&lt;br /&gt;
	if (reverse) {&lt;br /&gt;
			arrowHTML = '&amp;lt;img src=&amp;quot;'+ ts_image_path + ts_image_down + '&amp;quot; alt=&amp;quot;&amp;amp;darr;&amp;quot;/&amp;gt;';&lt;br /&gt;
			newRows.reverse();&lt;br /&gt;
			span.setAttribute('sortdir','up');&lt;br /&gt;
	} else {&lt;br /&gt;
			arrowHTML = '&amp;lt;img src=&amp;quot;'+ ts_image_path + ts_image_up + '&amp;quot; alt=&amp;quot;&amp;amp;uarr;&amp;quot;/&amp;gt;';&lt;br /&gt;
			span.setAttribute('sortdir','down');&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones&lt;br /&gt;
	// don't do sortbottom rows&lt;br /&gt;
	for (var i = 0; i &amp;lt; newRows.length; i++) {&lt;br /&gt;
		if ((&amp;quot; &amp;quot;+newRows[i][0].className+&amp;quot; &amp;quot;).indexOf(&amp;quot; sortbottom &amp;quot;) == -1)&lt;br /&gt;
			table.tBodies[0].appendChild(newRows[i][0]);&lt;br /&gt;
	}&lt;br /&gt;
	// do sortbottom rows only&lt;br /&gt;
	for (var i = 0; i &amp;lt; newRows.length; i++) {&lt;br /&gt;
		if ((&amp;quot; &amp;quot;+newRows[i][0].className+&amp;quot; &amp;quot;).indexOf(&amp;quot; sortbottom &amp;quot;) != -1)&lt;br /&gt;
			table.tBodies[0].appendChild(newRows[i][0]);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// Delete any other arrows there may be showing&lt;br /&gt;
	var spans = getElementsByClassName(tr, &amp;quot;span&amp;quot;, &amp;quot;sortarrow&amp;quot;);&lt;br /&gt;
	for (var i = 0; i &amp;lt; spans.length; i++) {&lt;br /&gt;
		spans[i].innerHTML = '&amp;lt;img src=&amp;quot;'+ ts_image_path + ts_image_none + '&amp;quot; alt=&amp;quot;&amp;amp;darr;&amp;quot;/&amp;gt;';&lt;br /&gt;
	}&lt;br /&gt;
	span.innerHTML = arrowHTML;&lt;br /&gt;
&lt;br /&gt;
	ts_alternate(table);		&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ts_dateToSortKey(date) {	&lt;br /&gt;
	// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX&lt;br /&gt;
	if (date.length &amp;gt; 10) {&lt;br /&gt;
		switch (date.substr(3,3).toLowerCase()) {&lt;br /&gt;
			case &amp;quot;jan&amp;quot;: var month = &amp;quot;01&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;feb&amp;quot;: var month = &amp;quot;02&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;mar&amp;quot;: var month = &amp;quot;03&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;apr&amp;quot;: var month = &amp;quot;04&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;may&amp;quot;: var month = &amp;quot;05&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;jun&amp;quot;: var month = &amp;quot;06&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;jul&amp;quot;: var month = &amp;quot;07&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;aug&amp;quot;: var month = &amp;quot;08&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;sep&amp;quot;: var month = &amp;quot;09&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;oct&amp;quot;: var month = &amp;quot;10&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;nov&amp;quot;: var month = &amp;quot;11&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;dec&amp;quot;: var month = &amp;quot;12&amp;quot;; break;&lt;br /&gt;
			// default: var month = &amp;quot;00&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		return date.substr(7,4)+month+date.substr(0,2);&lt;br /&gt;
	} else if (date.length == 10) {&lt;br /&gt;
			return date.substr(6,4)+date.substr(3,2)+date.substr(0,2);&lt;br /&gt;
	} else if (date.length == 8) {&lt;br /&gt;
		yr = date.substr(6,2);&lt;br /&gt;
		if (parseInt(yr) &amp;lt; 50) { &lt;br /&gt;
			yr = '20'+yr; &lt;br /&gt;
		} else { &lt;br /&gt;
			yr = '19'+yr; &lt;br /&gt;
		}&lt;br /&gt;
			return yr+date.substr(3,2)+date.substr(0,2);&lt;br /&gt;
	}&lt;br /&gt;
	return &amp;quot;00000000&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ts_sort_currency(a,b) {&lt;br /&gt;
	var aa = ts_parseFloat_ks(a[1].replace(/[\u00a3$\u20ac\u00a5a-zA-Z]/g,''));&lt;br /&gt;
	var bb = ts_parseFloat_ks(b[1].replace(/[\u00a3$\u20ac\u00a5a-zA-Z]/g,''));&lt;br /&gt;
	return (aa != bb ? aa - bb : a[2] - b[2]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 /** Collapsible tables *********************************************************&lt;br /&gt;
  *&lt;br /&gt;
  *  Description: Allows tables to be collapsed, showing only the header. See&lt;br /&gt;
  *               [[Wikipedia:NavFrame]].&lt;br /&gt;
  *  Maintainer on Wikipedia: [[User:R. Koot]]&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
 var autoCollapse = 2;&lt;br /&gt;
 var collapseCaption = &amp;quot;hide&amp;quot;;&lt;br /&gt;
 var expandCaption = &amp;quot;show&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 function hasClass( element, className ) {&lt;br /&gt;
  var Classes = element.className.split( &amp;quot; &amp;quot; );&lt;br /&gt;
  for ( var i = 0; i &amp;lt; Classes.length; i++ ) {&lt;br /&gt;
    if ( Classes[i] == className ) {&lt;br /&gt;
      return ( true );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return ( false );&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 function collapseTable( tableIndex )&lt;br /&gt;
 {&lt;br /&gt;
     var Button = document.getElementById( &amp;quot;collapseButton&amp;quot; + tableIndex );&lt;br /&gt;
     var Table = document.getElementById( &amp;quot;collapsibleTable&amp;quot; + tableIndex );&lt;br /&gt;
 &lt;br /&gt;
     if ( !Table || !Button ) {&lt;br /&gt;
         return false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     var Rows = Table.getElementsByTagName( &amp;quot;tr&amp;quot; ); &lt;br /&gt;
 &lt;br /&gt;
     if ( Button.firstChild.data == collapseCaption ) {&lt;br /&gt;
         for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
             Rows[i].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
         }&lt;br /&gt;
         Button.firstChild.data = expandCaption;&lt;br /&gt;
     } else {&lt;br /&gt;
         for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
             Rows[i].style.display = Rows[0].style.display;&lt;br /&gt;
         }&lt;br /&gt;
         Button.firstChild.data = collapseCaption;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function createCollapseButtons()&lt;br /&gt;
 {&lt;br /&gt;
     var tableIndex = 0;&lt;br /&gt;
     var NavigationBoxes = new Object();&lt;br /&gt;
     var Tables = document.getElementsByTagName( &amp;quot;table&amp;quot; );&lt;br /&gt;
 &lt;br /&gt;
     for ( var i = 0; i &amp;lt; Tables.length; i++ ) {&lt;br /&gt;
         if ( hasClass( Tables[i], &amp;quot;collapsible&amp;quot; ) ) {&lt;br /&gt;
             NavigationBoxes[ tableIndex ] = Tables[i];&lt;br /&gt;
             Tables[i].setAttribute( &amp;quot;id&amp;quot;, &amp;quot;collapsibleTable&amp;quot; + tableIndex );&lt;br /&gt;
 &lt;br /&gt;
             var Button     = document.createElement( &amp;quot;span&amp;quot; );&lt;br /&gt;
             var ButtonLink = document.createElement( &amp;quot;a&amp;quot; );&lt;br /&gt;
             var ButtonText = document.createTextNode( collapseCaption );&lt;br /&gt;
 &lt;br /&gt;
             Button.style.styleFloat = &amp;quot;right&amp;quot;;&lt;br /&gt;
             Button.style.cssFloat = &amp;quot;right&amp;quot;;&lt;br /&gt;
             Button.style.fontWeight = &amp;quot;normal&amp;quot;;&lt;br /&gt;
             Button.style.textAlign = &amp;quot;right&amp;quot;;&lt;br /&gt;
             Button.style.width = &amp;quot;6em&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             ButtonLink.setAttribute( &amp;quot;id&amp;quot;, &amp;quot;collapseButton&amp;quot; + tableIndex );&lt;br /&gt;
             ButtonLink.setAttribute( &amp;quot;href&amp;quot;, &amp;quot;javascript:collapseTable(&amp;quot; + tableIndex + &amp;quot;);&amp;quot; );&lt;br /&gt;
             ButtonLink.appendChild( ButtonText );&lt;br /&gt;
 &lt;br /&gt;
             Button.appendChild( document.createTextNode( &amp;quot;[&amp;quot; ) );&lt;br /&gt;
             Button.appendChild( ButtonLink );&lt;br /&gt;
             Button.appendChild( document.createTextNode( &amp;quot;]&amp;quot; ) );&lt;br /&gt;
 &lt;br /&gt;
             var Header = Tables[i].getElementsByTagName( &amp;quot;tr&amp;quot; )[0].getElementsByTagName( &amp;quot;th&amp;quot; )[0];&lt;br /&gt;
             /* only add button and increment count if there is a header row to work with */&lt;br /&gt;
             if (Header) {&lt;br /&gt;
                 Header.insertBefore( Button, Header.childNodes[0] );&lt;br /&gt;
                 tableIndex++;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     for ( var i = 0;  i &amp;lt; tableIndex; i++ ) {&lt;br /&gt;
         if ( hasClass( NavigationBoxes[i], &amp;quot;collapsed&amp;quot; ) || ( tableIndex &amp;gt;= autoCollapse &amp;amp;&amp;amp; hasClass( NavigationBoxes[i], &amp;quot;autocollapse&amp;quot; ) ) ) {&lt;br /&gt;
             collapseTable( i );&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 addOnloadHook( createCollapseButtons );&lt;br /&gt;
&lt;br /&gt;
//Shuffle for election candidates&lt;br /&gt;
function dshuf(){&lt;br /&gt;
                var shufsets=new Object()&lt;br /&gt;
                var rx=new RegExp('dshuf'+'\\s+(dshufset\\d+)', 'i') &lt;br /&gt;
                var divs=document.getElementsByTagName(&amp;quot;div&amp;quot;)&lt;br /&gt;
                for (var i=0; i&amp;lt;divs.length; i++){&lt;br /&gt;
                        if (rx.test(divs[i].className)){&lt;br /&gt;
                                if (typeof shufsets[RegExp.$1]==&amp;quot;undefined&amp;quot;){ &lt;br /&gt;
                                        shufsets[RegExp.$1]=new Object() &lt;br /&gt;
                                        shufsets[RegExp.$1].inner=[] &lt;br /&gt;
                                        shufsets[RegExp.$1].member=[]&lt;br /&gt;
                                }&lt;br /&gt;
                                        shufsets[RegExp.$1].inner.push(divs[i].innerHTML) &lt;br /&gt;
                                        shufsets[RegExp.$1].member.push(divs[i]) &lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
                for (shufset in shufsets){&lt;br /&gt;
                        shufsets[shufset].inner.sort(function() {return 0.5 - Math.random()})&lt;br /&gt;
                        for (var i=0; i&amp;lt;shufsets[shufset].member.length; i++){&lt;br /&gt;
                                shufsets[shufset].member[i].innerHTML=shufsets[shufset].inner[i]&lt;br /&gt;
                                shufsets[shufset].member[i].style.display=&amp;quot;block&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addOnloadHook(dshuf);&lt;br /&gt;
&lt;br /&gt;
/*************&lt;br /&gt;
*** AJAX transclusion table &amp;lt;http://meta.wikimedia.org/wiki/User:Pathoschild/Scripts/AJAX_transclusion_table&amp;gt;&lt;br /&gt;
*** by [[m:user:Pathoschild]]&lt;br /&gt;
*************/&lt;br /&gt;
function attLoader() {&lt;br /&gt;
	if(getElementsByClassName(document.getElementsByTagName('body')[0],'table','attable').length) {&lt;br /&gt;
	        document.write('&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;'&lt;br /&gt;
	          + 'http://meta.wikimedia.org/w/index.php?title=User:Pathoschild/Scripts/AJAX_transclusion_table.js' &lt;br /&gt;
	          + '&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;');&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
addOnloadHook(attLoader);&lt;br /&gt;
&lt;br /&gt;
/** JSconfig ************&lt;br /&gt;
 * Global configuration options to enable/disable and configure&lt;br /&gt;
 * specific script features from [[MediaWiki:Common.js]] and&lt;br /&gt;
 * [[MediaWiki:Monobook.js]]&lt;br /&gt;
 * This framework adds config options (saved as cookies) to [[Special:Preferences]]&lt;br /&gt;
 * For a more permanent change you can override the default settings in your &lt;br /&gt;
 * [[Special:Mypage/monobook.js]]&lt;br /&gt;
 * for Example: JSconfig.keys[loadAutoInformationTemplate] = false;&lt;br /&gt;
 *&lt;br /&gt;
 *  Maintainer: [[User:Dschwen]]&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
var JSconfig =&lt;br /&gt;
{&lt;br /&gt;
 prefix : 'jsconfig_',&lt;br /&gt;
 keys : {},&lt;br /&gt;
 meta : {},&lt;br /&gt;
 &lt;br /&gt;
 //&lt;br /&gt;
 // Register a new configuration item&lt;br /&gt;
 //  * name          : String, internal name&lt;br /&gt;
 //  * default_value : String or Boolean (type determines configuration widget)&lt;br /&gt;
 //  * description   : String, text appearing next to the widget in the preferences&lt;br /&gt;
 //  * prefpage      : Integer (optional), section in the preferences to insert the widget:&lt;br /&gt;
 //                     0 : User profile&lt;br /&gt;
 //                     1 : Skin&lt;br /&gt;
 //                     2 : Math&lt;br /&gt;
 //                     3 : Files&lt;br /&gt;
 //                     4 : Date and time&lt;br /&gt;
 //                     5 : Editing&lt;br /&gt;
 //                     6 : Recent changes&lt;br /&gt;
 //                     7 : Watchlist&lt;br /&gt;
 //                     8 : Search&lt;br /&gt;
 //                     9 : Misc&lt;br /&gt;
 //&lt;br /&gt;
 // Access keys through JSconfig.keys[name]&lt;br /&gt;
 //&lt;br /&gt;
 registerKey : function( name, default_value, description, prefpage )&lt;br /&gt;
 {&lt;br /&gt;
  if( typeof(JSconfig.keys[name]) == 'undefined' ) &lt;br /&gt;
   JSconfig.keys[name] = default_value;&lt;br /&gt;
  else {&lt;br /&gt;
 &lt;br /&gt;
   // all cookies are read as strings, &lt;br /&gt;
   // convert to the type of the default value&lt;br /&gt;
   switch( typeof(default_value) )&lt;br /&gt;
   {&lt;br /&gt;
    case 'boolean' : JSconfig.keys[name] = ( JSconfig.keys[name] == 'true' ); break;&lt;br /&gt;
    case 'number'  : JSconfig.keys[name] = JSconfig.keys[name]/1; break;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  JSconfig.meta[name] = { 'description' : description, 'page' : prefpage || 0, 'default_value' : default_value };&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 readCookies : function()&lt;br /&gt;
 {&lt;br /&gt;
  var cookies = document.cookie.split(&amp;quot;; &amp;quot;);&lt;br /&gt;
  var p =JSconfig.prefix.length;&lt;br /&gt;
  var i;&lt;br /&gt;
 &lt;br /&gt;
  for( var key in cookies )&lt;br /&gt;
  {&lt;br /&gt;
   if( cookies[key].substring(0,p) == JSconfig.prefix )&lt;br /&gt;
   {&lt;br /&gt;
    i = cookies[key].indexOf('=');&lt;br /&gt;
    //alert( cookies[key] + ',' + key + ',' + cookies[key].substring(p,i) );&lt;br /&gt;
    JSconfig.keys[cookies[key].substring(p,i)] = cookies[key].substring(i+1);&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 writeCookies : function()&lt;br /&gt;
 {&lt;br /&gt;
  for( var key in JSconfig.keys )&lt;br /&gt;
   document.cookie = JSconfig.prefix + key + '=' + JSconfig.keys[key] + '; path=/; expires=Thu, 2 Aug 2009 10:10:10 UTC';&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 evaluateForm : function()&lt;br /&gt;
 {&lt;br /&gt;
  var w_ctrl,wt;&lt;br /&gt;
  //alert('about to save JSconfig');&lt;br /&gt;
  for( var key in JSconfig.meta ) {&lt;br /&gt;
   w_ctrl = document.getElementById( JSconfig.prefix + key )&lt;br /&gt;
   if( w_ctrl ) &lt;br /&gt;
   {&lt;br /&gt;
    wt = typeof( JSconfig.meta[key].default_value );&lt;br /&gt;
    switch( wt ) {&lt;br /&gt;
     case 'boolean' : JSconfig.keys[key] = w_ctrl.checked; break;&lt;br /&gt;
     case 'string' : JSconfig.keys[key] = w_ctrl.value; break;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  JSconfig.writeCookies();&lt;br /&gt;
  return true;&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 setUpForm : function()&lt;br /&gt;
 { &lt;br /&gt;
  var prefChild = document.getElementById('preferences');&lt;br /&gt;
  if( !prefChild ) return;&lt;br /&gt;
  prefChild = prefChild.childNodes;&lt;br /&gt;
 &lt;br /&gt;
  //&lt;br /&gt;
  // make a list of all preferences sections&lt;br /&gt;
  //&lt;br /&gt;
  var tabs = new Array;&lt;br /&gt;
  var len = prefChild.length;&lt;br /&gt;
  for( var key = 0; key &amp;lt; len; key++ ) {&lt;br /&gt;
   if( prefChild[key].tagName &amp;amp;&amp;amp;&lt;br /&gt;
       prefChild[key].tagName.toLowerCase() == 'fieldset' ) &lt;br /&gt;
    tabs.push(prefChild[key]);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  //&lt;br /&gt;
  // Create Widgets for all registered config keys&lt;br /&gt;
  //&lt;br /&gt;
  var w_div, w_label, w_ctrl, wt;&lt;br /&gt;
  for( var key in JSconfig.meta ) {&lt;br /&gt;
   w_div = document.createElement( 'DIV' );&lt;br /&gt;
 &lt;br /&gt;
   w_label = document.createElement( 'LABEL' );&lt;br /&gt;
   w_label.appendChild( document.createTextNode( JSconfig.meta[key].description ) )&lt;br /&gt;
   w_label.htmlFor = JSconfig.prefix + key;&lt;br /&gt;
 &lt;br /&gt;
   wt = typeof( JSconfig.meta[key].default_value );&lt;br /&gt;
 &lt;br /&gt;
   w_ctrl = document.createElement( 'INPUT' );&lt;br /&gt;
   w_ctrl.id = JSconfig.prefix + key;&lt;br /&gt;
 &lt;br /&gt;
   // before insertion into the DOM tree&lt;br /&gt;
   switch( wt ) {&lt;br /&gt;
    case 'boolean' : w_ctrl.type = 'checkbox'; break;&lt;br /&gt;
    case 'string'  : w_ctrl.type = 'text'; break;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   w_div.appendChild( w_label );&lt;br /&gt;
   w_div.appendChild( w_ctrl );&lt;br /&gt;
   tabs[JSconfig.meta[key].page].appendChild( w_div );&lt;br /&gt;
 &lt;br /&gt;
   // after insertion into the DOM tree&lt;br /&gt;
   switch( wt ) {&lt;br /&gt;
    case 'boolean' : w_ctrl.defaultChecked = w_ctrl.checked = JSconfig.keys[key]; break;&lt;br /&gt;
    case 'string' : w_ctrl.defaultValue = w_ctrl.value = JSconfig.keys[key]; break;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
  addHandler(document.getElementById('preferences').parentNode, 'submit', JSconfig.evaluateForm );&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
JSconfig.readCookies();&lt;br /&gt;
addOnloadHook(JSconfig.setUpForm);&lt;br /&gt;
&lt;br /&gt;
/*&amp;lt;/source&amp;gt;*/&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Googlesearchheader</id>
		<title>MediaWiki:Googlesearchheader</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Googlesearchheader"/>
				<updated>2009-05-06T19:13:11Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Created page with '== Try Google Search: =='&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Try Google Search: ==&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_TechBase:Copyrights</id>
		<title>KDE TechBase:Copyrights</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_TechBase:Copyrights"/>
				<updated>2009-05-05T21:37:49Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If not stated explicitly otherwise on the respective page, the contents of this site is '''dual licensed''' under the [http://www.gnu.org/licenses/fdl.txt GNU Free Documentation License 1.2] and the [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike License].&lt;br /&gt;
&lt;br /&gt;
== GNU Free Documentation License ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                GNU Free Documentation License&lt;br /&gt;
                  Version 1.2, November 2002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.&lt;br /&gt;
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;
 Everyone is permitted to copy and distribute verbatim copies&lt;br /&gt;
 of this license document, but changing it is not allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
0. PREAMBLE&lt;br /&gt;
&lt;br /&gt;
The purpose of this License is to make a manual, textbook, or other&lt;br /&gt;
functional and useful document &amp;quot;free&amp;quot; in the sense of freedom: to&lt;br /&gt;
assure everyone the effective freedom to copy and redistribute it,&lt;br /&gt;
with or without modifying it, either commercially or noncommercially.&lt;br /&gt;
Secondarily, this License preserves for the author and publisher a way&lt;br /&gt;
to get credit for their work, while not being considered responsible&lt;br /&gt;
for modifications made by others.&lt;br /&gt;
&lt;br /&gt;
This License is a kind of &amp;quot;copyleft&amp;quot;, which means that derivative&lt;br /&gt;
works of the document must themselves be free in the same sense.  It&lt;br /&gt;
complements the GNU General Public License, which is a copyleft&lt;br /&gt;
license designed for free software.&lt;br /&gt;
&lt;br /&gt;
We have designed this License in order to use it for manuals for free&lt;br /&gt;
software, because free software needs free documentation: a free&lt;br /&gt;
program should come with manuals providing the same freedoms that the&lt;br /&gt;
software does.  But this License is not limited to software manuals;&lt;br /&gt;
it can be used for any textual work, regardless of subject matter or&lt;br /&gt;
whether it is published as a printed book.  We recommend this License&lt;br /&gt;
principally for works whose purpose is instruction or reference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. APPLICABILITY AND DEFINITIONS&lt;br /&gt;
&lt;br /&gt;
This License applies to any manual or other work, in any medium, that&lt;br /&gt;
contains a notice placed by the copyright holder saying it can be&lt;br /&gt;
distributed under the terms of this License.  Such a notice grants a&lt;br /&gt;
world-wide, royalty-free license, unlimited in duration, to use that&lt;br /&gt;
work under the conditions stated herein.  The &amp;quot;Document&amp;quot;, below,&lt;br /&gt;
refers to any such manual or work.  Any member of the public is a&lt;br /&gt;
licensee, and is addressed as &amp;quot;you&amp;quot;.  You accept the license if you&lt;br /&gt;
copy, modify or distribute the work in a way requiring permission&lt;br /&gt;
under copyright law.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Modified Version&amp;quot; of the Document means any work containing the&lt;br /&gt;
Document or a portion of it, either copied verbatim, or with&lt;br /&gt;
modifications and/or translated into another language.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Secondary Section&amp;quot; is a named appendix or a front-matter section of&lt;br /&gt;
the Document that deals exclusively with the relationship of the&lt;br /&gt;
publishers or authors of the Document to the Document's overall subject&lt;br /&gt;
(or to related matters) and contains nothing that could fall directly&lt;br /&gt;
within that overall subject.  (Thus, if the Document is in part a&lt;br /&gt;
textbook of mathematics, a Secondary Section may not explain any&lt;br /&gt;
mathematics.)  The relationship could be a matter of historical&lt;br /&gt;
connection with the subject or with related matters, or of legal,&lt;br /&gt;
commercial, philosophical, ethical or political position regarding&lt;br /&gt;
them.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Invariant Sections&amp;quot; are certain Secondary Sections whose titles&lt;br /&gt;
are designated, as being those of Invariant Sections, in the notice&lt;br /&gt;
that says that the Document is released under this License.  If a&lt;br /&gt;
section does not fit the above definition of Secondary then it is not&lt;br /&gt;
allowed to be designated as Invariant.  The Document may contain zero&lt;br /&gt;
Invariant Sections.  If the Document does not identify any Invariant&lt;br /&gt;
Sections then there are none.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cover Texts&amp;quot; are certain short passages of text that are listed,&lt;br /&gt;
as Front-Cover Texts or Back-Cover Texts, in the notice that says that&lt;br /&gt;
the Document is released under this License.  A Front-Cover Text may&lt;br /&gt;
be at most 5 words, and a Back-Cover Text may be at most 25 words.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Transparent&amp;quot; copy of the Document means a machine-readable copy,&lt;br /&gt;
represented in a format whose specification is available to the&lt;br /&gt;
general public, that is suitable for revising the document&lt;br /&gt;
straightforwardly with generic text editors or (for images composed of&lt;br /&gt;
pixels) generic paint programs or (for drawings) some widely available&lt;br /&gt;
drawing editor, and that is suitable for input to text formatters or&lt;br /&gt;
for automatic translation to a variety of formats suitable for input&lt;br /&gt;
to text formatters.  A copy made in an otherwise Transparent file&lt;br /&gt;
format whose markup, or absence of markup, has been arranged to thwart&lt;br /&gt;
or discourage subsequent modification by readers is not Transparent.&lt;br /&gt;
An image format is not Transparent if used for any substantial amount&lt;br /&gt;
of text.  A copy that is not &amp;quot;Transparent&amp;quot; is called &amp;quot;Opaque&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Examples of suitable formats for Transparent copies include plain&lt;br /&gt;
ASCII without markup, Texinfo input format, LaTeX input format, SGML&lt;br /&gt;
or XML using a publicly available DTD, and standard-conforming simple&lt;br /&gt;
HTML, PostScript or PDF designed for human modification.  Examples of&lt;br /&gt;
transparent image formats include PNG, XCF and JPG.  Opaque formats&lt;br /&gt;
include proprietary formats that can be read and edited only by&lt;br /&gt;
proprietary word processors, SGML or XML for which the DTD and/or&lt;br /&gt;
processing tools are not generally available, and the&lt;br /&gt;
machine-generated HTML, PostScript or PDF produced by some word&lt;br /&gt;
processors for output purposes only.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Title Page&amp;quot; means, for a printed book, the title page itself,&lt;br /&gt;
plus such following pages as are needed to hold, legibly, the material&lt;br /&gt;
this License requires to appear in the title page.  For works in&lt;br /&gt;
formats which do not have any title page as such, &amp;quot;Title Page&amp;quot; means&lt;br /&gt;
the text near the most prominent appearance of the work's title,&lt;br /&gt;
preceding the beginning of the body of the text.&lt;br /&gt;
&lt;br /&gt;
A section &amp;quot;Entitled XYZ&amp;quot; means a named subunit of the Document whose&lt;br /&gt;
title either is precisely XYZ or contains XYZ in parentheses following&lt;br /&gt;
text that translates XYZ in another language.  (Here XYZ stands for a&lt;br /&gt;
specific section name mentioned below, such as &amp;quot;Acknowledgements&amp;quot;,&lt;br /&gt;
&amp;quot;Dedications&amp;quot;, &amp;quot;Endorsements&amp;quot;, or &amp;quot;History&amp;quot;.)  To &amp;quot;Preserve the Title&amp;quot;&lt;br /&gt;
of such a section when you modify the Document means that it remains a&lt;br /&gt;
section &amp;quot;Entitled XYZ&amp;quot; according to this definition.&lt;br /&gt;
&lt;br /&gt;
The Document may include Warranty Disclaimers next to the notice which&lt;br /&gt;
states that this License applies to the Document.  These Warranty&lt;br /&gt;
Disclaimers are considered to be included by reference in this&lt;br /&gt;
License, but only as regards disclaiming warranties: any other&lt;br /&gt;
implication that these Warranty Disclaimers may have is void and has&lt;br /&gt;
no effect on the meaning of this License.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. VERBATIM COPYING&lt;br /&gt;
&lt;br /&gt;
You may copy and distribute the Document in any medium, either&lt;br /&gt;
commercially or noncommercially, provided that this License, the&lt;br /&gt;
copyright notices, and the license notice saying this License applies&lt;br /&gt;
to the Document are reproduced in all copies, and that you add no other&lt;br /&gt;
conditions whatsoever to those of this License.  You may not use&lt;br /&gt;
technical measures to obstruct or control the reading or further&lt;br /&gt;
copying of the copies you make or distribute.  However, you may accept&lt;br /&gt;
compensation in exchange for copies.  If you distribute a large enough&lt;br /&gt;
number of copies you must also follow the conditions in section 3.&lt;br /&gt;
&lt;br /&gt;
You may also lend copies, under the same conditions stated above, and&lt;br /&gt;
you may publicly display copies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. COPYING IN QUANTITY&lt;br /&gt;
&lt;br /&gt;
If you publish printed copies (or copies in media that commonly have&lt;br /&gt;
printed covers) of the Document, numbering more than 100, and the&lt;br /&gt;
Document's license notice requires Cover Texts, you must enclose the&lt;br /&gt;
copies in covers that carry, clearly and legibly, all these Cover&lt;br /&gt;
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on&lt;br /&gt;
the back cover.  Both covers must also clearly and legibly identify&lt;br /&gt;
you as the publisher of these copies.  The front cover must present&lt;br /&gt;
the full title with all words of the title equally prominent and&lt;br /&gt;
visible.  You may add other material on the covers in addition.&lt;br /&gt;
Copying with changes limited to the covers, as long as they preserve&lt;br /&gt;
the title of the Document and satisfy these conditions, can be treated&lt;br /&gt;
as verbatim copying in other respects.&lt;br /&gt;
&lt;br /&gt;
If the required texts for either cover are too voluminous to fit&lt;br /&gt;
legibly, you should put the first ones listed (as many as fit&lt;br /&gt;
reasonably) on the actual cover, and continue the rest onto adjacent&lt;br /&gt;
pages.&lt;br /&gt;
&lt;br /&gt;
If you publish or distribute Opaque copies of the Document numbering&lt;br /&gt;
more than 100, you must either include a machine-readable Transparent&lt;br /&gt;
copy along with each Opaque copy, or state in or with each Opaque copy&lt;br /&gt;
a computer-network location from which the general network-using&lt;br /&gt;
public has access to download using public-standard network protocols&lt;br /&gt;
a complete Transparent copy of the Document, free of added material.&lt;br /&gt;
If you use the latter option, you must take reasonably prudent steps,&lt;br /&gt;
when you begin distribution of Opaque copies in quantity, to ensure&lt;br /&gt;
that this Transparent copy will remain thus accessible at the stated&lt;br /&gt;
location until at least one year after the last time you distribute an&lt;br /&gt;
Opaque copy (directly or through your agents or retailers) of that&lt;br /&gt;
edition to the public.&lt;br /&gt;
&lt;br /&gt;
It is requested, but not required, that you contact the authors of the&lt;br /&gt;
Document well before redistributing any large number of copies, to give&lt;br /&gt;
them a chance to provide you with an updated version of the Document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. MODIFICATIONS&lt;br /&gt;
&lt;br /&gt;
You may copy and distribute a Modified Version of the Document under&lt;br /&gt;
the conditions of sections 2 and 3 above, provided that you release&lt;br /&gt;
the Modified Version under precisely this License, with the Modified&lt;br /&gt;
Version filling the role of the Document, thus licensing distribution&lt;br /&gt;
and modification of the Modified Version to whoever possesses a copy&lt;br /&gt;
of it.  In addition, you must do these things in the Modified Version:&lt;br /&gt;
&lt;br /&gt;
A. Use in the Title Page (and on the covers, if any) a title distinct&lt;br /&gt;
   from that of the Document, and from those of previous versions&lt;br /&gt;
   (which should, if there were any, be listed in the History section&lt;br /&gt;
   of the Document).  You may use the same title as a previous version&lt;br /&gt;
   if the original publisher of that version gives permission.&lt;br /&gt;
B. List on the Title Page, as authors, one or more persons or entities&lt;br /&gt;
   responsible for authorship of the modifications in the Modified&lt;br /&gt;
   Version, together with at least five of the principal authors of the&lt;br /&gt;
   Document (all of its principal authors, if it has fewer than five),&lt;br /&gt;
   unless they release you from this requirement.&lt;br /&gt;
C. State on the Title page the name of the publisher of the&lt;br /&gt;
   Modified Version, as the publisher.&lt;br /&gt;
D. Preserve all the copyright notices of the Document.&lt;br /&gt;
E. Add an appropriate copyright notice for your modifications&lt;br /&gt;
   adjacent to the other copyright notices.&lt;br /&gt;
F. Include, immediately after the copyright notices, a license notice&lt;br /&gt;
   giving the public permission to use the Modified Version under the&lt;br /&gt;
   terms of this License, in the form shown in the Addendum below.&lt;br /&gt;
G. Preserve in that license notice the full lists of Invariant Sections&lt;br /&gt;
   and required Cover Texts given in the Document's license notice.&lt;br /&gt;
H. Include an unaltered copy of this License.&lt;br /&gt;
I. Preserve the section Entitled &amp;quot;History&amp;quot;, Preserve its Title, and add&lt;br /&gt;
   to it an item stating at least the title, year, new authors, and&lt;br /&gt;
   publisher of the Modified Version as given on the Title Page.  If&lt;br /&gt;
   there is no section Entitled &amp;quot;History&amp;quot; in the Document, create one&lt;br /&gt;
   stating the title, year, authors, and publisher of the Document as&lt;br /&gt;
   given on its Title Page, then add an item describing the Modified&lt;br /&gt;
   Version as stated in the previous sentence.&lt;br /&gt;
J. Preserve the network location, if any, given in the Document for&lt;br /&gt;
   public access to a Transparent copy of the Document, and likewise&lt;br /&gt;
   the network locations given in the Document for previous versions&lt;br /&gt;
   it was based on.  These may be placed in the &amp;quot;History&amp;quot; section.&lt;br /&gt;
   You may omit a network location for a work that was published at&lt;br /&gt;
   least four years before the Document itself, or if the original&lt;br /&gt;
   publisher of the version it refers to gives permission.&lt;br /&gt;
K. For any section Entitled &amp;quot;Acknowledgements&amp;quot; or &amp;quot;Dedications&amp;quot;,&lt;br /&gt;
   Preserve the Title of the section, and preserve in the section all&lt;br /&gt;
   the substance and tone of each of the contributor acknowledgements&lt;br /&gt;
   and/or dedications given therein.&lt;br /&gt;
L. Preserve all the Invariant Sections of the Document,&lt;br /&gt;
   unaltered in their text and in their titles.  Section numbers&lt;br /&gt;
   or the equivalent are not considered part of the section titles.&lt;br /&gt;
M. Delete any section Entitled &amp;quot;Endorsements&amp;quot;.  Such a section&lt;br /&gt;
   may not be included in the Modified Version.&lt;br /&gt;
N. Do not retitle any existing section to be Entitled &amp;quot;Endorsements&amp;quot;&lt;br /&gt;
   or to conflict in title with any Invariant Section.&lt;br /&gt;
O. Preserve any Warranty Disclaimers.&lt;br /&gt;
&lt;br /&gt;
If the Modified Version includes new front-matter sections or&lt;br /&gt;
appendices that qualify as Secondary Sections and contain no material&lt;br /&gt;
copied from the Document, you may at your option designate some or all&lt;br /&gt;
of these sections as invariant.  To do this, add their titles to the&lt;br /&gt;
list of Invariant Sections in the Modified Version's license notice.&lt;br /&gt;
These titles must be distinct from any other section titles.&lt;br /&gt;
&lt;br /&gt;
You may add a section Entitled &amp;quot;Endorsements&amp;quot;, provided it contains&lt;br /&gt;
nothing but endorsements of your Modified Version by various&lt;br /&gt;
parties--for example, statements of peer review or that the text has&lt;br /&gt;
been approved by an organization as the authoritative definition of a&lt;br /&gt;
standard.&lt;br /&gt;
&lt;br /&gt;
You may add a passage of up to five words as a Front-Cover Text, and a&lt;br /&gt;
passage of up to 25 words as a Back-Cover Text, to the end of the list&lt;br /&gt;
of Cover Texts in the Modified Version.  Only one passage of&lt;br /&gt;
Front-Cover Text and one of Back-Cover Text may be added by (or&lt;br /&gt;
through arrangements made by) any one entity.  If the Document already&lt;br /&gt;
includes a cover text for the same cover, previously added by you or&lt;br /&gt;
by arrangement made by the same entity you are acting on behalf of,&lt;br /&gt;
you may not add another; but you may replace the old one, on explicit&lt;br /&gt;
permission from the previous publisher that added the old one.&lt;br /&gt;
&lt;br /&gt;
The author(s) and publisher(s) of the Document do not by this License&lt;br /&gt;
give permission to use their names for publicity for or to assert or&lt;br /&gt;
imply endorsement of any Modified Version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. COMBINING DOCUMENTS&lt;br /&gt;
&lt;br /&gt;
You may combine the Document with other documents released under this&lt;br /&gt;
License, under the terms defined in section 4 above for modified&lt;br /&gt;
versions, provided that you include in the combination all of the&lt;br /&gt;
Invariant Sections of all of the original documents, unmodified, and&lt;br /&gt;
list them all as Invariant Sections of your combined work in its&lt;br /&gt;
license notice, and that you preserve all their Warranty Disclaimers.&lt;br /&gt;
&lt;br /&gt;
The combined work need only contain one copy of this License, and&lt;br /&gt;
multiple identical Invariant Sections may be replaced with a single&lt;br /&gt;
copy.  If there are multiple Invariant Sections with the same name but&lt;br /&gt;
different contents, make the title of each such section unique by&lt;br /&gt;
adding at the end of it, in parentheses, the name of the original&lt;br /&gt;
author or publisher of that section if known, or else a unique number.&lt;br /&gt;
Make the same adjustment to the section titles in the list of&lt;br /&gt;
Invariant Sections in the license notice of the combined work.&lt;br /&gt;
&lt;br /&gt;
In the combination, you must combine any sections Entitled &amp;quot;History&amp;quot;&lt;br /&gt;
in the various original documents, forming one section Entitled&lt;br /&gt;
&amp;quot;History&amp;quot;; likewise combine any sections Entitled &amp;quot;Acknowledgements&amp;quot;,&lt;br /&gt;
and any sections Entitled &amp;quot;Dedications&amp;quot;.  You must delete all sections&lt;br /&gt;
Entitled &amp;quot;Endorsements&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. COLLECTIONS OF DOCUMENTS&lt;br /&gt;
&lt;br /&gt;
You may make a collection consisting of the Document and other documents&lt;br /&gt;
released under this License, and replace the individual copies of this&lt;br /&gt;
License in the various documents with a single copy that is included in&lt;br /&gt;
the collection, provided that you follow the rules of this License for&lt;br /&gt;
verbatim copying of each of the documents in all other respects.&lt;br /&gt;
&lt;br /&gt;
You may extract a single document from such a collection, and distribute&lt;br /&gt;
it individually under this License, provided you insert a copy of this&lt;br /&gt;
License into the extracted document, and follow this License in all&lt;br /&gt;
other respects regarding verbatim copying of that document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. AGGREGATION WITH INDEPENDENT WORKS&lt;br /&gt;
&lt;br /&gt;
A compilation of the Document or its derivatives with other separate&lt;br /&gt;
and independent documents or works, in or on a volume of a storage or&lt;br /&gt;
distribution medium, is called an &amp;quot;aggregate&amp;quot; if the copyright&lt;br /&gt;
resulting from the compilation is not used to limit the legal rights&lt;br /&gt;
of the compilation's users beyond what the individual works permit.&lt;br /&gt;
When the Document is included in an aggregate, this License does not&lt;br /&gt;
apply to the other works in the aggregate which are not themselves&lt;br /&gt;
derivative works of the Document.&lt;br /&gt;
&lt;br /&gt;
If the Cover Text requirement of section 3 is applicable to these&lt;br /&gt;
copies of the Document, then if the Document is less than one half of&lt;br /&gt;
the entire aggregate, the Document's Cover Texts may be placed on&lt;br /&gt;
covers that bracket the Document within the aggregate, or the&lt;br /&gt;
electronic equivalent of covers if the Document is in electronic form.&lt;br /&gt;
Otherwise they must appear on printed covers that bracket the whole&lt;br /&gt;
aggregate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
8. TRANSLATION&lt;br /&gt;
&lt;br /&gt;
Translation is considered a kind of modification, so you may&lt;br /&gt;
distribute translations of the Document under the terms of section 4.&lt;br /&gt;
Replacing Invariant Sections with translations requires special&lt;br /&gt;
permission from their copyright holders, but you may include&lt;br /&gt;
translations of some or all Invariant Sections in addition to the&lt;br /&gt;
original versions of these Invariant Sections.  You may include a&lt;br /&gt;
translation of this License, and all the license notices in the&lt;br /&gt;
Document, and any Warranty Disclaimers, provided that you also include&lt;br /&gt;
the original English version of this License and the original versions&lt;br /&gt;
of those notices and disclaimers.  In case of a disagreement between&lt;br /&gt;
the translation and the original version of this License or a notice&lt;br /&gt;
or disclaimer, the original version will prevail.&lt;br /&gt;
&lt;br /&gt;
If a section in the Document is Entitled &amp;quot;Acknowledgements&amp;quot;,&lt;br /&gt;
&amp;quot;Dedications&amp;quot;, or &amp;quot;History&amp;quot;, the requirement (section 4) to Preserve&lt;br /&gt;
its Title (section 1) will typically require changing the actual&lt;br /&gt;
title.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. TERMINATION&lt;br /&gt;
&lt;br /&gt;
You may not copy, modify, sublicense, or distribute the Document except&lt;br /&gt;
as expressly provided for under this License.  Any other attempt to&lt;br /&gt;
copy, modify, sublicense or distribute the Document is void, and will&lt;br /&gt;
automatically terminate your rights under this License.  However,&lt;br /&gt;
parties who have received copies, or rights, from you under this&lt;br /&gt;
License will not have their licenses terminated so long as such&lt;br /&gt;
parties remain in full compliance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10. FUTURE REVISIONS OF THIS LICENSE&lt;br /&gt;
&lt;br /&gt;
The Free Software Foundation may publish new, revised versions&lt;br /&gt;
of the GNU Free Documentation License from time to time.  Such new&lt;br /&gt;
versions will be similar in spirit to the present version, but may&lt;br /&gt;
differ in detail to address new problems or concerns.  See&lt;br /&gt;
http://www.gnu.org/copyleft/.&lt;br /&gt;
&lt;br /&gt;
Each version of the License is given a distinguishing version number.&lt;br /&gt;
If the Document specifies that a particular numbered version of this&lt;br /&gt;
License &amp;quot;or any later version&amp;quot; applies to it, you have the option of&lt;br /&gt;
following the terms and conditions either of that specified version or&lt;br /&gt;
of any later version that has been published (not as a draft) by the&lt;br /&gt;
Free Software Foundation.  If the Document does not specify a version&lt;br /&gt;
number of this License, you may choose any version ever published (not&lt;br /&gt;
as a draft) by the Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ADDENDUM: How to use this License for your documents&lt;br /&gt;
&lt;br /&gt;
To use this License in a document you have written, include a copy of&lt;br /&gt;
the License in the document and put the following copyright and&lt;br /&gt;
license notices just after the title page:&lt;br /&gt;
&lt;br /&gt;
    Copyright (c)  YEAR  YOUR NAME.&lt;br /&gt;
    Permission is granted to copy, distribute and/or modify this document&lt;br /&gt;
    under the terms of the GNU Free Documentation License, Version 1.2&lt;br /&gt;
    or any later version published by the Free Software Foundation;&lt;br /&gt;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.&lt;br /&gt;
    A copy of the license is included in the section entitled &amp;quot;GNU&lt;br /&gt;
    Free Documentation License&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,&lt;br /&gt;
replace the &amp;quot;with...Texts.&amp;quot; line with this:&lt;br /&gt;
&lt;br /&gt;
    with the Invariant Sections being LIST THEIR TITLES, with the&lt;br /&gt;
    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.&lt;br /&gt;
&lt;br /&gt;
If you have Invariant Sections without Cover Texts, or some other&lt;br /&gt;
combination of the three, merge those two alternatives to suit the&lt;br /&gt;
situation.&lt;br /&gt;
&lt;br /&gt;
If your document contains nontrivial examples of program code, we&lt;br /&gt;
recommend releasing these examples in parallel under your choice of&lt;br /&gt;
free software license, such as the GNU General Public License,&lt;br /&gt;
to permit their use in free software.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2009-01-24T19:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Reverted edits by Danimo (Talk) to last version by Dhaumann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top style=&amp;quot;background-color: {{{2|white}}};&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; vertical-align:middle; background-color: {{{1|white}}}; width:10px;&amp;quot; | {{{3|status missing}}}&lt;br /&gt;
| style=&amp;quot;width:10px; vertical-align:middle;&amp;quot; | {{{4|project missing}}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; &amp;quot;| {{{5|description missing}}}&lt;br /&gt;
|style=&amp;quot;width:10px; vertical-align:middle;&amp;quot; | [mailto:{{{6}}} {{{7|email missing}}} &amp;amp;lt;{{{6}}}&amp;amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2009-01-24T18:59:27Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top style=&amp;quot;background-color: {{{2|white}}};&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:center; vertical-align:middle; background-color: {{{1|white}}}; width:10px;&amp;quot; | {{{3|status missing}}}&lt;br /&gt;
| style=&amp;quot;width:10px; vertical-align:middle;&amp;quot; | {{{4|project missing}}}&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; &amp;quot;| {{{5|description missing}}}&lt;br /&gt;
|style=&amp;quot;width:10px; vertical-align:middle;&amp;quot; | &amp;lt;mail address='{{{6}}}'&amp;gt;{{{7|email missing}}} &amp;amp;lt;{{{6}}}&amp;amp;gt;&amp;lt;/mail&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Stats</id>
		<title>Stats</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Stats"/>
				<updated>2008-10-21T16:20:35Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Top 10 contributors of the last week ==&lt;br /&gt;
&amp;lt;center&amp;gt;{{Special:ContributionScores/10/7}}&amp;lt;/center&amp;gt;&lt;br /&gt;
== Top 10 Articles and Discussions ==&lt;br /&gt;
&lt;br /&gt;
{{Box|Most Popular Articles|&amp;lt;TopTenPages offset=1/&amp;gt;|70%|left}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
{{Box|Most Discussed Articles|&amp;lt;TopTenPages namespace=&amp;quot;talk&amp;quot;/&amp;gt;|70%|left}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Stats</id>
		<title>Stats</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Stats"/>
				<updated>2008-10-21T16:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Top 10 contributors of the last week ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{Special:ContributionScores/10/7}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Top 10 Articles and Discussions ==&lt;br /&gt;
&lt;br /&gt;
{{Box|Most Popular Articles|&amp;lt;TopTenPages offset=1/&amp;gt;|70%|left}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
{{Box|Most Discussed Articles|&amp;lt;TopTenPages namespace=&amp;quot;talk&amp;quot;/&amp;gt;|70%|left}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Stats</id>
		<title>Stats</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Stats"/>
				<updated>2008-10-21T16:19:49Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Stats page from userbase (required some extensions)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Top 10 contributors of the last week ==&lt;br /&gt;
&lt;br /&gt;
{{Special:ContributionScores/10/7}}&lt;br /&gt;
&lt;br /&gt;
== Top 10 Articles and Discussions ==&lt;br /&gt;
&lt;br /&gt;
{{Box|Most Popular Articles|&amp;lt;TopTenPages offset=1/&amp;gt;|70%|left}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
{{Box|Most Discussed Articles|&amp;lt;TopTenPages namespace=&amp;quot;talk&amp;quot;/&amp;gt;|70%|left}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User_talk:Mark_Ziegler</id>
		<title>User talk:Mark Ziegler</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Mark_Ziegler"/>
				<updated>2008-05-10T10:44:38Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Mark, please use ((/Link/To/SubPage|Description)) (with &amp;quot;[&amp;quot; instead of &amp;quot;(&amp;quot;) to link inside of TechBase. The advantage of using internal links is that we can use them to trace links between pages. --[[User:Danimo|Danimo]] 12:14, 10 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:You mean &amp;quot;[&amp;quot; instead of &amp;quot;(&amp;quot; or &amp;quot;(&amp;quot; instead of &amp;quot;[&amp;quot;. Can you give an example? -- Mark&lt;br /&gt;
&lt;br /&gt;
::Sure: [[/Development/Books|Book section]] (You need the | in additionn as a seperator, since wiki titles may contain spaces) --[[User:Danimo|Danimo]] 12:41, 10 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:: oh, and you can sign with --&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;, it will be converted on submit and also show up correctly in the preview.&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User_talk:Mark_Ziegler</id>
		<title>User talk:Mark Ziegler</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Mark_Ziegler"/>
				<updated>2008-05-10T10:41:54Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Mark, please use ((/Link/To/SubPage|Description)) (with &amp;quot;[&amp;quot; instead of &amp;quot;(&amp;quot;) to link inside of TechBase. The advantage of using internal links is that we can use them to trace links between pages. --[[User:Danimo|Danimo]] 12:14, 10 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:You mean &amp;quot;[&amp;quot; instead of &amp;quot;(&amp;quot; or &amp;quot;(&amp;quot; instead of &amp;quot;[&amp;quot;.&lt;br /&gt;
Can you give an example? &lt;br /&gt;
Mark&lt;br /&gt;
&lt;br /&gt;
::Sure: [[/Development/Books|Book section]] (You need the | in additionn as a seperator, since wiki titles may contain spaces) --[[User:Danimo|Danimo]] 12:41, 10 May 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User_talk:Mark_Ziegler</id>
		<title>User talk:Mark Ziegler</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Mark_Ziegler"/>
				<updated>2008-05-10T10:14:43Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: New page: Hi Mark, please use ((/Link/To/SubPage Description)) (with &amp;quot;[&amp;quot; instead of &amp;quot;(&amp;quot;) to link inside of TechBase. The advantage of using internal links is that we can use them to trace links betw...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Mark, please use ((/Link/To/SubPage Description)) (with &amp;quot;[&amp;quot; instead of &amp;quot;(&amp;quot;) to link inside of TechBase. The advantage of using internal links is that we can use them to trace links between pages. --[[User:Danimo|Danimo]] 12:14, 10 May 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User_talk:Danimo</id>
		<title>User talk:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User_talk:Danimo"/>
				<updated>2008-04-20T15:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CAPTCHAs that won't go away==&lt;br /&gt;
Aseigo [[Talk:Main_Page#Something_wrong_with_the_CAPTCHAs|suggested]] that I ask you about this.  Everytime I make an edit, it claims that I am adding a URL, and wants me to do some math.  Is it even supposed to do this to registered users?  In any case, ''most'' times I am not adding a url at all, and I tire of the systems inordinate appetite for elementary arithmetic.  Can this be fixed?  Thanks. --[[User:Axiom|Axiom]] 20:27, 28 March 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;{{file}}&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
As you asked me, I removed all the occurrences of &amp;lt;nowiki&amp;gt;{{file}}&amp;lt;/nowiki&amp;gt; with &amp;lt;nowiki&amp;gt;{{path}}&amp;lt;/nowiki&amp;gt;, and removed the obsolete template &amp;lt;nowiki&amp;gt;{{file}}&amp;lt;/nowiki&amp;gt;. -- [[user:Pino|pino]] 02:16, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There is also a template called &amp;lt;nowiki&amp;gt;{{module}}&amp;lt;/nowiki&amp;gt; for KDE modules (kdelibs, kdebase), etc. I initially used path here, too, and thought that's enough. It's not widely used, only by 2 articles. Maybe we should replace it by path again? What do you think? --[[User:Dhaumann|Dhaumann]] 09:14, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::I agree. --[[User:Danimo|Danimo]] 09:28, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Or maybe link it to the module page in the apidocs (e.g [http://api.kde.org/4.0-api/kdelibs-apidocs/ kdelibs])? --[[User:Milliams|milliams]] 14:47, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Good idea, &amp;lt;nowiki&amp;gt;{{kdelibs}}, {{kdebase}}&amp;lt;/nowiki&amp;gt; etc... +1 from my side :) --[[User:Dhaumann|Dhaumann]] 15:11, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
::::Sounds good. Or how about &amp;lt;nowiki&amp;gt;{{module|foo}}&amp;lt;/nowiki&amp;gt; linking to http://api.kde.org/4.0-api/foo-apidocs/? I don't know how flexible this method is though? --[[User:Milliams|milliams]] 19:41, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::::+1 on [[User:Milliams|milliams]]' idea --[[user:Pino|pino]] 21:35, 29 May 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Assistance needed for new contributor to Techbase==&lt;br /&gt;
Hi. My name is Thor, I am a new contributor to KDE and I am looking to provide some help with regard to one of the KDE Games, KTuberling (The Potato dude).  I am a Polyglot, and work in many different languages, and I have noticed on issues of KTuberling that even with correct software in place, certain speech selections do not function (Notably; Serbian and Danish).  I have been working on these for a while and would like to obtain source code for the Tuberling to try and correct the error.  Could you tell me please how I find out who is working on what, and what they are doing to it?  Thanks and Regards.  [[User:ThunderGod|ThunderGod]] 15:40, 30 December 2007 (CET)&lt;br /&gt;
:The best place to find assistance with this is by visiting the #kdegames or #kde-edu channels on irc.freenode.org or by sending an joining the KDE Games mailing list at [https://mail.kde.org/mailman/listinfo/kde-games-devel https://mail.kde.org/mailman/listinfo/kde-games-devel]. I believe tsdgeos (Albert Astals Cid) is the best person to speak to. --[[User:Milliams|milliams]] 17:13, 30 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== More readable URLs ==&lt;br /&gt;
&lt;br /&gt;
At the moment all links on this site are in the form [http://techbase.kde.org/index.php?title=Development/Tutorials http://techbase.kde.org/index.php?title=Development/Tutorials]. I think it would make the site much more readable to convert these links into something like [http://techbase.kde.org/Development/Tutorials http://techbase.kde.org/Development/Tutorials]. Now, as you can see, if you click on that link it does indeed work and takes you to the same page (so you've obviously got mod_rewrite working correctly) so the problem is that mediawiki itself isn't formatting it's links to take advantage of this. I think you basically need to do step 2 from [http://www.mediawiki.org/wiki/Manual:Short_URL#Setup_steps here]. --[[User:Milliams|milliams]] 14:53, 18 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Remove my account ==&lt;br /&gt;
&lt;br /&gt;
Please remove my account; i'd like to choose another username. Thank you. [[User:Krf|KRF]]&lt;br /&gt;
&lt;br /&gt;
:Mediawiki has no concept of user account deletion, since that would mess up the history. Just create a new user and add redirects from your current user accounts user page. --[[User:Danimo|Danimo]] 17:55, 20 April 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo</id>
		<title>User:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo"/>
				<updated>2008-04-06T21:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subpages ==&lt;br /&gt;
&lt;br /&gt;
{{List_subpages}}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Beautify Subpage titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
sorry for reporting a bug here; but this seems like as good a place as any :)&lt;br /&gt;
When using &amp;lt;nowiki&amp;gt;&amp;lt;code cpp&amp;gt;&amp;lt;/nowiki&amp;gt; tags I noted a bug.  Specifically when you use the colon (or other means) to indent it.  [[User:Zander|Zander]] 20:39, 9 April 2007 (CEST)&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code cpp&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QDate&amp;gt;&lt;br /&gt;
#include &amp;lt;zlib.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New CMS for the dot ==&lt;br /&gt;
&lt;br /&gt;
See [[/Dot TLC]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo</id>
		<title>User:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo"/>
				<updated>2008-04-06T21:58:20Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subpages ==&lt;br /&gt;
&lt;br /&gt;
{{List_subpages}}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Beautify Subpage titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
sorry for reporting a bug here; but this seems like as good a place as any :)&lt;br /&gt;
When using &amp;lt;nowiki&amp;gt;&amp;lt;code cpp&amp;gt;&amp;lt;/nowiki&amp;gt; tags I noted a bug.  Specifically when you use the colon (or other means) to indent it.  [[User:Zander|Zander]] 20:39, 9 April 2007 (CEST)&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code cpp&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QDate&amp;gt;&lt;br /&gt;
#include &amp;lt;zlib.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New CMS for the dot ==&lt;br /&gt;
&lt;br /&gt;
See [/Dot TLC]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo</id>
		<title>User:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo"/>
				<updated>2008-04-06T21:57:40Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subpages ==&lt;br /&gt;
&lt;br /&gt;
{{List_subpages}}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Beautify Subpage titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
sorry for reporting a bug here; but this seems like as good a place as any :)&lt;br /&gt;
When using &amp;lt;nowiki&amp;gt;&amp;lt;code cpp&amp;gt;&amp;lt;/nowiki&amp;gt; tags I noted a bug.  Specifically when you use the colon (or other means) to indent it.  [[User:Zander|Zander]] 20:39, 9 April 2007 (CEST)&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code cpp&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QDate&amp;gt;&lt;br /&gt;
#include &amp;lt;zlib.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New CMS for the dot ==&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:I18n/Language_Navigation_Bar</id>
		<title>Template:I18n/Language Navigation Bar</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:I18n/Language_Navigation_Bar"/>
				<updated>2008-03-04T06:53:37Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Please don't add new languages if there isn't at least one page (preferably the main page) translated into it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Template:I18n/Language_Navigation_Bar}}&lt;br /&gt;
== How to use ==&lt;br /&gt;
&lt;br /&gt;
This template needs to be included in all translations of one page.&lt;br /&gt;
Let's assume we have page called &amp;quot;Foo&amp;quot;. The translations are called&lt;br /&gt;
Foo (de), Foo (fr), etc. &lt;br /&gt;
&lt;br /&gt;
In all translations you _must_ insert the following line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Template:I18n/Language_Navigation_Bar|Foo}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a correctly linked bar that allows to switch between all translations of a site. If you want to add a new translation language, add&lt;br /&gt;
it here and it will appear on all sites. Untranslated versions will appear&lt;br /&gt;
red as usual.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:auto;font-size:83.3%;text-align:left&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Languages:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot;&amp;gt;[[{{{1}}}|English]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lanf=&amp;quot;da&amp;quot;&amp;gt;[[{{{1}}}_(da)|Dansk]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;de&amp;quot;&amp;gt;[[{{{1}}}_(de)|Deutsch]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;fr&amp;quot;&amp;gt;[[{{{1}}}_(fr)|Français]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;it&amp;quot;&amp;gt;[[{{{1}}}_(it)|Italiano]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;ru&amp;quot;&amp;gt;[[{{{1}}}_(ru)|Русский]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;sl&amp;quot;&amp;gt;[[{{{1}}}_(sl)|Slovenščina]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;fi&amp;quot;&amp;gt;[[{{{1}}}_(fi)|Suomi]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;zh_CN&amp;quot;&amp;gt;[[{{{1}}}_(zh_CN)|简体中文]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;gl&amp;quot;&amp;gt;[[{{{1}}}_(gl)|Galego]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;es&amp;quot;&amp;gt;[[{{{1}}}_(es)|Español]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;eo&amp;quot;&amp;gt;[[{{{1}}}_(eo)|Esperanto]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;se&amp;quot;&amp;gt;[[{{{1}}}_(se)|Svenska]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;ko&amp;quot;&amp;gt;[[{{{1}}}_(ko)|한국어]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;ro&amp;quot;&amp;gt;[[{{{1}}}_(ro)|Romanian]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;pt_BR&amp;quot;&amp;gt;[[{{{1}}}_(pt_BR)|Brazilian Portuguese]]&amp;lt;/span&amp;gt; | &lt;br /&gt;
&amp;lt;span lang=&amp;quot;sl&amp;quot;&amp;gt;[[{{{1}}}_(cs)|Česky]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;ar&amp;quot;&amp;gt;[[{{{1}}}_(ar)|عربي]]&amp;lt;/span&amp;gt; |&lt;br /&gt;
&amp;lt;span lang=&amp;quot;fa&amp;quot;&amp;gt;[[{{{1}}}_(fa)|فارسی]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Contribute</id>
		<title>Contribute</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Contribute"/>
				<updated>2008-02-19T11:44:33Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Contribute}}&lt;br /&gt;
This page intends to give an overview of the different aspects of KDE development in particular for programming related issues. '''The KDE project welcomes anyone willing to help'''.&lt;br /&gt;
&lt;br /&gt;
{{note|There are a lot of ways to get involved in KDE development, which can be summed up in several categories:&lt;br /&gt;
:''Documentation, Translation, Development, Usability, Accessibility, Artwork, Promotion&lt;br /&gt;
'''Especially for tasks other than development (writing code) KDE's pages about [http://kde.org/getinvolved/ how to get involved] give a good overview.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== News and Mail Sources ==&lt;br /&gt;
The general direction of the KDE project is determined by those who do the work - there is no single high level plan for what KDE will look like in the future.&lt;br /&gt;
&lt;br /&gt;
If you want to find out what is currently happening, then there are a number of sources you might like to consider:&lt;br /&gt;
; [http://www.kde.org/mailinglists/ Mailing Lists]&lt;br /&gt;
: Probably the best way to find out what's going on in KDE development. Archives are available [http://lists.kde.org here]&lt;br /&gt;
&lt;br /&gt;
; [http://commitfilter.kde.org/ CommitFilter]&lt;br /&gt;
: Receive notification of [http://en.wikipedia.org/wiki/Subversion SVN] commits in areas that interest you.&lt;br /&gt;
&lt;br /&gt;
; [http://commit-digest.org/ KDE Commit-Digest]&lt;br /&gt;
: Weekly summary of SVN commits.&lt;br /&gt;
&lt;br /&gt;
; [http://dot.kde.org/ The Dot]&lt;br /&gt;
: The KDE news site.&lt;br /&gt;
&lt;br /&gt;
== Getting Started with Coding ==&lt;br /&gt;
Getting started at ''coding'' in KDE is a matter of finding something to fix, and fixing it. You may want to consult the module overview to help find what you are looking for; once you have fixed something, you will want to send in a patch. If you do that a few times, you may want to apply for an SVN account so you can fix things directly.&lt;br /&gt;
* [[Contribute/List of KDE Modules|Module overview]]&lt;br /&gt;
* [[Contribute/Send Patches|Sending patches]]&lt;br /&gt;
* [[Contribute/Get a SVN Account|Applying for a KDE SVN Account]]&lt;br /&gt;
* [[Contribute/First Steps with your KDE SVN Account|First steps with your new SVN account]]&lt;br /&gt;
&lt;br /&gt;
At the moment, there are two choices for development within KDE - you can work on KDE3, or KDE4. KDE3 is a good choice for bug fixing, however the main development work effort (and all new features) is on KDE4. This document mainly focuses on work in support of KDE4.&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
KDE is mostly written in C++. If you are not familiar with C++, you should do at least some work on it. There are a number of good books on C++ - an excellent source is [http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Bruce Eckel's &amp;quot;Thinking in C++&amp;quot;], which is available both as a free download and as a printed document. It isn't essential to understand everything before you start in KDE, but you do need to understand basic syntax and operations.&lt;br /&gt;
&lt;br /&gt;
=== Qt ===&lt;br /&gt;
To become proficient with KDE coding, you should understand the Qt toolkit. If you are not familiar with Qt, you should work through the tutorials included with Qt ([http://doc.trolltech.com/latest/examples.html Qt4 version], [http://doc.trolltech.com/3.3/tutorial.html Qt3 version]).&lt;br /&gt;
&lt;br /&gt;
If you are more into multimedia and videos for a start you might want to spend two amazing minutes on watching [http://www.trolltech.com/trolltech/products/qt/learnmore/video/demos/browser Building a Simple Help Documentation Browser with Qt4 Designer]. If that got your attention you might also want to watch the video introduction [http://www.trolltechvideo.com/video/day1/room_a/a_1_1/video.html Hello Qt] by Mark Summerfield which is part of the [http://www.trolltech.com/company/newsroom/events/allevents/devdays2006/videolinks Trolltech Developer Days 2006 presentations].&lt;br /&gt;
&lt;br /&gt;
If you need a gentler introduction to Qt, or would just like an alternative view, then you may wish to look at the [http://qt4.digitalfanatics.org/tiqt/ The Independent Qt Tutorial] (Currently offline due to book contract).&lt;br /&gt;
&lt;br /&gt;
If you prefer to learn Qt by reading a traditional book, take a look at Trolltechs [http://trolltech.com/developer/documentation/books book page]. More suggestions on becoming familiar with Qt4 are [http://doc.trolltech.com/latest/how-to-learn-qt.html available here as well]. &lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
A range of information on KDE techniques is available in the [[Development/Tutorials|tutorial section]]. Note that some of these tutorials still target KDE3, though they should be at least partly applicable.&lt;br /&gt;
&lt;br /&gt;
You will also find useful information on KDE coding in the [[Development/FAQs|FAQs]] section. This information may also be somewhat dated for KDE4, however much of it is broadly applicable, even outside KDE.&lt;br /&gt;
&lt;br /&gt;
You can also read [[Development/Further Information#Books|KDE coding books]].&lt;br /&gt;
&lt;br /&gt;
Last, but by no means least, KDE comes with extensive class (Application Programmer Interface) documentation. This is available in the&lt;br /&gt;
[[Development/Tutorials/API Documentation|KDE API Reference Manuals]] section, which also contains a number of useful links on how to write or update the class documentation. You can also generate these on your own machine, or refer to a more up-to-date online version at [http://www.englishbreakfastnetwork.org/apidocs/apidox-kde-4.0/kdelibs-apidocs/ The English Breakfast Network].&lt;br /&gt;
&lt;br /&gt;
A more detailed description of the steps above is available in our [http://quality.kde.org/develop/howto/howtohack.php Programming Guide].&lt;br /&gt;
&lt;br /&gt;
== Getting Involved in Bug Hunting and Application Quality ==&lt;br /&gt;
&lt;br /&gt;
There is a large number of applications within KDE, and not all of them have a maintainer dedicated to managing bugs and generally helping out with all the issues associated with turning some working code into a polished application.&lt;br /&gt;
&lt;br /&gt;
If you are interested in helping out with KDE, but don't know where to start,  visit [http://www.kde.org/getinvolved/ Contribute Website] for more information. Note that you do not need any programming skills to become involved. In particular develpers regurarly publish so-called [[/Junior Jobs|Junior Jobs]] to encourage new contributions.&lt;br /&gt;
&lt;br /&gt;
Of course, you can become involved in bug hunting without being part of the KDE Quality Team - just create yourself an account on the KDE [http://bugs.kde.org bug tracking system], and start searching / sorting through the bugs. Again, you don't have to have programming skills - it helps the programmers enormously just to have a procedure that allows a bug to be consistently reproduced.&lt;br /&gt;
&lt;br /&gt;
The [[Contribute/Bugsquad|Bugsquad]] tries to keep track of bugs in KDE software and make sure that valid bugs are noticed by developers. You do not need any programming knowledge to be in the Bugsquad; in fact it is a great way to return something to the KDE community if you cannot program.&lt;br /&gt;
&lt;br /&gt;
== Historical Sources ==&lt;br /&gt;
&lt;br /&gt;
; [http://www.kerneltraffic.org/kde/archives.html KDE Traffic]&lt;br /&gt;
: Summary of the development mailing lists. KDE Traffic ran for 76 issues, from 10 March 2001 until 16 April 2004. The KDE Commit-Digest (described above) is its logical successor.&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan</id>
		<title>Schedules/KDE4/4.1 Feature Plan</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan"/>
				<updated>2008-01-30T17:38:52Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Instructions =&lt;br /&gt;
&lt;br /&gt;
Deadline for adding entries here for the 4.1 release is '''31 March 2008'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Entries added after that date will be scheduled for the 4.2 release.&lt;br /&gt;
&lt;br /&gt;
todo =&amp;gt; not started yet&amp;lt;br&amp;gt;&lt;br /&gt;
in-progress =&amp;gt; started, but not completed yet&amp;lt;br&amp;gt;&lt;br /&gt;
done =&amp;gt; completed&lt;br /&gt;
&lt;br /&gt;
= kdelibs =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|kdeui|Goya, a framework for inserting controls into itemviews in a really easy and fast way|ereslibre@kde.org|Rafael Fernández López}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdepimlibs =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Akonadi|Move the Akonadi development library from kdepim.|vkrause@kde.org|Volker Krause}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdebase-apps =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdebase-workspace =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdebase-runtime =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdeaccessibility =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdeadmin =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureInProgress|KSystemLog|KSystemLog, a Log Viewer Tool. Move from kde-apps|nicolas.ternisien@gmail.com}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdeartwork =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdebindings =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdeedu =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdegames =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdegraphics =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Dragon Player|A simple Phonon-based videoplayer application|ian.monroe@gmail.com}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdemultimedia =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdenetwork =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdepim =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|[http://decibel.kde.org Decibel]|Decibel, a framework for real time communication services. Move from playground/pim|info@basyskom.de|Tobias Hunger}}&lt;br /&gt;
{{FeatureTodo|[http://kblogger.pwsp.net KBlogger]|KBlogger, a blogging application| christian_weilbach@.web.de|Christian Weilbach}}&lt;br /&gt;
{{FeatureTodo|KMail|HTML Signatures|yez@familieschepers.nl|Edwin Schepers}}&lt;br /&gt;
{{FeatureDone|KonsoleKalendar|Support &amp;quot;file&amp;quot; and &amp;quot;localdir&amp;quot; resources|winter@kde.org|Allen Winter}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdesdk =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Lokalize|Move this application (formerly known as Kaider) from extragear|shafff@ukr.net}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdetoys =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdeutils =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Okteta|bytelevel editor (successor to KHexEdit). Move from playground/utils.|kossebau@kde.org|Friedrich W. H. Kossebau}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdevelop =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdevplatform =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= kdewebdev =&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; white-space:nowrap;&amp;quot;&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T15:01:53Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: grml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|email missing}}} &amp;amp;lt;{{{5}}}&amp;amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|email missing}}} {{{5}}}&amp;amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|email missing}}}&amp;amp;nbsp;&amp;amp;lt;{{{5}}}&amp;amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:50:48Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|&amp;amp;lt;{{{5}}}&amp;amp;gt;}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:49:46Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|&amp;amp;lt;{{{5}}}&amp;amp;gt;]}}} &lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:47:15Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|email missing}}} &amp;amp;lt;{{{5}}}&amp;amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:46:38Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|email missing}}} &amp;amp;lt;{{{5}}}&amp;amp;gt;&amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|{{{5}}} }}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|&amp;lt;{{{5|email missing}}}&amp;gt;}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:44:10Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|}}} &amp;lt;{{{5|email missing}}}&amp;gt;]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan</id>
		<title>Schedules/KDE4/4.1 Feature Plan</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan"/>
				<updated>2008-01-30T14:43:11Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE4.1 Feature Plan =&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Deadline for adding entries here for the 4.1 release is '''31 March 2008'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Entries added after that date will be scheduled for the 4.2 release.&lt;br /&gt;
&lt;br /&gt;
todo =&amp;gt; not started yet&amp;lt;br&amp;gt;&lt;br /&gt;
in-progress =&amp;gt; started, but not completed yet&amp;lt;br&amp;gt;&lt;br /&gt;
done =&amp;gt; completed&lt;br /&gt;
&lt;br /&gt;
=== kdelibs ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|kdeui|Goya, a framework for inserting controls into itemviews in a really easy and fast way|ereslibre@kde.org}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdepimlibs ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Akonadi|Move the Akonadi development library from kdepim.|vkrause@kde.org|Volker Krause}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdebase-apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdebase-workspace ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdebase-runtime ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdeaccessibility ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdeadmin ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureInProgress|KSystemLog|KSystemLog, a Log Viewer Tool. Move from kde-apps|nicolas.ternisien@gmail.com}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdeartwork ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdebindings ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdeedu ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdegames ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdegraphics ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Dragon Player|A simple Phonon-based videoplayer application|ian.monroe@gmail.com}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdemultimedia ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdenetwork ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdepim ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|[http://decibel.kde.org Decibel]|Decibel, a framework for real time communication services. Move from playground/pim (Tobias Hunger)|info@basyskom.de}}&lt;br /&gt;
{{FeatureTodo|[http://kblogger.pwsp.net KBlogger]|KBlogger, a blogging application (Christian Weilbach)| christian_weilbach@.web.de}}&lt;br /&gt;
{{FeatureTodo|KMail|HTML Signatures (Edwin Schepers)|yez@familieschepers.nl}}&lt;br /&gt;
{{FeatureDone|KonsoleKalendar|Support &amp;quot;file&amp;quot; and &amp;quot;localdir&amp;quot; resources (Allen Winter)|winter@kde.org}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdesdk ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureDone|Lokalize|Move this application (formerly known as Kaider) from extragear|shafff@ukr.net}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdetoys ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdeutils ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
{{FeatureTodo|Okteta, bytelevel editor (successor to KHexEdit)|Move from playground/utils (Friedrich W. H. Kossebau)|kossebau@kde.org}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdevelop ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdevplatform ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== kdewebdev ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureInProgress</id>
		<title>Template:FeatureInProgress</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureInProgress"/>
				<updated>2008-01-30T14:42:16Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|yellow|in-progress|{{{1}}}|{{{2}}}|{{{3}}}|{{{4|}}}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-30T14:41:37Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|red|todo|{{{1}}}|{{{2}}}|{{{3}}}|{{{4|}}}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{1|white}}};&amp;quot;|{{{2|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{6|}}} {{{5|email missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureDone</id>
		<title>Template:FeatureDone</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureDone"/>
				<updated>2008-01-30T14:40:50Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|green|Done|{{{1}}}|{{{2}}}|{{{3}}}|{{{4|}}}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureDone</id>
		<title>Template:FeatureDone</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureDone"/>
				<updated>2008-01-30T14:40:27Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|green|Done|{{{1}}}|{{{2}}}|{{{3}}}|{{{3}}}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:37:40Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{5|white}}};&amp;quot;|{{{1|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{6|}}} {{{4|email missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-30T14:36:30Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|style=&amp;quot;background-color: {{{5|white}}};&amp;quot;|{{{1|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{5|}}} {{{4|email missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:21:30Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|todo|{{{1}}}|{{{2}}}|{{{3}}}|red}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureInProgress</id>
		<title>Template:FeatureInProgress</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureInProgress"/>
				<updated>2008-01-29T23:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|in-progress|{{{1}}}|{{{2}}}|{{{3}}}|yellow}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureDone</id>
		<title>Template:FeatureDone</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureDone"/>
				<updated>2008-01-29T23:20:29Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|Done|{{{1}}}|{{{2}}}|{{{3}}}|green}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/MediaWiki:Common.js</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/MediaWiki:Common.js"/>
				<updated>2008-01-29T23:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: New page: /* Any JavaScript here will be loaded for all users on every page load. */  /*&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;*/ //Overrides the function with the same name in http://svn.wikimedia.org/viewvc/me...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
/*&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;*/&lt;br /&gt;
//Overrides the function with the same name in http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js&lt;br /&gt;
//Fixes a bug: for the sorting order, takes the whole number, not the number before the second comma. &lt;br /&gt;
//Also, removes spaces. See [[Help:Sorting]].&lt;br /&gt;
function ts_parseFloat(num) {&lt;br /&gt;
	if (!num) return 0;&lt;br /&gt;
     num = removeSpaces(num);&lt;br /&gt;
	num = parseFloat(num.replace(/,/g, &amp;quot;&amp;quot;));&lt;br /&gt;
	return (isNaN(num) ? 0 : num);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Keep spaces in &amp;quot;currency&amp;quot; mode, to sort a range &amp;quot;70 to 80&amp;quot; at 70, not 7080&lt;br /&gt;
function ts_parseFloat_ks(num) {&lt;br /&gt;
	if (!num) return 0;&lt;br /&gt;
	num = parseFloat(num.replace(/,/g, &amp;quot;&amp;quot;));&lt;br /&gt;
	return (isNaN(num) ? 0 : num);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Auxiliary function for function ts_resortTable(lnk)&lt;br /&gt;
function removeSpaces(string) {&lt;br /&gt;
        var tstring = &amp;quot;&amp;quot;;&lt;br /&gt;
        string = '' + string;&lt;br /&gt;
        splitstring = string.split(&amp;quot; &amp;quot;);&lt;br /&gt;
        for(i = 0; i &amp;lt; splitstring.length; i++)&lt;br /&gt;
        tstring += splitstring[i];&lt;br /&gt;
        return tstring;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Overrides the function with the same name in http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js&lt;br /&gt;
//Changes the criteria for various sorting modes, see [[Help:Sorting]].&lt;br /&gt;
//For easy maintenance the difference with wikibits.js is kept limited to a few lines.&lt;br /&gt;
function ts_resortTable(lnk) {&lt;br /&gt;
	// get the span&lt;br /&gt;
	var span = lnk.getElementsByTagName('span')[0];&lt;br /&gt;
&lt;br /&gt;
	var td = lnk.parentNode;&lt;br /&gt;
	var tr = td.parentNode;&lt;br /&gt;
	var column = td.cellIndex;&lt;br /&gt;
&lt;br /&gt;
	var table = tr.parentNode;&lt;br /&gt;
	while (table &amp;amp;&amp;amp; !(table.tagName &amp;amp;&amp;amp; table.tagName.toLowerCase() == 'table'))&lt;br /&gt;
		table = table.parentNode;&lt;br /&gt;
	if (!table) return;&lt;br /&gt;
&lt;br /&gt;
	// Work out a type for the column&lt;br /&gt;
	if (table.rows.length &amp;lt;= 1) return;&lt;br /&gt;
&lt;br /&gt;
	// Skip the first row if that's where the headings are&lt;br /&gt;
	var rowStart = (table.tHead &amp;amp;&amp;amp; table.tHead.rows.length &amp;gt; 0 ? 0 : 1);&lt;br /&gt;
&lt;br /&gt;
	var itm = &amp;quot;&amp;quot;;&lt;br /&gt;
	for (var i = rowStart; i &amp;lt; table.rows.length; i++) {&lt;br /&gt;
		if (table.rows[i].cells.length &amp;gt; column) {&lt;br /&gt;
			itm = ts_getInnerText(table.rows[i].cells[column]);&lt;br /&gt;
			itm = itm.replace(/^[\s\xa0]+/, &amp;quot;&amp;quot;).replace(/[\s\xa0]+$/, &amp;quot;&amp;quot;);&lt;br /&gt;
			if (itm != &amp;quot;&amp;quot;) break;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	sortfn = ts_sort_caseinsensitive;&lt;br /&gt;
     itmns = removeSpaces(itm);&lt;br /&gt;
     if (itmns.match(/^[\d\.\,\-\+]+\%?$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
     if (itmns.match(/^[\d\.\,\-\+]+[eE][\d\-\+]+\%?$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
     if (itmns.match(/^[\d\.\,\-\+]+e[\d\-\+]+\u00d710[\d\-\+]+\%?$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
	if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/))&lt;br /&gt;
		sortfn = ts_sort_date;&lt;br /&gt;
	if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/))&lt;br /&gt;
		sortfn = ts_sort_date;&lt;br /&gt;
	if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/))&lt;br /&gt;
		sortfn = ts_sort_date;&lt;br /&gt;
	if (itm.match(/^[\u00a3$\u20ac\u00a5]/)) // pound dollar euro yen&lt;br /&gt;
		sortfn = ts_sort_currency;&lt;br /&gt;
     if (itm.match(/sm=c$/)) sortfn = ts_sort_currency;&lt;br /&gt;
     if (itm.match(/sm=d$/)) sortfn = ts_sort_date;&lt;br /&gt;
     if (itm.match(/sm=n$/)) sortfn = ts_sort_numeric;&lt;br /&gt;
&lt;br /&gt;
	var reverse = (span.getAttribute(&amp;quot;sortdir&amp;quot;) == 'down');&lt;br /&gt;
&lt;br /&gt;
	var newRows = new Array();&lt;br /&gt;
	for (var j = rowStart; j &amp;lt; table.rows.length; j++) {&lt;br /&gt;
		var row = table.rows[j];&lt;br /&gt;
		var keyText = ts_getInnerText(row.cells[column]);&lt;br /&gt;
		var oldIndex = (reverse ? -j : j);&lt;br /&gt;
&lt;br /&gt;
		newRows[newRows.length] = new Array(row, keyText, oldIndex);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	newRows.sort(sortfn);&lt;br /&gt;
&lt;br /&gt;
	var arrowHTML;&lt;br /&gt;
	if (reverse) {&lt;br /&gt;
			arrowHTML = '&amp;lt;img src=&amp;quot;'+ ts_image_path + ts_image_down + '&amp;quot; alt=&amp;quot;&amp;amp;darr;&amp;quot;/&amp;gt;';&lt;br /&gt;
			newRows.reverse();&lt;br /&gt;
			span.setAttribute('sortdir','up');&lt;br /&gt;
	} else {&lt;br /&gt;
			arrowHTML = '&amp;lt;img src=&amp;quot;'+ ts_image_path + ts_image_up + '&amp;quot; alt=&amp;quot;&amp;amp;uarr;&amp;quot;/&amp;gt;';&lt;br /&gt;
			span.setAttribute('sortdir','down');&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones&lt;br /&gt;
	// don't do sortbottom rows&lt;br /&gt;
	for (var i = 0; i &amp;lt; newRows.length; i++) {&lt;br /&gt;
		if ((&amp;quot; &amp;quot;+newRows[i][0].className+&amp;quot; &amp;quot;).indexOf(&amp;quot; sortbottom &amp;quot;) == -1)&lt;br /&gt;
			table.tBodies[0].appendChild(newRows[i][0]);&lt;br /&gt;
	}&lt;br /&gt;
	// do sortbottom rows only&lt;br /&gt;
	for (var i = 0; i &amp;lt; newRows.length; i++) {&lt;br /&gt;
		if ((&amp;quot; &amp;quot;+newRows[i][0].className+&amp;quot; &amp;quot;).indexOf(&amp;quot; sortbottom &amp;quot;) != -1)&lt;br /&gt;
			table.tBodies[0].appendChild(newRows[i][0]);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// Delete any other arrows there may be showing&lt;br /&gt;
	var spans = getElementsByClassName(tr, &amp;quot;span&amp;quot;, &amp;quot;sortarrow&amp;quot;);&lt;br /&gt;
	for (var i = 0; i &amp;lt; spans.length; i++) {&lt;br /&gt;
		spans[i].innerHTML = '&amp;lt;img src=&amp;quot;'+ ts_image_path + ts_image_none + '&amp;quot; alt=&amp;quot;&amp;amp;darr;&amp;quot;/&amp;gt;';&lt;br /&gt;
	}&lt;br /&gt;
	span.innerHTML = arrowHTML;&lt;br /&gt;
&lt;br /&gt;
	ts_alternate(table);		&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ts_dateToSortKey(date) {	&lt;br /&gt;
	// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX&lt;br /&gt;
	if (date.length &amp;gt; 10) {&lt;br /&gt;
		switch (date.substr(3,3).toLowerCase()) {&lt;br /&gt;
			case &amp;quot;jan&amp;quot;: var month = &amp;quot;01&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;feb&amp;quot;: var month = &amp;quot;02&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;mar&amp;quot;: var month = &amp;quot;03&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;apr&amp;quot;: var month = &amp;quot;04&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;may&amp;quot;: var month = &amp;quot;05&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;jun&amp;quot;: var month = &amp;quot;06&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;jul&amp;quot;: var month = &amp;quot;07&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;aug&amp;quot;: var month = &amp;quot;08&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;sep&amp;quot;: var month = &amp;quot;09&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;oct&amp;quot;: var month = &amp;quot;10&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;nov&amp;quot;: var month = &amp;quot;11&amp;quot;; break;&lt;br /&gt;
			case &amp;quot;dec&amp;quot;: var month = &amp;quot;12&amp;quot;; break;&lt;br /&gt;
			// default: var month = &amp;quot;00&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		return date.substr(7,4)+month+date.substr(0,2);&lt;br /&gt;
	} else if (date.length == 10) {&lt;br /&gt;
			return date.substr(6,4)+date.substr(3,2)+date.substr(0,2);&lt;br /&gt;
	} else if (date.length == 8) {&lt;br /&gt;
		yr = date.substr(6,2);&lt;br /&gt;
		if (parseInt(yr) &amp;lt; 50) { &lt;br /&gt;
			yr = '20'+yr; &lt;br /&gt;
		} else { &lt;br /&gt;
			yr = '19'+yr; &lt;br /&gt;
		}&lt;br /&gt;
			return yr+date.substr(3,2)+date.substr(0,2);&lt;br /&gt;
	}&lt;br /&gt;
	return &amp;quot;00000000&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ts_sort_currency(a,b) {&lt;br /&gt;
	var aa = ts_parseFloat_ks(a[1].replace(/[\u00a3$\u20ac\u00a5a-zA-Z]/g,''));&lt;br /&gt;
	var bb = ts_parseFloat_ks(b[1].replace(/[\u00a3$\u20ac\u00a5a-zA-Z]/g,''));&lt;br /&gt;
	return (aa != bb ? aa - bb : a[2] - b[2]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 /** Collapsible tables *********************************************************&lt;br /&gt;
  *&lt;br /&gt;
  *  Description: Allows tables to be collapsed, showing only the header. See&lt;br /&gt;
  *               [[Wikipedia:NavFrame]].&lt;br /&gt;
  *  Maintainer on Wikipedia: [[User:R. Koot]]&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
 var autoCollapse = 2;&lt;br /&gt;
 var collapseCaption = &amp;quot;hide&amp;quot;;&lt;br /&gt;
 var expandCaption = &amp;quot;show&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 function hasClass( element, className ) {&lt;br /&gt;
  var Classes = element.className.split( &amp;quot; &amp;quot; );&lt;br /&gt;
  for ( var i = 0; i &amp;lt; Classes.length; i++ ) {&lt;br /&gt;
    if ( Classes[i] == className ) {&lt;br /&gt;
      return ( true );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return ( false );&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 function collapseTable( tableIndex )&lt;br /&gt;
 {&lt;br /&gt;
     var Button = document.getElementById( &amp;quot;collapseButton&amp;quot; + tableIndex );&lt;br /&gt;
     var Table = document.getElementById( &amp;quot;collapsibleTable&amp;quot; + tableIndex );&lt;br /&gt;
 &lt;br /&gt;
     if ( !Table || !Button ) {&lt;br /&gt;
         return false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     var Rows = Table.getElementsByTagName( &amp;quot;tr&amp;quot; ); &lt;br /&gt;
 &lt;br /&gt;
     if ( Button.firstChild.data == collapseCaption ) {&lt;br /&gt;
         for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
             Rows[i].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
         }&lt;br /&gt;
         Button.firstChild.data = expandCaption;&lt;br /&gt;
     } else {&lt;br /&gt;
         for ( var i = 1; i &amp;lt; Rows.length; i++ ) {&lt;br /&gt;
             Rows[i].style.display = Rows[0].style.display;&lt;br /&gt;
         }&lt;br /&gt;
         Button.firstChild.data = collapseCaption;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function createCollapseButtons()&lt;br /&gt;
 {&lt;br /&gt;
     var tableIndex = 0;&lt;br /&gt;
     var NavigationBoxes = new Object();&lt;br /&gt;
     var Tables = document.getElementsByTagName( &amp;quot;table&amp;quot; );&lt;br /&gt;
 &lt;br /&gt;
     for ( var i = 0; i &amp;lt; Tables.length; i++ ) {&lt;br /&gt;
         if ( hasClass( Tables[i], &amp;quot;collapsible&amp;quot; ) ) {&lt;br /&gt;
             NavigationBoxes[ tableIndex ] = Tables[i];&lt;br /&gt;
             Tables[i].setAttribute( &amp;quot;id&amp;quot;, &amp;quot;collapsibleTable&amp;quot; + tableIndex );&lt;br /&gt;
 &lt;br /&gt;
             var Button     = document.createElement( &amp;quot;span&amp;quot; );&lt;br /&gt;
             var ButtonLink = document.createElement( &amp;quot;a&amp;quot; );&lt;br /&gt;
             var ButtonText = document.createTextNode( collapseCaption );&lt;br /&gt;
 &lt;br /&gt;
             Button.style.styleFloat = &amp;quot;right&amp;quot;;&lt;br /&gt;
             Button.style.cssFloat = &amp;quot;right&amp;quot;;&lt;br /&gt;
             Button.style.fontWeight = &amp;quot;normal&amp;quot;;&lt;br /&gt;
             Button.style.textAlign = &amp;quot;right&amp;quot;;&lt;br /&gt;
             Button.style.width = &amp;quot;6em&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
             ButtonLink.setAttribute( &amp;quot;id&amp;quot;, &amp;quot;collapseButton&amp;quot; + tableIndex );&lt;br /&gt;
             ButtonLink.setAttribute( &amp;quot;href&amp;quot;, &amp;quot;javascript:collapseTable(&amp;quot; + tableIndex + &amp;quot;);&amp;quot; );&lt;br /&gt;
             ButtonLink.appendChild( ButtonText );&lt;br /&gt;
 &lt;br /&gt;
             Button.appendChild( document.createTextNode( &amp;quot;[&amp;quot; ) );&lt;br /&gt;
             Button.appendChild( ButtonLink );&lt;br /&gt;
             Button.appendChild( document.createTextNode( &amp;quot;]&amp;quot; ) );&lt;br /&gt;
 &lt;br /&gt;
             var Header = Tables[i].getElementsByTagName( &amp;quot;tr&amp;quot; )[0].getElementsByTagName( &amp;quot;th&amp;quot; )[0];&lt;br /&gt;
             /* only add button and increment count if there is a header row to work with */&lt;br /&gt;
             if (Header) {&lt;br /&gt;
                 Header.insertBefore( Button, Header.childNodes[0] );&lt;br /&gt;
                 tableIndex++;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     for ( var i = 0;  i &amp;lt; tableIndex; i++ ) {&lt;br /&gt;
         if ( hasClass( NavigationBoxes[i], &amp;quot;collapsed&amp;quot; ) || ( tableIndex &amp;gt;= autoCollapse &amp;amp;&amp;amp; hasClass( NavigationBoxes[i], &amp;quot;autocollapse&amp;quot; ) ) ) {&lt;br /&gt;
             collapseTable( i );&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 addOnloadHook( createCollapseButtons );&lt;br /&gt;
&lt;br /&gt;
//Shuffle for election candidates&lt;br /&gt;
function dshuf(){&lt;br /&gt;
                var shufsets=new Object()&lt;br /&gt;
                var rx=new RegExp('dshuf'+'\\s+(dshufset\\d+)', 'i') &lt;br /&gt;
                var divs=document.getElementsByTagName(&amp;quot;div&amp;quot;)&lt;br /&gt;
                for (var i=0; i&amp;lt;divs.length; i++){&lt;br /&gt;
                        if (rx.test(divs[i].className)){&lt;br /&gt;
                                if (typeof shufsets[RegExp.$1]==&amp;quot;undefined&amp;quot;){ &lt;br /&gt;
                                        shufsets[RegExp.$1]=new Object() &lt;br /&gt;
                                        shufsets[RegExp.$1].inner=[] &lt;br /&gt;
                                        shufsets[RegExp.$1].member=[]&lt;br /&gt;
                                }&lt;br /&gt;
                                        shufsets[RegExp.$1].inner.push(divs[i].innerHTML) &lt;br /&gt;
                                        shufsets[RegExp.$1].member.push(divs[i]) &lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
                for (shufset in shufsets){&lt;br /&gt;
                        shufsets[shufset].inner.sort(function() {return 0.5 - Math.random()})&lt;br /&gt;
                        for (var i=0; i&amp;lt;shufsets[shufset].member.length; i++){&lt;br /&gt;
                                shufsets[shufset].member[i].innerHTML=shufsets[shufset].inner[i]&lt;br /&gt;
                                shufsets[shufset].member[i].style.display=&amp;quot;block&amp;quot;&lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addOnloadHook(dshuf);&lt;br /&gt;
&lt;br /&gt;
/*************&lt;br /&gt;
*** AJAX transclusion table &amp;lt;http://meta.wikimedia.org/wiki/User:Pathoschild/Scripts/AJAX_transclusion_table&amp;gt;&lt;br /&gt;
*** by [[m:user:Pathoschild]]&lt;br /&gt;
*************/&lt;br /&gt;
function attLoader() {&lt;br /&gt;
	if(getElementsByClassName(document.getElementsByTagName('body')[0],'table','attable').length) {&lt;br /&gt;
	        document.write('&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;'&lt;br /&gt;
	          + 'http://meta.wikimedia.org/w/index.php?title=User:Pathoschild/Scripts/AJAX_transclusion_table.js' &lt;br /&gt;
	          + '&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;');&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
addOnloadHook(attLoader);&lt;br /&gt;
&lt;br /&gt;
/** JSconfig ************&lt;br /&gt;
 * Global configuration options to enable/disable and configure&lt;br /&gt;
 * specific script features from [[MediaWiki:Common.js]] and&lt;br /&gt;
 * [[MediaWiki:Monobook.js]]&lt;br /&gt;
 * This framework adds config options (saved as cookies) to [[Special:Preferences]]&lt;br /&gt;
 * For a more permanent change you can override the default settings in your &lt;br /&gt;
 * [[Special:Mypage/monobook.js]]&lt;br /&gt;
 * for Example: JSconfig.keys[loadAutoInformationTemplate] = false;&lt;br /&gt;
 *&lt;br /&gt;
 *  Maintainer: [[User:Dschwen]]&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
var JSconfig =&lt;br /&gt;
{&lt;br /&gt;
 prefix : 'jsconfig_',&lt;br /&gt;
 keys : {},&lt;br /&gt;
 meta : {},&lt;br /&gt;
 &lt;br /&gt;
 //&lt;br /&gt;
 // Register a new configuration item&lt;br /&gt;
 //  * name          : String, internal name&lt;br /&gt;
 //  * default_value : String or Boolean (type determines configuration widget)&lt;br /&gt;
 //  * description   : String, text appearing next to the widget in the preferences&lt;br /&gt;
 //  * prefpage      : Integer (optional), section in the preferences to insert the widget:&lt;br /&gt;
 //                     0 : User profile&lt;br /&gt;
 //                     1 : Skin&lt;br /&gt;
 //                     2 : Math&lt;br /&gt;
 //                     3 : Files&lt;br /&gt;
 //                     4 : Date and time&lt;br /&gt;
 //                     5 : Editing&lt;br /&gt;
 //                     6 : Recent changes&lt;br /&gt;
 //                     7 : Watchlist&lt;br /&gt;
 //                     8 : Search&lt;br /&gt;
 //                     9 : Misc&lt;br /&gt;
 //&lt;br /&gt;
 // Access keys through JSconfig.keys[name]&lt;br /&gt;
 //&lt;br /&gt;
 registerKey : function( name, default_value, description, prefpage )&lt;br /&gt;
 {&lt;br /&gt;
  if( typeof(JSconfig.keys[name]) == 'undefined' ) &lt;br /&gt;
   JSconfig.keys[name] = default_value;&lt;br /&gt;
  else {&lt;br /&gt;
 &lt;br /&gt;
   // all cookies are read as strings, &lt;br /&gt;
   // convert to the type of the default value&lt;br /&gt;
   switch( typeof(default_value) )&lt;br /&gt;
   {&lt;br /&gt;
    case 'boolean' : JSconfig.keys[name] = ( JSconfig.keys[name] == 'true' ); break;&lt;br /&gt;
    case 'number'  : JSconfig.keys[name] = JSconfig.keys[name]/1; break;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  JSconfig.meta[name] = { 'description' : description, 'page' : prefpage || 0, 'default_value' : default_value };&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 readCookies : function()&lt;br /&gt;
 {&lt;br /&gt;
  var cookies = document.cookie.split(&amp;quot;; &amp;quot;);&lt;br /&gt;
  var p =JSconfig.prefix.length;&lt;br /&gt;
  var i;&lt;br /&gt;
 &lt;br /&gt;
  for( var key in cookies )&lt;br /&gt;
  {&lt;br /&gt;
   if( cookies[key].substring(0,p) == JSconfig.prefix )&lt;br /&gt;
   {&lt;br /&gt;
    i = cookies[key].indexOf('=');&lt;br /&gt;
    //alert( cookies[key] + ',' + key + ',' + cookies[key].substring(p,i) );&lt;br /&gt;
    JSconfig.keys[cookies[key].substring(p,i)] = cookies[key].substring(i+1);&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 writeCookies : function()&lt;br /&gt;
 {&lt;br /&gt;
  for( var key in JSconfig.keys )&lt;br /&gt;
   document.cookie = JSconfig.prefix + key + '=' + JSconfig.keys[key] + '; path=/; expires=Thu, 2 Aug 2009 10:10:10 UTC';&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 evaluateForm : function()&lt;br /&gt;
 {&lt;br /&gt;
  var w_ctrl,wt;&lt;br /&gt;
  //alert('about to save JSconfig');&lt;br /&gt;
  for( var key in JSconfig.meta ) {&lt;br /&gt;
   w_ctrl = document.getElementById( JSconfig.prefix + key )&lt;br /&gt;
   if( w_ctrl ) &lt;br /&gt;
   {&lt;br /&gt;
    wt = typeof( JSconfig.meta[key].default_value );&lt;br /&gt;
    switch( wt ) {&lt;br /&gt;
     case 'boolean' : JSconfig.keys[key] = w_ctrl.checked; break;&lt;br /&gt;
     case 'string' : JSconfig.keys[key] = w_ctrl.value; break;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  JSconfig.writeCookies();&lt;br /&gt;
  return true;&lt;br /&gt;
 },&lt;br /&gt;
 &lt;br /&gt;
 setUpForm : function()&lt;br /&gt;
 { &lt;br /&gt;
  var prefChild = document.getElementById('preferences');&lt;br /&gt;
  if( !prefChild ) return;&lt;br /&gt;
  prefChild = prefChild.childNodes;&lt;br /&gt;
 &lt;br /&gt;
  //&lt;br /&gt;
  // make a list of all preferences sections&lt;br /&gt;
  //&lt;br /&gt;
  var tabs = new Array;&lt;br /&gt;
  var len = prefChild.length;&lt;br /&gt;
  for( var key = 0; key &amp;lt; len; key++ ) {&lt;br /&gt;
   if( prefChild[key].tagName &amp;amp;&amp;amp;&lt;br /&gt;
       prefChild[key].tagName.toLowerCase() == 'fieldset' ) &lt;br /&gt;
    tabs.push(prefChild[key]);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  //&lt;br /&gt;
  // Create Widgets for all registered config keys&lt;br /&gt;
  //&lt;br /&gt;
  var w_div, w_label, w_ctrl, wt;&lt;br /&gt;
  for( var key in JSconfig.meta ) {&lt;br /&gt;
   w_div = document.createElement( 'DIV' );&lt;br /&gt;
 &lt;br /&gt;
   w_label = document.createElement( 'LABEL' );&lt;br /&gt;
   w_label.appendChild( document.createTextNode( JSconfig.meta[key].description ) )&lt;br /&gt;
   w_label.htmlFor = JSconfig.prefix + key;&lt;br /&gt;
 &lt;br /&gt;
   wt = typeof( JSconfig.meta[key].default_value );&lt;br /&gt;
 &lt;br /&gt;
   w_ctrl = document.createElement( 'INPUT' );&lt;br /&gt;
   w_ctrl.id = JSconfig.prefix + key;&lt;br /&gt;
 &lt;br /&gt;
   // before insertion into the DOM tree&lt;br /&gt;
   switch( wt ) {&lt;br /&gt;
    case 'boolean' : w_ctrl.type = 'checkbox'; break;&lt;br /&gt;
    case 'string'  : w_ctrl.type = 'text'; break;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   w_div.appendChild( w_label );&lt;br /&gt;
   w_div.appendChild( w_ctrl );&lt;br /&gt;
   tabs[JSconfig.meta[key].page].appendChild( w_div );&lt;br /&gt;
 &lt;br /&gt;
   // after insertion into the DOM tree&lt;br /&gt;
   switch( wt ) {&lt;br /&gt;
    case 'boolean' : w_ctrl.defaultChecked = w_ctrl.checked = JSconfig.keys[key]; break;&lt;br /&gt;
    case 'string' : w_ctrl.defaultValue = w_ctrl.value = JSconfig.keys[key]; break;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
  addHandler(document.getElementById('preferences').parentNode, 'submit', JSconfig.evaluateForm );&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
JSconfig.readCookies();&lt;br /&gt;
addOnloadHook(JSconfig.setUpForm);&lt;br /&gt;
&lt;br /&gt;
/*&amp;lt;/source&amp;gt;*/&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan</id>
		<title>Schedules/KDE4/4.1 Feature Plan</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan"/>
				<updated>2008-01-29T23:13:50Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE4.1 Feature Plan =&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Deadline for adding entries here for the 4.1 release is xxx.&amp;lt;br&amp;gt;&lt;br /&gt;
Entries can be added after that date, but they may not be included with 4.1.&lt;br /&gt;
&lt;br /&gt;
todo =&amp;gt; not started yet&amp;lt;br&amp;gt;&lt;br /&gt;
in-progress =&amp;gt; started, but not completed yet&amp;lt;br&amp;gt;&lt;br /&gt;
done =&amp;gt; completed&lt;br /&gt;
&lt;br /&gt;
=== kdebase-apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: red;&amp;quot;&lt;br /&gt;
| todo || fred || add foo to fred. foo will provide the ability to make fred do neat stuff, but only on Tuesday. For more info see [http://foo.org this link]  || [mailto:john-doe@kde.org john doe@kde.org]&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: yellow;&amp;quot;&lt;br /&gt;
| in-progress || fred || add upside-down video support using the UDV library.  || [mailto:john-doe@kde.org john doe@kde.org]&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: yellow;&amp;quot;&lt;br /&gt;
{{FeatureTodo|fred|fred needs this|wilma@kde.org}}&lt;br /&gt;
{{FeatureInProgress|fred|fred needs this|wilma@kde.org}}&lt;br /&gt;
{{FeatureDone|fred|fred needs this|wilma@kde.org}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureDone</id>
		<title>Template:FeatureDone</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureDone"/>
				<updated>2008-01-29T23:13:17Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|Done|{{{2}}}|{{{3}}}|green}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureInProgress</id>
		<title>Template:FeatureInProgress</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureInProgress"/>
				<updated>2008-01-29T23:12:39Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|in-progress|{{{2}}}|{{{3}}}|yellow}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|todo|{{{2}}}|{{{3}}}|red}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:11:53Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|todo}}}|{{{2}}}|{{{3}}}|red}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureInProgress</id>
		<title>Template:FeatureInProgress</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureInProgress"/>
				<updated>2008-01-29T23:11:17Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|in-progress}}}|{{{2}}}|{{{3}}}|yellow}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureInProgress</id>
		<title>Template:FeatureInProgress</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureInProgress"/>
				<updated>2008-01-29T23:10:04Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: New page: {{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{4}}}|yellow}} &amp;lt;noinclude&amp;gt; Category:Template &amp;lt;/noinclude&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{4}}}|yellow}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureDone</id>
		<title>Template:FeatureDone</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureDone"/>
				<updated>2008-01-29T23:09:44Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: New page: {{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{4}}}|green}} &amp;lt;noinclude&amp;gt; Category:Template &amp;lt;/noinclude&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{4}}}|green}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan</id>
		<title>Schedules/KDE4/4.1 Feature Plan</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan"/>
				<updated>2008-01-29T23:09:02Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE4.1 Feature Plan =&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Deadline for adding entries here for the 4.1 release is xxx.&amp;lt;br&amp;gt;&lt;br /&gt;
Entries can be added after that date, but they may not be included with 4.1.&lt;br /&gt;
&lt;br /&gt;
todo =&amp;gt; not started yet&amp;lt;br&amp;gt;&lt;br /&gt;
in-progress =&amp;gt; started, but not completed yet&amp;lt;br&amp;gt;&lt;br /&gt;
done =&amp;gt; completed&lt;br /&gt;
&lt;br /&gt;
=== kdebase-apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: red;&amp;quot;&lt;br /&gt;
| todo || fred || add foo to fred. foo will provide the ability to make fred do neat stuff, but only on Tuesday. For more info see [http://foo.org this link]  || [mailto:john-doe@kde.org john doe@kde.org]&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: yellow;&amp;quot;&lt;br /&gt;
| in-progress || fred || add upside-down video support using the UDV library.  || [mailto:john-doe@kde.org john doe@kde.org]&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: yellow;&amp;quot;&lt;br /&gt;
{{FeatureTodo|done|fred|fred needs this|wilma@kde.org}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T23:08:43Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top style=&amp;quot;background-color: {{{5|white}}};&amp;quot;&lt;br /&gt;
|{{{1|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{4|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{4}}}|red}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T23:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top style=&amp;quot;background-color: {{{5|white}};&amp;quot;&lt;br /&gt;
|{{{1|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{4|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:06:38Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{3}}}|red}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{3}}}|red}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T23:05:05Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top style=&amp;quot;background-color: {{{4|white}};&amp;quot;&lt;br /&gt;
|{{{0|status missing}}}||{{{1|project issing}}}||{{{2|description missing}}}||[mailto:{{{3}}} {{{3|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:FeatureTodo</id>
		<title>Template:FeatureTodo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:FeatureTodo"/>
				<updated>2008-01-29T23:04:33Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: New page: {{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{3}}}|red}}};&amp;quot; &amp;lt;noinclude&amp;gt; Category:Template &amp;lt;/noinclude&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{feature|{{{1}}}|{{{2}}}|{{{3}}}|{{{3}}}|red}}};&amp;quot;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T23:02:41Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top style=&amp;quot;background-color: {{{color}}};&amp;quot;&lt;br /&gt;
|{{{0|status missing}}}||{{{1|project issing}}}||{{{2|description missing}}}||[mailto:{{{3}}} {{{3|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan</id>
		<title>Schedules/KDE4/4.1 Feature Plan</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.1_Feature_Plan"/>
				<updated>2008-01-29T22:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE4.1 Feature Plan =&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Deadline for adding entries here for the 4.1 release is xxx.&amp;lt;br&amp;gt;&lt;br /&gt;
Entries can be added after that date, but they may not be included with 4.1.&lt;br /&gt;
&lt;br /&gt;
todo =&amp;gt; not started yet&amp;lt;br&amp;gt;&lt;br /&gt;
in-progress =&amp;gt; started, but not completed yet&amp;lt;br&amp;gt;&lt;br /&gt;
done =&amp;gt; completed&lt;br /&gt;
&lt;br /&gt;
=== kdebase-apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Project !! Description !! Contact&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: red;&amp;quot;&lt;br /&gt;
| todo || fred || add foo to fred. foo will provide the ability to make fred do neat stuff, but only on Tuesday. For more info see [http://foo.org this link]  || [mailto:john-doe@kde.org john doe@kde.org]&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: yellow;&amp;quot;&lt;br /&gt;
| in-progress || fred || add upside-down video support using the UDV library.  || [mailto:john-doe@kde.org john doe@kde.org]&lt;br /&gt;
|- valign=top style=&amp;quot;background-color: yellow;&amp;quot;&lt;br /&gt;
{{feature|done|fred|fred needs this|wilma@kde.org}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:57:15Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top /*{{{0|pogress missing}}}*/&lt;br /&gt;
|{{{1|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{4|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:56:43Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top /*{{{1|pogress missing}}}*/&lt;br /&gt;
|{{{1|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{4|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:54:13Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top /*{{{1|pogress missing}}}*/&lt;br /&gt;
|{{{0|status missing}}}||{{{2|project issing}}}||{{{3|description missing}}}||[mailto:{{{4}}} {{{4|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:52:16Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top /*{{{2|pogress missing}}}*/&lt;br /&gt;
|{{{1|status missing}}}||{{{3|project issing}}}||{{{4|description missing}}}||[mailto:{{{5}}} {{{5|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:51:37Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top /*{{{2=progress|pogress missing}}}*/&lt;br /&gt;
|{{{1=status|status missing}}}||{{{3=project|project issing}}}||{{{4=description|description missing}}}||[mailto:{{{5=contact}}} {{{5=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:46:17Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top /*{{{2=progress|pogress missing}}}*/&lt;br /&gt;
|{{{1=status|status missing}}}||{{{3=project|project missing}}}||{{{4=description|description missing}}}||[mailto:{{{5=contact}}} {{{5=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:45:03Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|{{{1=status|status missing}}}{{{2=status|status missing}}}||{{{3=project|project missing}}}||{{{4=description|description missing}}}||[mailto:{{{5=contact}}} {{{5=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:40:42Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|{{{1=status|status missing}}}||{{{2=project|project missing}}}||{{{3=description|description missing}}}||[mailto:{{{4=contact}}} {{{4=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:40:10Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|{{{0=status|status missing}}}||{{{1=project|project missing}}}||{{{2=description|description missing}}}||[mailto:{{{3=contact}}} {{{3=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|{{{1=status|status missing}}}||{{{2=project|project missing}}}||{{{3=description|description missing}}}||[mailto:{{{4=contact}}} {{{3=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:37:13Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
|{{{status|status missing}}}||{{{1=project|project missing}}}||{{{2=description|description missing}}}||[mailto:{{{3=contact}}} {{{3=contact|contact missing}}}]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:28:13Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|- valign=top&lt;br /&gt;
||{{{status|status missing}}}||{{{1=project|project missing}}}||{{{2=description|description missing}}}||[mailto:{{{3=contact}}} {{{3=contact|contact missing}}}]||&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:27:35Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;||{{{status|status missing}}}||{{{1=project|project missing}}}||{{{2=description|description missing}}}||[mailto:{{{3=contact}}} {{{3=contact|contact missing}}}]||&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:27:09Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: TechBase:Feature moved to Template:Feature: Upps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|{{{status|status missing}}}|{{{1=project|project missing}}}|{{{2=description|description missing}}}|[mailto:{{{3=contact}}} {{{3=contact|contact missing}}}]|&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/TechBase:Feature</id>
		<title>TechBase:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/TechBase:Feature"/>
				<updated>2008-01-29T22:27:09Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: TechBase:Feature moved to Template:Feature: Upps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Feature]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:Feature</id>
		<title>Template:Feature</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:Feature"/>
				<updated>2008-01-29T22:17:56Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: New Template for feature catalogue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|{{{status|status missing}}}|{{{1=project|project missing}}}|{{{2=description|description missing}}}|[mailto:{{{3=contact}}} {{{3=contact|contact missing}}}]|&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Template]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Mschiff/Slashes_in_Filenames</id>
		<title>User:Mschiff/Slashes in Filenames</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Mschiff/Slashes_in_Filenames"/>
				<updated>2008-01-21T15:57:11Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: /* The solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is about KDEs special feature of allowing slashes (/) in filenames.&lt;br /&gt;
&lt;br /&gt;
Date: 08/01/17&lt;br /&gt;
&lt;br /&gt;
=The problem=&lt;br /&gt;
&lt;br /&gt;
KDE allows filenames containing a slash (/).&lt;br /&gt;
Technically it is not possible to have &amp;quot;/&amp;quot; in filenames because &amp;quot;/&amp;quot; is the filesystem path seperator.&lt;br /&gt;
So KDE encodes filenames and saves the filename like in http URL encoding with &amp;quot;%2f&amp;quot; for every &amp;quot;/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I am convinced that this behavior is a bad idea and brings a lot of trouble. &lt;br /&gt;
&lt;br /&gt;
I will now try to explain why.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;/&amp;quot; is not an allowed character in filenames of UNIX filesystems&lt;br /&gt;
* AFAICT there is no other known OS or Desktop Environment (DE) that allows this&lt;br /&gt;
* &amp;quot;%2f&amp;quot; is a valid filename&lt;br /&gt;
* Allowing &amp;quot;/&amp;quot; in filenames brings following problems:&lt;br /&gt;
** its not possible to have files containing %2f in the name for whatever reason even if escaped to %%2f then it would not be possible to have a file called like %%2f and be presented like that if not escaped ad %%%2f ...and so on&lt;br /&gt;
** KDE is not an isolated world. People using it want to communicate to other people and to share files with them.&lt;br /&gt;
** Bad interoperability: sending files with &amp;quot;/&amp;quot; in it to other people will always end up as apparently broken filenames on other systems if its not KDE (Gnome, XFCE, CDE, Windows). This may damage KDE's reputation in a way that people may think that KDE produces broken file(name)s now and then.&lt;br /&gt;
** konqueror lists files and has a location bar. It is possible to access files directly through that location bar. Now if there is a file called &amp;quot;foo/bar&amp;quot; (foo%2fbar on disk) and a directory called foo containing a file called bar: what will be selected if a user enters this in the location bar? what will the user expect to hit? Wouldnt that make eval things possible? The same applies to krunner or the file-dialog. Because of that encoded filenames have to be treated special in some places and produce an inconsistent user experience.&lt;br /&gt;
&lt;br /&gt;
* Krusader shows files as they are on disk (foo%2fbar)&lt;br /&gt;
* ark shows files as they are in an archive (foo%2fbar)&lt;br /&gt;
* users often use the console to manage files in a batch&lt;br /&gt;
* KDE is not compatible with linux coreutils (cp,mv,...) if it decodes and encodes filenames in a way that it will confuse people by the fact that files shown by &amp;quot;ls&amp;quot; look differently than files shown by dolphin or konqueror although there are just plain us-ascii characters being used for the filenames.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=The solution=&lt;br /&gt;
&lt;br /&gt;
=== Marcs solution ===&lt;br /&gt;
&lt;br /&gt;
I vote for just removing this feature to prevent all those problems described above and to solve the related bugreports.&lt;br /&gt;
&lt;br /&gt;
=== Davids solution ===&lt;br /&gt;
I found a much better solution to allow '/' without all this escaping: using a unicode character that looks like a slash but that isn't '/': QChar(0x2044), also known as &amp;quot;FRACTION SLASH&amp;quot;.Looks quite nice IMHO: http://web.davidfaure.fr/kde/slash.jpg&lt;br /&gt;
&lt;br /&gt;
Ah... of course there's one downside: if you name a file &amp;quot;http://www.kde.org&amp;quot; you can't copy paste that name into the webbrowser as a URL, since the slashes are not real slashes anymore. Oh well, corner case of the corner case..&lt;br /&gt;
&lt;br /&gt;
=Related bugreports=&lt;br /&gt;
* https://bugs.kde.org/show_bug.cgi?id=51306&lt;br /&gt;
* https://bugs.kde.org/show_bug.cgi?id=100516&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Events/KDE4ReleaseParties/Bonn</id>
		<title>Events/KDE4ReleaseParties/Bonn</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Events/KDE4ReleaseParties/Bonn"/>
				<updated>2008-01-14T23:23:47Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Initial site layout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Participants ==&lt;br /&gt;
* Daniel Molkentin&lt;br /&gt;
* Peter Jung&lt;br /&gt;
* Olaf Schmidt&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
Please feel free to add your ideas here!&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
&lt;br /&gt;
* organize projector&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Events/KDE4ReleaseParties</id>
		<title>Events/KDE4ReleaseParties</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Events/KDE4ReleaseParties"/>
				<updated>2008-01-14T23:22:23Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: /* Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE 4 Release Parties =&lt;br /&gt;
&lt;br /&gt;
== Main Event in Mountain View ==&lt;br /&gt;
&lt;br /&gt;
January 17–19, 2008, on the Google Campus in Mountain View, California.&lt;br /&gt;
&lt;br /&gt;
[http://www.kde.org/kde-4.0-release-event/ More info on the main event.]&lt;br /&gt;
&lt;br /&gt;
== Other Events ==&lt;br /&gt;
(World Map with Events)&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.com/maps/ms?ie=UTF&amp;amp;msa=0&amp;amp;msid=103852430929072245482.0004436f32d21086c105d Release Events]&lt;br /&gt;
&lt;br /&gt;
(In lexicographical order)&lt;br /&gt;
&lt;br /&gt;
=== Australia ===&lt;br /&gt;
&lt;br /&gt;
==== Tasmania ====&lt;br /&gt;
&lt;br /&gt;
; Hobart :&lt;br /&gt;
:Event: Coffeetime at Starbucks (there is only 1), Friday 11th January, 5:30pm&lt;br /&gt;
:Contact: 'Sif Contact just turn up :D&lt;br /&gt;
&lt;br /&gt;
=== Brazil ===&lt;br /&gt;
&lt;br /&gt;
; Aracaju : Evento: KDE4 - Encontro dos usuários KDE de Sergipe&lt;br /&gt;
:Localização: Shopping Jardins - Na nova praça de alimentação - Aracaju - SE - Brazil&lt;br /&gt;
:Dia: 18/01&lt;br /&gt;
:Quer ir, me contate: aragao.otavio@gmail.com&lt;br /&gt;
&lt;br /&gt;
=== Costa Rica ===&lt;br /&gt;
&lt;br /&gt;
; San Jose : Lanzamiento de KDE 4.0 por el grupo de usuarios de Linux de la Universidad Latina de Costa Rica, GCL.&lt;br /&gt;
:Dia: 19/01/2008&lt;br /&gt;
:contacto: panki@nativo.net&lt;br /&gt;
&lt;br /&gt;
=== Estonia ===&lt;br /&gt;
&lt;br /&gt;
; Tallinn :Üritus: Väike kohvi, väike õlu, väike snäkk, väike KDE.&lt;br /&gt;
:Asukoht: Tallinn, [http://www.maurus.ee Mauruse Pubi] (Estonia Pst. 8).&lt;br /&gt;
:Aeg: 18.01.2008, 18:00 EET&lt;br /&gt;
:Kontakt: Suva ät linux punkt ee, viiskuusüksviisüheksaükskaheksaseitse.&lt;br /&gt;
:Viide: [http://pingviin.org/viewtopic.php?p=27359 Teema pingviini foorumis]&lt;br /&gt;
&lt;br /&gt;
=== France ===&lt;br /&gt;
&lt;br /&gt;
; Toulouse : &lt;br /&gt;
:Adresse : Centre Culturel Bellegarde, 17, rue Bellegarde à Toulouse&lt;br /&gt;
:Dates : 25 janvier 20h (Discours d'A. Seigo retransmis en français, cocktail dînatoire) &lt;br /&gt;
:26 janvier 9:00 - 18:00 (Présentations bibliothèques KDE4 et Qt, Solid, traductions, éducatif)&lt;br /&gt;
:Contact : darktears31 AT gmail DOTcom&lt;br /&gt;
:Website : http://www.toulibre.org/KDE4&lt;br /&gt;
&lt;br /&gt;
=== Germany ===&lt;br /&gt;
&lt;br /&gt;
; Berlin : &lt;br /&gt;
:Event: Party at the KDAB Berlin office&lt;br /&gt;
:Address: Adalbertstr. 7/8, Kreuzberg. U Kottbusser Tor. ([http://maps.google.de/maps?f=q&amp;amp;hl=en&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=Adalbertstra%C3%9Fe+7,+Kreuzberg+10999+Berlin,+Berlin,+Berlin,+Germany&amp;amp;sll=51.124213,10.546875&amp;amp;sspn=14.085092,34.189453&amp;amp;ie=UTF8&amp;amp;cd=2&amp;amp;geocode=0,52.500538,13.418768&amp;amp;z=16&amp;amp;iwloc=addr&amp;amp;om=1 Google maps instructions])&lt;br /&gt;
:Date: 18.1., 20.00&lt;br /&gt;
:Please let us know if you're comming: kde4-release-party@kdab.net&lt;br /&gt;
:Contact: till@kdab.net, ellen@reitmayr.net&lt;br /&gt;
&lt;br /&gt;
; Bonn :&lt;br /&gt;
:Event: Party in Netzladen (http://www.netzladen.org)&lt;br /&gt;
:Address: Wolfstr. 10&lt;br /&gt;
:Arrival: http://www.netzladen.org/home/anfahrt&lt;br /&gt;
:Date: 18.01., 19:00h&lt;br /&gt;
:Contact: danimo (at) kde.org&lt;br /&gt;
:Plannung: [[Events/KDE4ReleaseParties/Bonn]] (add yourself!)&lt;br /&gt;
&lt;br /&gt;
; Hamburg : &lt;br /&gt;
:Event: Party in the rooms of freiheit.com (http://www.freiheit.com/)&lt;br /&gt;
:Address: Straßenbahnring 22, Hoheluft-Ost&lt;br /&gt;
:Date: 18.01., 19:00h&lt;br /&gt;
:Contact: sven ( at) community-org.de&lt;br /&gt;
&lt;br /&gt;
; Stuttgart : &lt;br /&gt;
:Event: Linux Day at the HdM Stuttgart (Stuttgart Media University) &lt;br /&gt;
:[http://www.hdm-stuttgart.de/aktuell/terminkalender/view_terminfooter?terminid=event20071211101808 Announcement]&lt;br /&gt;
:Live Stream: mms://stream.mi.hdm-stuttgart.de/linuxday_jan08&lt;br /&gt;
:Contact: mail@bernhardrode.de&lt;br /&gt;
:News, Chat and Live Coverage: http://www.linux-day.de&lt;br /&gt;
&lt;br /&gt;
=== India ===&lt;br /&gt;
; Chennai :&lt;br /&gt;
:Event: KDE 4 Release party at  NRCFOSS, AU-KBC Research centre,MIT,chromepet .&lt;br /&gt;
:Add your name in wiki http://nrcfosshelpline.in/code/wiki/kde4releaseparty&lt;br /&gt;
:Date:20/01/2008&lt;br /&gt;
:contact:pavithran.s@gmail.com&lt;br /&gt;
&lt;br /&gt;
=== Portugal ===&lt;br /&gt;
&lt;br /&gt;
; Aveiro : UA KDE4.0 festa de apresentação&lt;br /&gt;
:Dia: 15/02&lt;br /&gt;
:contacto: nuno@oxygen-icons.org&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Events/KDE4ReleaseParties</id>
		<title>Events/KDE4ReleaseParties</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Events/KDE4ReleaseParties"/>
				<updated>2008-01-14T19:34:14Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Party in Bonn&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KDE 4 Release Parties =&lt;br /&gt;
&lt;br /&gt;
== Main Event in Mountain View ==&lt;br /&gt;
&lt;br /&gt;
January 17–19, 2008, on the Google Campus in Mountain View, California.&lt;br /&gt;
&lt;br /&gt;
[http://www.kde.org/kde-4.0-release-event/ More info on the main event.]&lt;br /&gt;
&lt;br /&gt;
== Other Events ==&lt;br /&gt;
(World Map with Events)&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.com/maps/ms?ie=UTF&amp;amp;msa=0&amp;amp;msid=103852430929072245482.0004436f32d21086c105d Release Events]&lt;br /&gt;
&lt;br /&gt;
(In lexicographical order)&lt;br /&gt;
&lt;br /&gt;
=== Australia ===&lt;br /&gt;
&lt;br /&gt;
==== Tasmania ====&lt;br /&gt;
&lt;br /&gt;
; Hobart :&lt;br /&gt;
:Event: Coffeetime at Starbucks (there is only 1), Friday 11th January, 5:30pm&lt;br /&gt;
:Contact: 'Sif Contact just turn up :D&lt;br /&gt;
&lt;br /&gt;
=== Brazil ===&lt;br /&gt;
&lt;br /&gt;
; Aracaju : Evento: KDE4 - Encontro dos usuários KDE de Sergipe&lt;br /&gt;
:Localização: Shopping Jardins - Na nova praça de alimentação - Aracaju - SE - Brazil&lt;br /&gt;
:Dia: 18/01&lt;br /&gt;
:Quer ir, me contate: aragao.otavio@gmail.com&lt;br /&gt;
&lt;br /&gt;
=== Costa Rica ===&lt;br /&gt;
&lt;br /&gt;
; San Jose : Lanzamiento de KDE 4.0 por el grupo de usuarios de Linux de la Universidad Latina de Costa Rica, GCL.&lt;br /&gt;
:Dia: 19/01/2008&lt;br /&gt;
:contacto: panki@nativo.net&lt;br /&gt;
&lt;br /&gt;
=== Estonia ===&lt;br /&gt;
&lt;br /&gt;
; Tallinn :Üritus: Väike kohvi, väike õlu, väike snäkk, väike KDE.&lt;br /&gt;
:Asukoht: Tallinn, [http://www.maurus.ee Mauruse Pubi] (Estonia Pst. 8).&lt;br /&gt;
:Aeg: 18.01.2008, 18:00 EET&lt;br /&gt;
:Kontakt: Suva ät linux punkt ee, viiskuusüksviisüheksaükskaheksaseitse.&lt;br /&gt;
:Viide: [http://pingviin.org/viewtopic.php?p=27359 Teema pingviini foorumis]&lt;br /&gt;
&lt;br /&gt;
=== France ===&lt;br /&gt;
&lt;br /&gt;
; Toulouse : &lt;br /&gt;
:Adresse : Centre Culturel Bellegarde, 17, rue Bellegarde à Toulouse&lt;br /&gt;
:Dates : 25 janvier 20h (Discours d'A. Seigo retransmis en français, cocktail dînatoire) &lt;br /&gt;
:26 janvier 9:00 - 18:00 (Présentations bibliothèques KDE4 et Qt, Solid, traductions, éducatif)&lt;br /&gt;
:Contact : darktears31 AT gmail DOTcom&lt;br /&gt;
:Website : http://www.toulibre.org/KDE4&lt;br /&gt;
&lt;br /&gt;
=== Germany ===&lt;br /&gt;
&lt;br /&gt;
; Berlin : &lt;br /&gt;
:Event: Party at the KDAB Berlin office&lt;br /&gt;
:Address: Adalbertstr. 7/8, Kreuzberg. U Kottbusser Tor. ([http://maps.google.de/maps?f=q&amp;amp;hl=en&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=Adalbertstra%C3%9Fe+7,+Kreuzberg+10999+Berlin,+Berlin,+Berlin,+Germany&amp;amp;sll=51.124213,10.546875&amp;amp;sspn=14.085092,34.189453&amp;amp;ie=UTF8&amp;amp;cd=2&amp;amp;geocode=0,52.500538,13.418768&amp;amp;z=16&amp;amp;iwloc=addr&amp;amp;om=1 Google maps instructions])&lt;br /&gt;
:Date: 18.1., 20.00&lt;br /&gt;
:Please let us know if you're comming: kde4-release-party@kdab.net&lt;br /&gt;
:Contact: till@kdab.net, ellen@reitmayr.net&lt;br /&gt;
&lt;br /&gt;
; Hamburg : &lt;br /&gt;
:Event: Party in the rooms of freiheit.com (http://www.freiheit.com/)&lt;br /&gt;
:Address: Straßenbahnring 22, Hoheluft-Ost&lt;br /&gt;
:Date: 18.01., 19:00h&lt;br /&gt;
:Contact: sven ( at) community-org.de&lt;br /&gt;
&lt;br /&gt;
; Stuttgart : &lt;br /&gt;
:Event: Linux Day at the HdM Stuttgart (Stuttgart Media University) &lt;br /&gt;
:[http://www.hdm-stuttgart.de/aktuell/terminkalender/view_terminfooter?terminid=event20071211101808 Announcement]&lt;br /&gt;
:Live Stream: mms://stream.mi.hdm-stuttgart.de/linuxday_jan08&lt;br /&gt;
:Contact: mail@bernhardrode.de&lt;br /&gt;
:News, Chat and Live Coverage: http://www.linux-day.de&lt;br /&gt;
&lt;br /&gt;
; Bonn :&lt;br /&gt;
:Event: Party in Netzladen (http://www.netzladen.org)&lt;br /&gt;
:Address: Wolfstr. 10&lt;br /&gt;
:Arrival: http://www.netzladen.org/home/anfahrt&lt;br /&gt;
:Date: 18.01., 19:00h&lt;br /&gt;
:Contact: danimo (at) kde.org&lt;br /&gt;
&lt;br /&gt;
=== India ===&lt;br /&gt;
; Chennai :&lt;br /&gt;
:Event: KDE 4 Release party at  NRCFOSS, AU-KBC Research centre,MIT,chromepet .&lt;br /&gt;
:Add your name in wiki http://nrcfosshelpline.in/code/wiki/kde4releaseparty&lt;br /&gt;
:Date:20/01/2008&lt;br /&gt;
:contact:pavithran.s@gmail.com&lt;br /&gt;
&lt;br /&gt;
=== Portugal ===&lt;br /&gt;
&lt;br /&gt;
; Aveiro : UA KDE4.0 festa de apresentação&lt;br /&gt;
:Dia: 15/02&lt;br /&gt;
:contacto: nuno@oxygen-icons.org&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/CMake_(de)</id>
		<title>Development/Tutorials/CMake (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/CMake_(de)"/>
				<updated>2008-01-04T09:04:02Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: Better translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Tutorials/CMake}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser (de)|&lt;br /&gt;
&lt;br /&gt;
series=Grundlagen|&lt;br /&gt;
&lt;br /&gt;
name=CMake|&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
CMake ist das Build-System, das KDE benutzt. Diese Anleitung beschreibt, wie man CMake benutzt und wie man die Projektdateien schreibt.&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
CMake liest Script Dateien ein und gibt Eingabedateien für das native Buildsystem der Platform auf der es läuft aus. Es kann GNU Makefiles, KDevelop Projekt Dateien, XCode Projekt Dateien und Visual Studio Projekt Dateien ausgeben. &lt;br /&gt;
&lt;br /&gt;
CMake ist freie Software, die unter einer BSD-artigen Lizenz veröffentlicht wird. Entwickelt wird es von [http://www.kitware.com Kitware Inc.]&lt;br /&gt;
&lt;br /&gt;
Hier einige Links, wo man etwas über CMake im Allgemeinen lernen kann (meist englisch):&lt;br /&gt;
* [http://www.cmake.org/HTML/Documentation.html CMake Manual]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake CMake Wiki]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_HowToDoPlatformChecks CMake System Checks ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware Finding Optional Packages ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/HowToBuildKDE4Software KDE 4 Tutorial at the CMake Wiki ]&lt;br /&gt;
* [http://www.cmake.org/Wiki/CMake_FAQ CMake FAQ]&lt;br /&gt;
* [http://mail.kde.org/pipermail/kde-buildsystem/ The kde-buildsystem Mailing List Archive]&lt;br /&gt;
&lt;br /&gt;
Es gibt auch eine [http://www.cmake.org/mailman/listinfo/cmake CMake Mailing List].&lt;br /&gt;
&lt;br /&gt;
== Warum man CMake benutzen sollte ==&lt;br /&gt;
CMake ist nach einer Entscheidung im März 2006 das offizielle Werkzeug von KDE 4, vorwiegend aus technischen Vorteilen gegenüber den älteren KDE Werkzeugen ''automake'' und ''unsermake'':&lt;br /&gt;
&lt;br /&gt;
* CMake wird unabhänging von KDE entwickelt und kann auch von anderen Projekten benutzt werden.&lt;br /&gt;
* Die Übersetzungszeit verkürzt sich durch CMake, hauptsächlich weil ''libtool'' nicht mehr benutzt wird. &lt;br /&gt;
* Die CMake-Dateien sind einfacher zu schreiben.&lt;br /&gt;
&lt;br /&gt;
== Wie man KDE mit Hilfe von CMake übersetzt==&lt;br /&gt;
&lt;br /&gt;
=== CMake herunterladen und installieren ===&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD und andere Unix Systeme ====&lt;br /&gt;
Die neuste Version von CMake kann von [http://www.cmake.org/HTML/Download.html] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Einmal heruntergeladen, muss es entpackt und übersetzt werden:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ mkdir cmake-build&lt;br /&gt;
$ cd cmake-build&lt;br /&gt;
$ ../bootstrap&lt;br /&gt;
$ make&lt;br /&gt;
$ make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird CMake in /usr/local installiert, daher muss /usr/local/bin in Pfad für ausführbare Dateien stehen. Um das Installationspräfix zu ändern  (z.B. in /usr in debian), muss die '--prefix=PATH' Option zum bootstrap Kommando hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Möchte man die aktuelle Entwicklerversion von CMake benutzen, findet man [http://cmake.org/HTML/Download.html#cvs hier] eine Anleitung.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
Neuste Version von CMake von [http://www.cmake.org/HTML/Download.html hier] herunterladen.&lt;br /&gt;
&lt;br /&gt;
Dann den Cmake-Installer aufrufen&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird CMake in C:\$(Program Files)\CMake 2.4 installiert.&lt;br /&gt;
&lt;br /&gt;
Möchte man die aktuelle Entwicklerversion von CMake benutzen, findet man [http://cmake.org/HTML/Download.html#cvs hier] eine Anleitung.&lt;br /&gt;
&lt;br /&gt;
=== CMake ausführen===&lt;br /&gt;
&lt;br /&gt;
==== Linux, BSD, and other Unix Systems ====&lt;br /&gt;
Um die Build-Dateien für das System zu erzeugen, muss CMake aufgerufen werden. Sowohl Übersetzungsvorgänge innerhalb des Codes als auch in einem gesonderten werden von CMake unterstützt, wobei KDE derzeit einen Übersetzungsvorgang innerhalb des Quellcodes verbietet. &lt;br /&gt;
&lt;br /&gt;
Hat man zum Beispiel  kdelibs/ in ~/src/kdelibs/, dann ruft man folgende Befehle auf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
kdelibs/&lt;br /&gt;
$ mkdir kdelibs-build&lt;br /&gt;
$ cd kdelibs-build&lt;br /&gt;
$ cmake ../kdelibs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Das wird die Makefiles im Verzeichnis kdelibs-build erzeugen, die zum Übersetzen von kdelibs benötigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
Um die Build-Dateien für das System zu erzeugen, muss CMake aufgerufen werden. Sowohl Übersetzungsvorgänge innerhalb des Codes als auch in einem gesonderten werden von CMake unterstützt, wobei KDE derzeit einen Übersetzungsvorgang innerhalb des Quellcodes verbietet. &lt;br /&gt;
&lt;br /&gt;
Hat man zum Beispiel  kdelibs\ in c:\daten\kde4, dann ruft man folgende Befehle auf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
c:\daten\kde4&amp;gt; cd kdelibs\win&lt;br /&gt;
c:\daten\kde4&amp;gt; cmake&lt;br /&gt;
c:\daten\kde4&amp;gt; make &lt;br /&gt;
c:\daten\kde4&amp;gt; make install&lt;br /&gt;
c:\daten\kde4&amp;gt; cd ..&lt;br /&gt;
c:\daten\kde4&amp;gt; mkdir kdelibs-build&lt;br /&gt;
c:\daten\kde4&amp;gt; cd kdelibs-build&lt;br /&gt;
c:\daten\kde4\kdelibs-build&amp;gt; cmake ..\kdelibs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dadurch werden die Makefiles, um kdelibs\ zu erzeugen in kdelibs-build angelegt. Siehe auch [[KDE On Windows]] für mehr Informationen über das Übersetzen von KDE unter Windows.&lt;br /&gt;
&lt;br /&gt;
==== Projektdateien für KDevelop ====&lt;br /&gt;
Benötigen Sie Projektdateien für KDevelop (was einfache Makefile mit einigen zusätzlichen Extradateien für KDevelop sind), rufen Sie folgenden Befehl auf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ cmake ../kdelibs -GKDevelop3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Mit 'cmake -h' kann man herausfinden, welche Generatoren CMake unterstützt und welche weiteren Optionen es gibt.&lt;br /&gt;
&lt;br /&gt;
==== CMake und Qt4 ====&lt;br /&gt;
Um Qt 4 zu finden sucht CMake nach qmake im Pfad für ausführbare Dateien. CMake benutzt ''nicht'' die QTDIR Umgebungsvariable. Daher müssen Sie sicherstellen, dass das erste qmake, welches im Pfad gefunden wird dasjenige ist, welches benutzt werden soll (also bei Parallelinstallationen von Qt3 und Qt4 entsprechend Qt4 zuerst gefunden wird).&lt;br /&gt;
&lt;br /&gt;
==== Mehr Details ====&lt;br /&gt;
Wenn CMake seine Arbeit beendet hat, existiert eine Datei namens &amp;quot;CMakeCache.txt&amp;quot;. Diese Datei enthält alle Einstellungen, die von CMake auf dem System entdeckt worden sind. Soll CMake mit einem anderen Generator aufgerufen werden oder das System neu untersucht werden, löschen Sie diese Datei.&lt;br /&gt;
Wenn CMake etwas nicht findet, aber Sie wissen, dass es auf Ihrem System ist, können Sie CMake manuell mitteilen, wo man es findet. CMake benutzt Variablen um diese Information zu speichern und zwar in der eben erwähnten CMakeCache.txt Datei. Es gibt drei Möglichkeiten, diese Variablen manuell einzustellen:&lt;br /&gt;
&lt;br /&gt;
* CMake den korrekten Wert über die Kommandozeile mitteilen:&lt;br /&gt;
cmake ../kdelibs -DNAME_OF_THE_VARIABLE=value&lt;br /&gt;
* ccmake benutzen, welches eine auf curses basierende GUI aufruft, um CMake Variablen zu setzen ((run: ccmake ../kdelibs)&lt;br /&gt;
* Die Datei CMakeCache.txt direkt bearbeiten (wird nicht empfohlen)&lt;br /&gt;
&lt;br /&gt;
Sie sollten &amp;quot;ccmake ../kdelibs&amp;quot; mindesten einmal aufrufen, so dass Sie einen Eindruck bekommen, welche Variable CMake benutzt. Drücken Sie &amp;quot;T&amp;quot; um die &amp;quot;fortgeschrittenen&amp;quot; Variablen zu sehen. Wenn also CMake etwas bestimmtes nicht von sich aus findet, rufen Sie ccmake auf und stellen Sie es von Hand ein.&lt;br /&gt;
&lt;br /&gt;
==== Kommandozeilenvariablen ====&lt;br /&gt;
&lt;br /&gt;
Folgende cmake Kommandozeilenvariablen könnten für Sie von Interesse sein:&lt;br /&gt;
* '''CMAKE_INSTALL_PREFIX''': cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=/opt/kde4 entspricht dem früheren ./configure --prefix=/opt/kde4&lt;br /&gt;
* '''CMAKE_BUILD_TYPE''': Hier kann man sich aussuchen, welche Debug-Informationen erzeugt werden sollen. Folgende Möglichkkeiten gibt es:&lt;br /&gt;
** &amp;quot;debugfull&amp;quot;&lt;br /&gt;
** &amp;quot;debug&amp;quot;&lt;br /&gt;
** &amp;quot;profile&amp;quot;&lt;br /&gt;
** &amp;quot;relwithdebinfo&amp;quot; &lt;br /&gt;
** &amp;quot;release&amp;quot;. &lt;br /&gt;
Voreinstellung ist &amp;quot;relwithdebinfo&amp;quot; (-O2 -g). Siehe auch FindKDE4Internal.cmake für weitere Details.&lt;br /&gt;
* '''KDE4_BUILD_TESTS=ON''': erzeugt Makefiles die zusätzliche Testprogramme erzeugen und auch das Ziel 'test' zur Verfügung stellen.&lt;br /&gt;
* '''KDE4_TEST_OUTPUT=xml''': Unit tests, die das QTestLib Framework benutzen werden xml-formatierte Logfiles erzeugen.&lt;br /&gt;
* '''KDE4_DISABLE_MULTIMEDIA=ON''': Erzeugt KDE ohne jegliche Multimediaunterstützung (Audio und Video)&lt;br /&gt;
* '''RPATH_STYLE''': Diese Kommandozeilenoption gibt es nicht mehr. Per Voreinstllung wird alles mit einem korrekten RPATH erzeugt. Möchten Sie RPATH nicht, setzten Sie CMAKE_SKIP_RPATH auf TRUE.&lt;br /&gt;
* '''BUILD_foo=OFF''': Schaltet die Erzeugung im Unterverzeichnis 'foo' ab.&lt;br /&gt;
* '''WITH_foo''': Hier gibt es mehrere Möglichkeiten, z.B. WITH_CUPS oder WITH_Jasper. Wenn Sie diese Punkte ausschalten, wird CMake nicht versuchen, die Pakete zu finden, ansonsten sucht CMake danach. Schlägt das Fehl, kann man wie oben beschrieben manuell nachhelfen.&lt;br /&gt;
&lt;br /&gt;
=== Umgebungsvariablen ===&lt;br /&gt;
Wenn sich Header oder Bibliotheken an einem nicht-standarisierten Ort befinden, den CMake nicht findenkann (so wird zum Beispiel fink auf Mac OSX in /sw installiert), kann man folgendende Umgebungsvariablen setzen. Trotz der ähnlichen Namensgebung, funktionieren diese nicht als Kommandozeilenparameter für CMake: &lt;br /&gt;
&lt;br /&gt;
* '''CMAKE_INCLUDE_PATH''', Beispiel: export CMAKE_INCLUDE_PATH=/sw/include&lt;br /&gt;
* '''CMAKE_LIBRARY_PATH''', Beispiel: export CMAKE_LIBRARY_PATH=/sw/lib&lt;br /&gt;
&lt;br /&gt;
Mehr Informationen über Umgebungsvariablen &lt;br /&gt;
[http://www.cmake.org/Wiki/CMake_Useful_Variables hier]&lt;br /&gt;
&lt;br /&gt;
=== Nach dem Aufruf von CMake ===&lt;br /&gt;
Schließt cmake mit der Meldung &amp;quot;Generating done&amp;quot; ab, gab es keine Fehler. Schließt es jedoch mit &amp;quot;Configuring done&amp;quot; ab, gab es Fehler, die es zu beheben gilt. Wenn cmake erfolgreich durchgelaufen ist, rufen Sie das entsprechende Werkzeug zur weiteren Bearbeitung auf (z.B. make, KDevelop, XCode oder MSVC). Das Ziel wird erzeugt, warten Sie bis die Erzeugung abgeschlossen ist. Anschließend können Sie z.B. &amp;quot;make install&amp;quot; aufrufen.&lt;br /&gt;
&lt;br /&gt;
Gibt es eine Fehlermeldung der Art&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
CMake Error: This project requires some variables to be set,&lt;br /&gt;
and cmake can not find them.&lt;br /&gt;
Please set the following variables:&lt;br /&gt;
X11_XTest_LIB (ADVANCED)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
kann es an einer fehlenden Bibliothek oder anderen Abhängigkeit liegen. Um herauszufinden, welche Bibliothek, suchen Sie im Verzeichnis cmake/modules nach der Variable, die cmake nicht finden kann. Im obigen Beispiel ist das&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FIND_LIBRARY(X11_XTest_LIB Xtst ${X11_LIB_SEARCH_PATH})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Also fehlt die Biblothek Xtst. Diese muss ggf. nachinstalliert werden oder der Pfad dahin angegeben werden (s.o.). Anschließend rufen Sie cmake erneut auf.&lt;br /&gt;
&lt;br /&gt;
== CMake für eine einfache Applikation anwenden ==&lt;br /&gt;
&lt;br /&gt;
Die einfachste CMakeLists.txt Datei ist folgende:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
add_executable(hello main.cpp)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Dadurch wird aus der Quelldatei &amp;quot;main.cpp&amp;quot; eine ausführbare Datei namens &amp;quot;hello&amp;quot; (oder &amp;quot;hello.exe&amp;quot; unter Windows) erzeugt. C und C++ Dateien können vermischt werden, wenn das gewünscht wird. Es kann mehrere ausführbare Dateien und/oder Bibliotheken in einer CMakeLists.txt Datei geben. Die selbe Quelldatei kann in mehreren Zielen benutzt werden, es wird für jedes Ziel unabhängig von anderen Zielen erzeugt. Der vielleicht interessanteste Teil an der CMake-Sprache sind die Variablen:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SET( MY_SOURCES main.cpp widget.cpp)&lt;br /&gt;
MESSAGE(STATUS &amp;quot;my sources: ${MY_SOURCES}&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Mit dem SET() Kommando werden die Werte von Variblen gesetzt. Wenn Sie mehr als eine Zeichenkette übergeben, wird die Variable als Liste gesetzt. Eine Liste ist eine Liste von Zeichenketten, die durch Semikolon getrennt sind. Haben Sie nur einen Eintrag, wird die Variable nur auf diesen einen Wert gesetzt. Um den Wert einer Variable zu ermitteln, benutzen Sie ${VAR}. Eine Liste kann mit FOREACH() iteriert werden:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FOREACH(next_ITEM ${MY_SOURCES})&lt;br /&gt;
   MESSAGE(STATUS &amp;quot;next item: ${next_ITEM}&amp;quot;)&lt;br /&gt;
ENDFOREACH(next_ITEM ${MY_SOURCES})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Groß- und Kleinschreibung wird in CMake Kommandos ignoriert, jedoch in Variablen und den Namen von Parametern unterschieden.&lt;br /&gt;
&lt;br /&gt;
Man kann auch auf verschiedene Werte testen:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
IF (UNIX)&lt;br /&gt;
   MESSAGE(STATUS &amp;quot;This is UNIX (including OS X and CygWin)&amp;quot;)&lt;br /&gt;
ENDIF (UNIX)&lt;br /&gt;
&lt;br /&gt;
IF (MSVC)&lt;br /&gt;
   SET(MY_SRCS ${MY_SRCS} winextra.cpp)&lt;br /&gt;
ENDIF (MSVC)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Das zweite Beispiel zeigt gleichzeitig, wie man Einträge zu einer Liste hinzufügt.&lt;br /&gt;
&lt;br /&gt;
Es gibt auch in der CMake Wiki eine lesenswerte [http://www.cmake.org/Wiki/HowToBuildKDE4Software  Anleitung], die erläutert, wie man cmake benutzt, um KDE 4 Software zu erzeugen. &lt;br /&gt;
&lt;br /&gt;
== CMake für ein KDE 4 Projekt benutzen ==&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel demonstriert eine einfache CMakeList.txt Datei für ein kleines KDE 4 Projekt:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
PROJECT(kde4project)&lt;br /&gt;
FIND_PACKAGE(KDE4 REQUIRED)&lt;br /&gt;
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} )&lt;br /&gt;
&lt;br /&gt;
SET(KDE4ProjectSources kde4mainapp.cpp someclass.cpp someotherclass.cpp)&lt;br /&gt;
&lt;br /&gt;
KDE4_ADD_EXECUTABLE(kde4project ${KDE4ProjectSources} )&lt;br /&gt;
&lt;br /&gt;
TARGET_LINK_LIBRARIES(kde4project ${KDE4_KDEUI_LIBS} ${KDE4_KPARTS_LIBS} )&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Variablen, Makros und andere nützliche Informationen spezifisch für KDE kann unter [[Development/KDE and CMake Together]] gefunden werden.&lt;br /&gt;
&lt;br /&gt;
== CMake erweitern ==&lt;br /&gt;
CMake kann mit cmake-Skripten erweitert werden. Es werden eine Reihe von Scripten mitgeliefert, die unter UNIX standardmäßig unter /usr/local/share/CMake/Modules/ installiert werden. Die KDE-Bibliotheken installieren selber einen Satz CMake-Module nach share/apps/cmake/modules/. Die Dateien dort werden denjenigen im globalen Modulpfad von cmake vorgezogen.&lt;br /&gt;
&lt;br /&gt;
Um Software-Pakete zu finden, gibt es FindFOO.cmake Dateien, siehe [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware hier] für weitere Informationen.&lt;br /&gt;
Sie können auch Makros in CMake schreiben. Diese sind mächtig genug, die meisten Dinge zu erledigen, die Sie benötigen, um Software zu erstellen, sind jedoch nicht dazu konzipiert, als allgemeine Programmiersprache zu dienen.&lt;br /&gt;
&lt;br /&gt;
== autotools-basierte KDE Software nach CMake konvertieren ==&lt;br /&gt;
In kdesdk/cmake/ gibt es ein Skript namens am2cmake. Da es sich um ein Ruby-Script handelt, muss ruby installiert sein. Rufen Sie am2cmake im obersten Verzeichnis ihres Projektes auf:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ cd src/mykooltool/&lt;br /&gt;
$ am2cmake --kde4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Vergessen Sie nicht den Schalter &amp;quot;--kde4&amp;quot;, sonst werden keine für KDE 4 Software passenden Dateien erzeugt. Die erzeugten Dateien 'könnten' so wie sind funktieren, doch bei komplizierteren Projekten wird in der Regel zusätzliche Bearbeitung notwendig sein.&lt;br /&gt;
&lt;br /&gt;
Es könnte sein, dass&lt;br /&gt;
* mit INCLUDE_DIRECTORIES() weitere benötigte Verzeichnisse hinzugefügt werden müssen&lt;br /&gt;
* mit TARGET_LINK_LIBRARIES() zusätzliche Bibliotheken angeben werden müssen, die mit dem Projekt verlinkt werden müssen. &lt;br /&gt;
* mit ADD_DEFINITIONS() zusätzliche Compiler-Schalter gesetzt werden müssen&lt;br /&gt;
* einige zusätzliche &amp;quot;configure&amp;quot; Prüfungen gesetzt werden müssen, siehe auch [http://www.cmake.org/Wiki/CMake_HowToDoPlatformChecks How To Do Platform Checks] und [http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware How To Find Installed Software]&lt;br /&gt;
* Sie sich den sog. &amp;quot;convenience libraries&amp;quot; von libtool gesondert annehmen müssen. Diese werden von cmake nicht unterstützt, statt dessen wird eine Datei namens ConvenienceLibs.cmake created erzeugt. In dieser Datei finden Sie für jede einzelne &amp;quot;convenience library&amp;quot; eine einzelne Variable, welche alle Quelldateien für diese Bibliothek beinhaltet. Für Ziele, die mit diesen Bibliotheken verlinkt werden, fügen Sie einfach die Variable zu den Quellen hinzu. &lt;br /&gt;
* Eine Datei namens AdditionalInfo.txt wird erzeugt. Hier werden alle *.in und *.in.in Dateien des Projektes aufgelistet. Die Aufgaben in diesen Dateien müssen von Hand nach cmake konvertiert werden.&lt;br /&gt;
&lt;br /&gt;
== Häufig gestellte Fragen (FAQs) ==&lt;br /&gt;
&lt;br /&gt;
=== Wie kann ich meinem bevorzugten Editor beibringen, die CMake Syntax hevorzuheben?  ===&lt;br /&gt;
Lesen Sie [http://www.cmake.org/Wiki/CMake_Editors_Support CMake Editors Support]. Hier wird beschrieben, wie man Emacs (auch XEmacs), VIM, Kate, KWrite, and KDevelop anpasst.&lt;br /&gt;
&lt;br /&gt;
=== Ich benötige einige Dateien während des Übersetzen erzeugt. Wie bewerkstellige ich das? ===&lt;br /&gt;
Fügen Sie ADD_CUSTOM_COMMAND() hinzu. Das wird im CMake wiki erklärt: [http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_generate_a_source_file_during_the_build.3F  How can I generate a source file during the build]&lt;br /&gt;
&lt;br /&gt;
=== Ich benötige ausführbare Dateien, die im späteren Übersetzungsvorgang bestimmte Dateien erzeugen. Wie mache ich das? ===&lt;br /&gt;
Nehmen wir an die ausführbare Datei heißt genembed. Benutzen Sie KDE4_ADD_EXECUTABLE(foo RUN_UNINSTALLED ${fooSources}) um diese ausführbare Datei zu erzeugen. Die RUN_UNINSTALLED Option ist wichtig, da die ausführbare Datei vom build Verzeichnis aus aufgerufen wird und Bibliotheken in diesem Verzeichnis benötigt. Um das zu bewerkstelligen, wird die ausführbare Datei wird mit einem entsprechend gesetztem RPATH kompiliert, und ein Wrapper Shell Skript erzeugt, welches genau so heißt wie die ausführbare Datei nur mit der Endung &amp;quot;.sh&amp;quot;. Diese Script setzt die Variable LD_LIBRARY_PATH und ruft die eigentliche ausführbare Datei auf&lt;br /&gt;
&lt;br /&gt;
Benutzen Sie dieses Script im oben beschriebenen ADD_CUSTOM_COMMAND(). Sie könnnen den Namen und den Pfad ermittelt, indem Sie die Eigenschaft WRAPPER_SCRIPT abfragen. Das hier ist ein vollständiges Beispiel aus  kdelibs/kstyles/keramik/ :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# build the executable&lt;br /&gt;
KDE4_ADD_EXECUTABLE(genembed RUN_UNINSTALLED ${genembed_SRCS})&lt;br /&gt;
&lt;br /&gt;
# get the name of the generated wrapper script (which sets up LD_LIBRARY_PATH)&lt;br /&gt;
GET_TARGET_PROPERTY(GENEMBED_EXECUTABLE genembed WRAPPER_SCRIPT)&lt;br /&gt;
&lt;br /&gt;
# and the custom command&lt;br /&gt;
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/keramikrc.h&lt;br /&gt;
  COMMAND ${GENEMBED_EXECUTABLE} --file ${CMAKE_CURRENT_BINARY_DIR}/keramikPics.txt &amp;gt; \&lt;br /&gt;
  ${CMAKE_CURRENT_BINARY_DIR}/pixmaps.keramik&lt;br /&gt;
  DEPENDS genembed ${keramikPics}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie Sie sehen, ist genembed auch als Abhängigkeit gelistet. Das heißt, dass cmake weiß, daß es diese Datei erzeugen muss, bevor diese Regel aushgeführt wird. &lt;br /&gt;
&lt;br /&gt;
=== Ich möchte statt der -DCMAKE_INSTALL_PREFIX Kommandozeilenoptionen lieber die KDEDIR Umgebungsvariable benutzen. Wird das von CMake unterstützt? ===&lt;br /&gt;
Nein. $KDEDIR ist in KDE4 veraltet.&lt;br /&gt;
&lt;br /&gt;
=== Warum bekomme ich Compilerfehler wie /usr/lib/qt4/include/QtCore/qstring.h:536: undefined reference to `QString::fromLatin1_helper(char const*, int)'? ===&lt;br /&gt;
A: Wenn Sie eine alte Qt4 Version im qt/lib Verzeichnis installiert haben, müssen die alten (4.0.1) Dateien gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
=== Wie kann ich cmake anweisen, mehr Makefiles mit mehr Ausgaben zu erzeugen. Ich möchte genau sehen, welche Kommandos während des Make-Prozesses ausgeführt werden ===&lt;br /&gt;
Übergeben Sie einfach die VERBOSE Variable zu make, z.B.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% make VERBOSE=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
oder&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% VERBOSE=1 make&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nähere Informationen können dem Artikel [http://www.cmake.org/Wiki/CMake_FAQ#Is_there_an_option_to_produce_more_.27verbose.27_compiling.3F Is there an option to produce more 'verbose' compiling?] entnommen werden.&lt;br /&gt;
&lt;br /&gt;
=== Es gibt kein 'make distclean' Ziel in den erzeugten Makefiles. Wie kann ich das Projekt einschließlich der Cache-Dateien komplett neu erzeugen? ===&lt;br /&gt;
Entfernen Sie einfach das build Verzeichnis oder den Inhalt dieses Verzeichnisses.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:FAQs]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo</id>
		<title>User:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo"/>
				<updated>2007-12-20T14:55:01Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subpages ==&lt;br /&gt;
&lt;br /&gt;
{{List_subpages}}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Beautify Subpage titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
sorry for reporting a bug here; but this seems like as good a place as any :)&lt;br /&gt;
When using &amp;lt;nowiki&amp;gt;&amp;lt;code cpp&amp;gt;&amp;lt;/nowiki&amp;gt; tags I noted a bug.  Specifically when you use the colon (or other means) to indent it.  [[User:Zander|Zander]] 20:39, 9 April 2007 (CEST)&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code cpp&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QDate&amp;gt;&lt;br /&gt;
#include &amp;lt;zlib.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Edges in KDE 4 ==&lt;br /&gt;
&lt;br /&gt;
What I found when installing the openSUSE packages and how I think we could go about it: [[User:Danimo/Edges in KDE 4]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/KDE_Relicensing</id>
		<title>Projects/KDE Relicensing</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/KDE_Relicensing"/>
				<updated>2007-11-10T10:38:42Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KDE GPL v2.0 Relicensing effort ==&lt;br /&gt;
&lt;br /&gt;
=== Why does it matter ? ===&lt;br /&gt;
&lt;br /&gt;
A couple of KDE dependent projects or even libraries have moved or are going to move to GPLv3 ([http://gpl3.palamida.com:8080/ State of GPLv3 movement]). &lt;br /&gt;
&lt;br /&gt;
Unfortunately, GPL v3 is incompatible with GPL v2. This means that it is not possible to create a project linking GPL v2 and v3 code together. There is no problem for projects which are licensed GPLv2+ (version 2 or above).&lt;br /&gt;
&lt;br /&gt;
A few parts of KDE are currently licensed as GPLv2 only. So far we have no reason to believe that this was something other than an oversight. However, we still need to validate with the individual copyright holders that a relicense to GPLv2+ or GPLv2+v3 is okay with them. &lt;br /&gt;
&lt;br /&gt;
Therefore, in an effort we're trying to identify the contributors that have contributed under the terms of GPLv2 and where the &amp;quot;+&amp;quot; part was not explicetly mentioned. If we know that all contributors agreed to a relicense, we can go ahead and flip the license of the individual source file.&lt;br /&gt;
&lt;br /&gt;
== How can I help ? ==&lt;br /&gt;
&lt;br /&gt;
By identifying a contributor who as contributed under the terms of GPLv2 (use kdesdk/scripts/relicensecheck.pl on the file in question), and contacting him if he wasn't already contacted. Ask him the following questions: &lt;br /&gt;
&lt;br /&gt;
* Are you okay with relicensing your contributions done under GPLv2 to GPLv2+?&lt;br /&gt;
&lt;br /&gt;
* Are you okay with relicensing your contributions done under GPLv2 to GPLv2 or GPLv3 ?&lt;br /&gt;
&lt;br /&gt;
* Are you okay with relicensing your contributions done under LGPLv2 to LGPLv2+?&lt;br /&gt;
&lt;br /&gt;
* Are you okay with relicensing your contributions done under LGPLv2 to LGPLv2 or LGPLv3?&lt;br /&gt;
&lt;br /&gt;
* Are you okay with the KDE e.V. deciding on a future licensing change to your code, should that be necessary?&lt;br /&gt;
&lt;br /&gt;
=== Whats next? ===&lt;br /&gt;
&lt;br /&gt;
# you checkout relicensecheck.pl from trunk/KDE/kdesdk/scripts&lt;br /&gt;
# you run it on the file or directory in question&lt;br /&gt;
# you interpret the result. check each commit that is being complained about carefully. Try to get the copyright's holder's permission. if you get it, update the whitelist in the script.&lt;br /&gt;
# review the list of declared copyright holders in the file.&lt;br /&gt;
# if you're all clear, change the license to the most liberal license possible. Document your change verbosely in the SVN commit log.&lt;br /&gt;
&lt;br /&gt;
== Current Reply List ==&lt;br /&gt;
&lt;br /&gt;
* Please keep the list sorted by family name!&lt;br /&gt;
* Please only use &amp;quot;YES&amp;quot; or &amp;quot;NO&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! GPLv2-&amp;gt;GPLv2+ !! LGPLv2 -&amp;gt; LGPLv2+ !! GPLv2 -&amp;gt; GPLv2+v3 !! LGPLv2 -&amp;gt; LGPLv2+LGPLv3 || KDE e.V. decides&lt;br /&gt;
|-&lt;br /&gt;
|Adam, Till || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Bastian, Waldo || NO || NO || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Boemann, Casper || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Broadstone, Matt || NO || NO || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Cullmann, Christoph || NO || NO || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Drummond, Craig || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Dymo, Alexander || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Faure, David || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Granroth, Kurt || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Herden, Jens || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Hoeglund, Fredrik || NO || NO || YES || YES ||&lt;br /&gt;
|-&lt;br /&gt;
|Kainhofer, Reinhold || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Kellet, Alexander || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Knight, Robert || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Kretz, Matthias || NO || NO || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Kulow, Stephan || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Lunak, Lubos || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Mac-Vicar, Duncan || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Macieira, Thiago || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Mantia, Andras || NO || NO || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Martyn, Greg || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Molkentin, Daniel || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Montel, Laurent || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Moore, Richard || NO || NO || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Mueller, Dirk || YES || YES || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Mutz, Marc || YES || YES || NO || NO || NO&lt;br /&gt;
|-&lt;br /&gt;
|Riddell, Jonathan || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Sand, Espen || YES || YES || || || YES&lt;br /&gt;
|-&lt;br /&gt;
|Schlaeger, Chris || NO || NO || YES || YES || NO&lt;br /&gt;
|-&lt;br /&gt;
|Seigo, Aaron || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Stephenson, Will || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Tapsell, John || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Trueg, Sebastian (Exception: K3b) || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|Wolfer, Urs || YES || YES || YES || YES || YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current TODO List ==&lt;br /&gt;
&lt;br /&gt;
* KDAB&lt;br /&gt;
* Tobias Koenig&lt;br /&gt;
* Matthew Woehlke&lt;br /&gt;
* Daniel Teske&lt;br /&gt;
* Dawit Alemayehu&lt;br /&gt;
* Oswald Buddenhagen&lt;br /&gt;
* Alex Zepeda&lt;br /&gt;
* Thomas Leitner&lt;br /&gt;
* Lars Knoll&lt;br /&gt;
* Kevin Ottens&lt;br /&gt;
* Simon Hausmann&lt;br /&gt;
* Maksim Orlovich&lt;br /&gt;
* Sirtaj Singh Kang&lt;br /&gt;
* Karol Szwed&lt;br /&gt;
* Thorsten Roeder&lt;br /&gt;
* Joseph Wenninger&lt;br /&gt;
&lt;br /&gt;
== Current list of problematic directories ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kdeadmin/ksysv/&lt;br /&gt;
kdeadmin/kuser/&lt;br /&gt;
kdeartwork/kscreensaver/kdesavers/&lt;br /&gt;
kdebase/apps/kappfinder/&lt;br /&gt;
kdebase/apps/keditbookmarks/&lt;br /&gt;
kdebase/apps/konqueror/settings/filetypes/&lt;br /&gt;
kdebase/apps/konqueror/settings/kio/&lt;br /&gt;
kdebase/apps/konqueror/src/&lt;br /&gt;
kdebase/apps/konqueror/src/tests/&lt;br /&gt;
kdebase/apps/lib/konq/&lt;br /&gt;
kdebase/apps/nsplugins/viewer/&lt;br /&gt;
kdebase/runtime/kcontrol/componentchooser/&lt;br /&gt;
kdebase/runtime/khelpcenter/&lt;br /&gt;
kdebase/runtime/kpasswdserver/&lt;br /&gt;
kdebase/runtime/kurifilter-plugins/fixhost/&lt;br /&gt;
kdebase/runtime/kurifilter-plugins/localdomain/&lt;br /&gt;
kdebase/runtime/nepomuk/strigibackend/&lt;br /&gt;
kdebase/runtime/phonon/xine/&lt;br /&gt;
kdebase/workspace/kcontrol/background/&lt;br /&gt;
kdebase/workspace/kcontrol/input/core/&lt;br /&gt;
kdebase/workspace/kcontrol/input/xcursor/&lt;br /&gt;
kdebase/workspace/kcontrol/krdb/&lt;br /&gt;
kdebase/workspace/kcontrol/style/&lt;br /&gt;
kdebase/workspace/kdm/kfrontend/&lt;br /&gt;
kdebase/workspace/kmenuedit/&lt;br /&gt;
kdebase/workspace/ksplash/ksplashx/&lt;br /&gt;
kdebase/workspace/ksysguard/gui/&lt;br /&gt;
kdebase/workspace/ksysguard/gui/ksgrd/&lt;br /&gt;
kdebase/workspace/ksysguard/gui/SensorDisplayLib/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/FreeBSD/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/Irix/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/Linux/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/NetBSD/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/Solaris/&lt;br /&gt;
kdebase/workspace/ksysguard/ksysguardd/Tru64/&lt;br /&gt;
kdebase/workspace/ktip/&lt;br /&gt;
kdebase/workspace/libs/kdm/&lt;br /&gt;
kdebase/workspace/libs/ksysguard/processui/&lt;br /&gt;
kdebase/workspace/libs/plasma/widgets/&lt;br /&gt;
kdebase/workspace/plasma/dataengines/filebrowser/&lt;br /&gt;
kdebase/workspace/solid/kcm/&lt;br /&gt;
kdebase/workspace/solid/networking/tests/&lt;br /&gt;
kdebindings/csharp/qyoto/tools/csrcc/&lt;br /&gt;
kdebindings/csharp/qyoto/tools/uics/&lt;br /&gt;
kdebindings/ruby/qtruby/tools/rbrcc/&lt;br /&gt;
kdebindings/ruby/qtruby/tools/rbuic/&lt;br /&gt;
kdebindings/ruby/qtruby/tools/rbuic/ruby/&lt;br /&gt;
kdebindings/xparts/xpart_notepad/&lt;br /&gt;
kdeedu/klettres/src/&lt;br /&gt;
kdeedu/kstars/kstars/indi/drivers/ccd/&lt;br /&gt;
kdeedu/kstars/kstars/indi/drivers/focuser/&lt;br /&gt;
kdeedu/kstars/kstars/indi/drivers/telescope/&lt;br /&gt;
kdeedu/kstars/kstars/indi/drivers/video/&lt;br /&gt;
kdeedu/kstars/kstars/indi/libs/webcam/&lt;br /&gt;
kdeedu/kturtle/src/&lt;br /&gt;
kdeedu/kturtle/src/interpreter/&lt;br /&gt;
kdeedu/libkdeedu/extdate/&lt;br /&gt;
kdeedu/marble/src/lib/geodata/&lt;br /&gt;
kdeedu/marble/src/lib/geodata/data/&lt;br /&gt;
kdeedu/marble/src/lib/geodata/handlers/gpx/&lt;br /&gt;
kdeedu/marble/src/lib/geodata/handlers/kml/&lt;br /&gt;
kdeedu/marble/src/lib/geodata/parser/&lt;br /&gt;
kdegames/knetwalk/src/&lt;br /&gt;
kdegraphics/gwenview/lib/&lt;br /&gt;
kdegraphics/okular/generators/chm/kio-msits/&lt;br /&gt;
kdegraphics/okular/generators/chm/lib/&lt;br /&gt;
kdegraphics/okular/generators/comicbook/&lt;br /&gt;
kdegraphics/okular/generators/plucker/unpluck/&lt;br /&gt;
kdegraphics/okular/generators/spectre/libspectre/&lt;br /&gt;
kdegraphics/okular/generators/spectre/libspectre/ghostscript/&lt;br /&gt;
kdelibs/cmake/automoc/&lt;br /&gt;
kdelibs/kde3support/tests/&lt;br /&gt;
kdelibs/kdecore/tests/&lt;br /&gt;
kdelibs/kdeui/tests/&lt;br /&gt;
kdelibs/kfile/tests/&lt;br /&gt;
kdelibs/kinit/tests/&lt;br /&gt;
kdelibs/kioslave/http/kcookiejar/&lt;br /&gt;
kdelibs/kioslave/http/kcookiejar/tests/&lt;br /&gt;
kdelibs/kjsembed/examples/editor/&lt;br /&gt;
kdelibs/kpty/&lt;br /&gt;
kdelibs/phonon/kcm/&lt;br /&gt;
kdelibs/phonon/tests/&lt;br /&gt;
kdelibs/solid/examples/tutorial6/&lt;br /&gt;
kdelibs/solid/tests/&lt;br /&gt;
kdenetwork/kopete/doc/t2/&lt;br /&gt;
kdenetwork/kopete/doc/t3/&lt;br /&gt;
kdenetwork/kopete/protocols/irc/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/cutestuff/legacy/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/cutestuff/network/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/cutestuff/util/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/iris/include/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/iris/jabber/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/iris/xmpp-core/&lt;br /&gt;
kdenetwork/kopete/protocols/jabber/libiris/iris/xmpp-im/&lt;br /&gt;
kdenetwork/kopete/protocols/oscar/liboscar/utils/&lt;br /&gt;
kdenetwork/kopete/protocols/qq/&lt;br /&gt;
kdenetwork/kopete/protocols/yahoo/libkyahoo/&lt;br /&gt;
kdepim/akonadi/resources/openchange/&lt;br /&gt;
kdepim/akonadi/server/sqlplugin/&lt;br /&gt;
kdepim/kaddressbook/xxport/&lt;br /&gt;
kdepim/kdgantt/&lt;br /&gt;
kdepim/kdgantt1/&lt;br /&gt;
kdepim/kleopatra/utils/&lt;br /&gt;
kdepim/kmail/&lt;br /&gt;
kdepim/libkleo/ui/&lt;br /&gt;
kdepimlibs/kcal/libical/vzic-1.3/&lt;br /&gt;
kdepimlibs/kcal/versit/&lt;br /&gt;
kdepimlibs/kioslave/sieve/&lt;br /&gt;
kdepimlibs/syndication/tests/&lt;br /&gt;
kdepim/views/conversationview/&lt;br /&gt;
kdesdk/kioslave/svn/ksvnd/&lt;br /&gt;
kdesdk/kompare/komparepart/&lt;br /&gt;
kdevelop/buildtools/managers/automake/tests/&lt;br /&gt;
kdevelop/plugins/qtdesigner/internals/&lt;br /&gt;
kdevplatform/interfaces/&lt;br /&gt;
kdevplatform/test/common/&lt;br /&gt;
kdewebdev/kommander/editor/&lt;br /&gt;
kdewebdev/kommander/factory/&lt;br /&gt;
kdewebdev/kommander/plugin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Current top 30 of possible contributors to GPLv2-only files ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  23647 sequitur&lt;br /&gt;
  20801 gerken&lt;br /&gt;
  20659 craig&lt;br /&gt;
  17365 rdale&lt;br /&gt;
  17080 tokoe&lt;br /&gt;
  15023 dfaure&lt;br /&gt;
  13945 lunakl&lt;br /&gt;
   9339 arnorehn&lt;br /&gt;
   8703 thorsen&lt;br /&gt;
   8273 coolo&lt;br /&gt;
   7458 cies&lt;br /&gt;
   7448 mutlaqja&lt;br /&gt;
   7424 rogowski&lt;br /&gt;
   6018 gyurco&lt;br /&gt;
   5692 djurban&lt;br /&gt;
   5531 mrudolf&lt;br /&gt;
   5525 aacid&lt;br /&gt;
   5446 ogoffart&lt;br /&gt;
   5299 mkretz&lt;br /&gt;
   5245 winterz&lt;br /&gt;
   4216 cschlaeg&lt;br /&gt;
   4152 johnflux&lt;br /&gt;
   3652 waba&lt;br /&gt;
   3327 fredrik&lt;br /&gt;
   3138 chehrlic&lt;br /&gt;
   2944 mlaurent&lt;br /&gt;
   2916 teske&lt;br /&gt;
   2661 kniederk&lt;br /&gt;
   2614 martyn&lt;br /&gt;
   2484 lypanov&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo</id>
		<title>User:Danimo</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo"/>
				<updated>2007-08-12T09:17:01Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subpages ==&lt;br /&gt;
&lt;br /&gt;
{{List_subpages}}&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Beautify Subpage titles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
sorry for reporting a bug here; but this seems like as good a place as any :)&lt;br /&gt;
When using &amp;lt;nowiki&amp;gt;&amp;lt;code cpp&amp;gt;&amp;lt;/nowiki&amp;gt; tags I noted a bug.  Specifically when you use the colon (or other means) to indent it.  [[User:Zander|Zander]] 20:39, 9 April 2007 (CEST)&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code cpp&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;QtCore/QDate&amp;gt;&lt;br /&gt;
#include &amp;lt;zlib.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Template:List_subpages</id>
		<title>Template:List subpages</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Template:List_subpages"/>
				<updated>2007-08-12T09:16:16Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border:1px solid #CCC;&amp;quot;&amp;gt;&lt;br /&gt;
{{{caption|{{#ifeq:{{{2|{{NAMESPACE}}}}}:{{{1|{{PAGENAME}}}}}|{{FULLPAGENAME}}|In this {{NAMESPACE}}space|Pages with the prefix '{{{1|{{PAGENAME}}}}}' in the '{{{2|{{SUBJECTSPACE}}}}}' and '{{#if:{{{2|}}}|{{{2}}} talk|{{TALKSPACE}}}}' namespaces}}:}}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-bottom:-1px; padding:0.1em; border-bottom:1px solid #CCC; font-size:0.9em;&amp;quot;&amp;gt;{{{2|{{SUBJECTSPACE}}}}}:{{#ifexist:{{{2|{{SUBJECTSPACE}}}}}:{{{1|{{PAGENAME}}}}}|&amp;lt;br /&amp;gt;[[{{{2|{{SUBJECTSPACE}}}}}:{{{1|{{PAGENAME}}}}}|{{{1|{{PAGENAME}}}}}]]&amp;lt;br /&amp;gt;}}{{Special:Prefixindex/{{{2|{{SUBJECTSPACE}}}}}:{{{1|{{PAGENAME}}}}}/}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:2px; font-size:0.9em;&amp;quot;&amp;gt;{{#if:{{{2|}}}|{{{2}}} talk|{{TALKSPACE}}}}: {{#ifexist:{{{2|{{TALKSPACE}}}}}:{{{1|{{PAGENAME}}}}}|&amp;lt;br /&amp;gt;[[{{{2|{{TALKSPACE}}}}}:{{{1|{{PAGENAME}}}}}|{{{1|{{PAGENAME}}}}}]]&amp;lt;br /&amp;gt;}}{{Special:Prefixindex/{{#if:{{{2|}}}|{{{2}}} talk|{{TALKSPACE}}}}:{{{1|{{PAGENAME}}}}}/}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;{{template documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started_(de)</id>
		<title>Getting Started (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started_(de)"/>
				<updated>2007-07-20T09:05:52Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started}}&lt;br /&gt;
{{Box|Zugriff auf die Quellen|&lt;br /&gt;
[[Image:Action_down.svg|right|32px]]&lt;br /&gt;
Der KDE-Quelltext ist auf verschiedenen Wegen erhältlich:&lt;br /&gt;
* [[Getting Started/Sources/Anonymous SVN|Anonymes SVN Schnellstart Anleitung]]&lt;br /&gt;
* [[Getting Started/Sources/Using Subversion with KDE|Benutzung von Subversion mit KDE]] ''Benutzung von Subversion mit KDE Ein mehr in die Tiefe gehender Einblick für den Zugriff auf KDEs Quelltext mit Subversion, einschließlich dem Depot Layout und dem Arbeiten mit Revisionen und Patches.''&lt;br /&gt;
* [http://websvn.kde.org/ Durchstöbern Sie den Quelltext online]&lt;br /&gt;
* [[Getting Started/Sources/Snapshots|Tägliche Schnappschüsse]]&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Erstellung von KDE|&lt;br /&gt;
[[Image:Action_tool.svg|right|32px]]&lt;br /&gt;
Es existieren verschiedene KDE Branches. Für den produktiven Einsatz ist eine stabile Version empfohlen.&lt;br /&gt;
* [[Getting Started/Build/KDE4_(de)|KDE 4 (Entwicklungs Version, Trunk)]]&lt;br /&gt;
* [[Getting Started/Build/Stable Version|KDE 3.5 (Stabile Version)]]&lt;br /&gt;
* [[Getting Started/Build|Andere Versionen und das FAQ]] ''Einschließlich Informationen für die Erstellung auf Nicht-Linux Systemen''&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Aufsetzen der Umgebung|&lt;br /&gt;
[[Image:Action_pen.svg|right|32px]]&lt;br /&gt;
Nachdem KDE erstellt worden ist, möchten Sie wahrscheinlich einen wirksamen Weg für das Starten der Anwendungen und das Ausführen Ihrer üblichen Entwicklungsaufgaben haben:&lt;br /&gt;
* [[Getting Started/Increased Productivity in KDE4 with Scripts|Erhöhen Sie Ihre Produktivität in KDE4 mit Skripten]]&lt;br /&gt;
* [[Getting Started/Set up KDE 4 for development|Setzen Sie KDE4 für die Entwicklung auf]]&lt;br /&gt;
|100%}}&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(de)</id>
		<title>KDE System Administration (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(de)"/>
				<updated>2007-07-20T08:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: /* Benutzer- und Gruppenprofile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin}}&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt bietet Systemadministratoren, welche KDE neu aufsetzen oder vorhandene Einsätze verwalten die Informationen, die sie benötigen um dies effektiv zu tun.&lt;br /&gt;
&lt;br /&gt;
== Dateisystem ==&lt;br /&gt;
;[[SysAdmin/Configuration Files|Syntax der Konfigurations Dateien]]&lt;br /&gt;
:''KDEs Konfigurations Dateien sind textbasiert. Sie enthalten Gruppen aus Schlüssel-Wert Paaren. Dieser Abschnitt erläutert deren Syntax und behandelt folgende Bereiche:''&lt;br /&gt;
* Lokalisation,&lt;br /&gt;
* Shell Variablen,&lt;br /&gt;
* komplettes oder teilweises Sperren der Konfigurationsdateien&lt;br /&gt;
* Editier Hilfsprogramme&lt;br /&gt;
* andere fortgeschrittene Eigenschaften.&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE Hierarchie]]&lt;br /&gt;
:''Dieser Artikel beschreibt wie KDE das Dateisystem benutzt, wo nach Dateien gesucht wird und wo sie abgespeichert werden. Er erklärt wie man diese Orte wechselt. Er beinhaltet auch eine kurz gefasste Übersicht der von den größten OS Anbietern benutzten Standard-Einstellungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG Hierarchie]]&lt;br /&gt;
:''In Ergänzung zu [[SysAdmin/KDE Filesystem Hierarchy|KDEs Datei Hierarchie]], benutzt KDE auch verschiedene Verzeichnisse, die in der XDG Spezifikation auf  [http://freedesktop.org freedesktop.org] definiert sind. Dieser Artikel dokumentiert die benutzten Pfade und deren Funktionen.''&lt;br /&gt;
&lt;br /&gt;
== Desktop-Sitzungen ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|Umgebungsvariablen]]&lt;br /&gt;
:''Eine Vielfalt an Umgebungs Variablen, die in diesem Artikel dokumentiert sind, ist vorhanden, um verschiedene Aspekte sowie das Laufzeitverhalten von KDE zu beeinflussen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|Startvorgang]]&lt;br /&gt;
:''Während des Startvorganges werden die sichtbaren sowie die im hintergrund bleibenden Desktop-Komponenten gestartet. Dieser Artikel beschreibt die Startreihenfolge, liefert einen Überblick über einige der gestarteten Dienste und erklärt wie man Veränderungen macht.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Anmeldungsmanager]&lt;br /&gt;
:''Der KDE Display Manager (KDM) bietet die Dienste, die üblicherweise mit einem Anmeldungsmanager assoziiert werden. Der erste Kontakt, den Ihre Benutzer mit einem KDE System haben, ist üblicherweise der KDM Bildschirm. Dieser Abschnitt behandelt die Grundlagen wie man einen KDM aufsetzt, sowie fortgeschrittene Themen wie Fernanmeldung, automatische Anmeldung, und mehr.''&lt;br /&gt;
&lt;br /&gt;
== Benutzer- und Gruppenprofile ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Kiosk-Einführung]]&lt;br /&gt;
:''Das Kiosk Rahmenwerk bietet eine Menge an Optionen, welche es erlauben einfach und mächtig die Fähigkeiten einer KDE Umgebung, basierend auf Benutzer- und Gruppenlegitimationen, zu definieren und einzuschränken. Zusätzlich zu dem einführenden Überblick umfasst dieser Artikel das Sperren der Konfigurationsdateien,  Einschränkungen der Handlungsfreiheiten und Ressourcen, die Zuweisung von Benutzer- und Gruppenprofilen, und mehr.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk-Schlüssel]]&lt;br /&gt;
:''Dieses Dokument detailliert bekannte globale und anwendungsspezifische Schlüssel für Aktionen, Ressourcen und URL Beschränkungen und macht es zu einer handlichen Referenzanleitung um Kiosk-Profile zu erstellen''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|Weitere Ressourcen]]&lt;br /&gt;
:''KDEs Benutzer- und Gruppenprofile betreffe Links zu Werkzeugen, Mailinglisten, und zusätzlicher Dokumentation.''&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Eine graphische Anwendung, die einem beim Verwalten von Benutzer- und Gruppenprofilen behilflich ist.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Gemeinsame Nutzung des Desktops]&lt;br /&gt;
:''Die Fähigkeit zur gemeinsame Nutzung des Desktops macht auch eine Nutzung auf Distanz möglich. Neben zahlreichen anderen Verwendungsmöglichkeiten, ist diese Fähigkeit eine große Hilfe für das Betreuungspersonal, welches eine telefonische Unterstützung bietet.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Benutzung von KDE Dialogen in Shell-Scripten]]&lt;br /&gt;
:''Um verschiedene Dialoge anzuzeigen, können Sie KDialog Shell Scripte benutzen. Diese erlauben Ihnen eine nahtlose Eingliederung Ihrer eigenen GUI Erweiterungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Kontrollierter Zugang zu Get New Stuff Inhalten]]&lt;br /&gt;
:''Dieser Abschnitt bietet Informationen, wie Sie die vom Internet durch die Get New Stuff Option herunterladbaren Inhalte kontrollieren können.''&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(de)</id>
		<title>KDE System Administration (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(de)"/>
				<updated>2007-07-20T08:45:34Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: /* Benutzer- und Gruppenprofile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin}}&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt bietet Systemadministratoren, welche KDE neu aufsetzen oder vorhandene Einsätze verwalten die Informationen, die sie benötigen um dies effektiv zu tun.&lt;br /&gt;
&lt;br /&gt;
== Dateisystem ==&lt;br /&gt;
;[[SysAdmin/Configuration Files|Syntax der Konfigurations Dateien]]&lt;br /&gt;
:''KDEs Konfigurations Dateien sind textbasiert. Sie enthalten Gruppen aus Schlüssel-Wert Paaren. Dieser Abschnitt erläutert deren Syntax und behandelt folgende Bereiche:''&lt;br /&gt;
* Lokalisation,&lt;br /&gt;
* Shell Variablen,&lt;br /&gt;
* komplettes oder teilweises Sperren der Konfigurationsdateien&lt;br /&gt;
* Editier Hilfsprogramme&lt;br /&gt;
* andere fortgeschrittene Eigenschaften.&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE Hierarchie]]&lt;br /&gt;
:''Dieser Artikel beschreibt wie KDE das Dateisystem benutzt, wo nach Dateien gesucht wird und wo sie abgespeichert werden. Er erklärt wie man diese Orte wechselt. Er beinhaltet auch eine kurz gefasste Übersicht der von den größten OS Anbietern benutzten Standard-Einstellungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG Hierarchie]]&lt;br /&gt;
:''In Ergänzung zu [[SysAdmin/KDE Filesystem Hierarchy|KDEs Datei Hierarchie]], benutzt KDE auch verschiedene Verzeichnisse, die in der XDG Spezifikation auf  [http://freedesktop.org freedesktop.org] definiert sind. Dieser Artikel dokumentiert die benutzten Pfade und deren Funktionen.''&lt;br /&gt;
&lt;br /&gt;
== Desktop-Sitzungen ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|Umgebungsvariablen]]&lt;br /&gt;
:''Eine Vielfalt an Umgebungs Variablen, die in diesem Artikel dokumentiert sind, ist vorhanden, um verschiedene Aspekte sowie das Laufzeitverhalten von KDE zu beeinflussen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|Startvorgang]]&lt;br /&gt;
:''Während des Startvorganges werden die sichtbaren sowie die im hintergrund bleibenden Desktop-Komponenten gestartet. Dieser Artikel beschreibt die Startreihenfolge, liefert einen Überblick über einige der gestarteten Dienste und erklärt wie man Veränderungen macht.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Anmeldungsmanager]&lt;br /&gt;
:''Der KDE Display Manager (KDM) bietet die Dienste, die üblicherweise mit einem Anmeldungsmanager assoziiert werden. Der erste Kontakt, den Ihre Benutzer mit einem KDE System haben, ist üblicherweise der KDM Bildschirm. Dieser Abschnitt behandelt die Grundlagen wie man einen KDM aufsetzt, sowie fortgeschrittene Themen wie Fernanmeldung, automatische Anmeldung, und mehr.''&lt;br /&gt;
&lt;br /&gt;
== Benutzer- und Gruppenprofile ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Kiosk Einführung]]&lt;br /&gt;
:''Das Kiosk Rahmenwerk bietet eine Menge an Optionen, welche es erlauben einfach und mächtig die Fähigkeiten einer KDE Umgebung, basierend auf Benutzer- und Gruppenlegitimationen, zu definieren und einzuschränken. Zusätzlich zu dem einführenden Überblick umfasst dieser Artikel das Sperren der Konfigurationsdateien,  Einschränkungen der Handlungsfreiheiten und Ressourcen, die Zuweisung von Benutzer- und Gruppenprofilen, und mehr.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk Schlüssel]]&lt;br /&gt;
:''Dieses Dokument detailliert bekannte globale und anwendungsspezifische Schlüssel für Aktionen, Ressourcen und URL Beschränkungen und macht es zu einer handlichen Referenzanleitung um Kiosk-Profile zu erstellen''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|Zusätzliche Ressourcen]]&lt;br /&gt;
:''KDEs Benutzer- und Gruppenprofile betreffe Links zu Werkzeugen, Mailinglisten, und zusätzlicher Dokumentation.''&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Eine graphische Anwendung, die einem beim Verwalten von Benutzer- und Gruppenprofilen behilflich ist.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Gemeinsame Nutzung des Desktops]&lt;br /&gt;
:''Die Fähigkeit zur gemeinsame Nutzung des Desktops macht auch eine Nutzung auf Distanz möglich. Neben zahlreichen anderen Verwendungsmöglichkeiten, ist diese Fähigkeit eine große Hilfe für das Betreuungspersonal, welches eine telefonische Unterstützung bietet.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Benutzung von KDE Dialogen in Shell-Scripten]]&lt;br /&gt;
:''Um verschiedene Dialoge anzuzeigen, können Sie KDialog Shell Scripte benutzen. Diese erlauben Ihnen eine nahtlose Eingliederung Ihrer eigenen GUI Erweiterungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Kontrollierter Zugang zu Get New Stuff Inhalten]]&lt;br /&gt;
:''Dieser Abschnitt bietet Informationen, wie Sie die vom Internet durch die Get New Stuff Option herunterladbaren Inhalte kontrollieren können.''&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/KDE_System_Administration_(de)</id>
		<title>KDE System Administration (de)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/KDE_System_Administration_(de)"/>
				<updated>2007-07-20T08:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: /* Desktop Sitzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|SysAdmin}}&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt bietet Systemadministratoren, welche KDE neu aufsetzen oder vorhandene Einsätze verwalten die Informationen, die sie benötigen um dies effektiv zu tun.&lt;br /&gt;
&lt;br /&gt;
== Dateisystem ==&lt;br /&gt;
;[[SysAdmin/Configuration Files|Syntax der Konfigurations Dateien]]&lt;br /&gt;
:''KDEs Konfigurations Dateien sind textbasiert. Sie enthalten Gruppen aus Schlüssel-Wert Paaren. Dieser Abschnitt erläutert deren Syntax und behandelt folgende Bereiche:''&lt;br /&gt;
* Lokalisation,&lt;br /&gt;
* Shell Variablen,&lt;br /&gt;
* komplettes oder teilweises Sperren der Konfigurationsdateien&lt;br /&gt;
* Editier Hilfsprogramme&lt;br /&gt;
* andere fortgeschrittene Eigenschaften.&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/KDE Filesystem Hierarchy|KDE Hierarchie]]&lt;br /&gt;
:''Dieser Artikel beschreibt wie KDE das Dateisystem benutzt, wo nach Dateien gesucht wird und wo sie abgespeichert werden. Er erklärt wie man diese Orte wechselt. Er beinhaltet auch eine kurz gefasste Übersicht der von den größten OS Anbietern benutzten Standard-Einstellungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/XDG Filesystem Hierarchy|XDG Hierarchie]]&lt;br /&gt;
:''In Ergänzung zu [[SysAdmin/KDE Filesystem Hierarchy|KDEs Datei Hierarchie]], benutzt KDE auch verschiedene Verzeichnisse, die in der XDG Spezifikation auf  [http://freedesktop.org freedesktop.org] definiert sind. Dieser Artikel dokumentiert die benutzten Pfade und deren Funktionen.''&lt;br /&gt;
&lt;br /&gt;
== Desktop-Sitzungen ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Environment Variables|Umgebungsvariablen]]&lt;br /&gt;
:''Eine Vielfalt an Umgebungs Variablen, die in diesem Artikel dokumentiert sind, ist vorhanden, um verschiedene Aspekte sowie das Laufzeitverhalten von KDE zu beeinflussen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Startup|Startvorgang]]&lt;br /&gt;
:''Während des Startvorganges werden die sichtbaren sowie die im hintergrund bleibenden Desktop-Komponenten gestartet. Dieser Artikel beschreibt die Startreihenfolge, liefert einen Überblick über einige der gestarteten Dienste und erklärt wie man Veränderungen macht.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdebase/kdm/ Anmeldungsmanager]&lt;br /&gt;
:''Der KDE Display Manager (KDM) bietet die Dienste, die üblicherweise mit einem Anmeldungsmanager assoziiert werden. Der erste Kontakt, den Ihre Benutzer mit einem KDE System haben, ist üblicherweise der KDM Bildschirm. Dieser Abschnitt behandelt die Grundlagen wie man einen KDM aufsetzt, sowie fortgeschrittene Themen wie Fernanmeldung, automatische Anmeldung, und mehr.''&lt;br /&gt;
&lt;br /&gt;
== Benutzer- und Gruppenprofile ==&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Introduction|Einführung zu Kiosk]]&lt;br /&gt;
:''Das Kiosk Rahmenwerk bietet eine Menge an Optionen, welche es erlauben einfach und mächtig die Fähigkeiten einer KDE Umgebung, basierend auf Benutzer- und Gruppenlegitimationen, zu definieren und einzuschränken. Zusätzlich zu dem einführenden Überblick umfasst dieser Artikel das Sperren der Konfigurationsdateien,  Einschränkungen der Handlungsfreiheiten und Ressourcen, die Zuweisung von Benutzer- und Gruppenprofilen, und mehr.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Keys|Kiosk Schlüssel]]&lt;br /&gt;
:''Dieses Dokument detailliert bekannte globale und anwendungsspezifische Schlüssel für Aktionen, Ressourcen und URL Beschränkungen und macht es zu einer handlichen Referenzanleitung um Kiosk-Profile zu erstellen''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Kiosk/Resources|Zusätzliche Ressourcen]]&lt;br /&gt;
:''KDEs Benutzer- und Gruppenprofile betreffe Links zu Werkzeugen, Mailinglisten, und zusätzlicher Dokumentation.''&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge ==&lt;br /&gt;
&lt;br /&gt;
;[http://extragear.kde.org/apps/kiosktool/ KioskTool]&lt;br /&gt;
:''Eine graphische Anwendung, die einem beim Verwalten von Benutzer- und Gruppenprofilen behilflich ist.''&lt;br /&gt;
&lt;br /&gt;
;[http://docs.kde.org/development/en/kdenetwork/krfb/ Gemeinsame Nutzung des Desktops]&lt;br /&gt;
:''Die Fähigkeit zur gemeinsame Nutzung des Desktops macht auch eine Nutzung auf Distanz möglich. Neben zahlreichen anderen Verwendungsmöglichkeiten, ist diese Fähigkeit eine große Hilfe für das Betreuungspersonal, welches eine telefonische Unterstützung bietet.''&lt;br /&gt;
&lt;br /&gt;
;[[Development/Tutorials/Shell_Scripting_with_KDE_Dialogs|Benutzung von KDE Dialogen in Shell-Scripten]]&lt;br /&gt;
:''Um verschiedene Dialoge anzuzeigen, können Sie KDialog Shell Scripte benutzen. Diese erlauben Ihnen eine nahtlose Eingliederung Ihrer eigenen GUI Erweiterungen.''&lt;br /&gt;
&lt;br /&gt;
;[[SysAdmin/Controlling_Access_To_Get_New_Stuff|Kontrollierter Zugang zu Get New Stuff Inhalten]]&lt;br /&gt;
:''Dieser Abschnitt bietet Informationen, wie Sie die vom Internet durch die Get New Stuff Option herunterladbaren Inhalte kontrollieren können.''&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/Wiki_Scenarios</id>
		<title>User:Danimo/Wiki Scenarios</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/Wiki_Scenarios"/>
				<updated>2007-07-08T10:28:45Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Scenarios for future Wiki use on *.kde.org ==&lt;br /&gt;
&lt;br /&gt;
The suggestions below are the outcome of a BoF during Akademy 2007 in Glasgow. We'd especially like to inquire the opinions of the subproject maintainers. Please add your opinions into the discussion page of this page or contact me on IRC. --[[User:Danimo|Danimo]] 12:28, 8 July 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
===  wiki.kde.org with namespaces === &lt;br /&gt;
'''Note:''' wiki.kde.org will then run mediawiki&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Easy to maintain&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Might grow very big&lt;br /&gt;
** Requires namespaces&lt;br /&gt;
** No obvious structure&lt;br /&gt;
** No homogenous target audience&lt;br /&gt;
&lt;br /&gt;
Unattractive for subprojects&lt;br /&gt;
&lt;br /&gt;
=== n /wiki per site ===&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Very flexible for projects&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
=== n role-based wiki sites === &lt;br /&gt;
'''Description:''' Wikis on domains that target the supposed audience, e.g. users.kde.org.&lt;br /&gt;
&lt;br /&gt;
Possible compromise between the two suggestions above.&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Less wiki instances than one per site&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
== Action items ==&lt;br /&gt;
&lt;br /&gt;
* Investigate OpenID&lt;br /&gt;
* Investigate which target audiences we/the projects want&lt;br /&gt;
* Talk to subprojects&lt;br /&gt;
** What solution do they prefer?&lt;br /&gt;
** To what extend would they go with whatever we do?&lt;br /&gt;
** Whats the additional value for them to join the effort?&lt;br /&gt;
* How and where to migrate the contents of the current wikis?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vote ==&lt;br /&gt;
&lt;br /&gt;
Please put sign underneath either bullet point that you want to vote for.&lt;br /&gt;
Anonymous votes will not be counted.&lt;br /&gt;
'''Example:''' &amp;lt;nowiki&amp;gt;**--~~~~&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* wiki.kde.org with namespaces&lt;br /&gt;
* n /wiki per site&lt;br /&gt;
* n role-based wiki sites&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/Wiki_Scenarios</id>
		<title>User:Danimo/Wiki Scenarios</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/Wiki_Scenarios"/>
				<updated>2007-07-08T10:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Scenarios for future Wiki use on *.kde.org ==&lt;br /&gt;
&lt;br /&gt;
===  wiki.kde.org with namespaces === &lt;br /&gt;
'''Note:''' wiki.kde.org will then run mediawiki&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Easy to maintain&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Might grow very big&lt;br /&gt;
** Requires namespaces&lt;br /&gt;
** No obvious structure&lt;br /&gt;
** No homogenous target audience&lt;br /&gt;
&lt;br /&gt;
Unattractive for subprojects&lt;br /&gt;
&lt;br /&gt;
=== n /wiki per site ===&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Very flexible for projects&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
=== n role-based wiki sites === &lt;br /&gt;
'''Description:''' Wikis on domains that target the supposed audience, e.g. users.kde.org.&lt;br /&gt;
&lt;br /&gt;
Possible compromise between the two suggestions above.&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Less wiki instances than one per site&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
== Action items ==&lt;br /&gt;
&lt;br /&gt;
* Investigate OpenID&lt;br /&gt;
* Investigate which target audiences we/the projects want&lt;br /&gt;
* Talk to subprojects&lt;br /&gt;
** What solution do they prefer?&lt;br /&gt;
** To what extend would they go with whatever we do?&lt;br /&gt;
** Whats the additional value for them to join the effort?&lt;br /&gt;
* How and where to migrate the contents of the current wikis?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vote ==&lt;br /&gt;
&lt;br /&gt;
Please put sign underneath either bullet point that you want to vote for.&lt;br /&gt;
Anonymous votes will not be counted.&lt;br /&gt;
'''Example:''' &amp;lt;nowiki&amp;gt;**--~~~~&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* wiki.kde.org with namespaces&lt;br /&gt;
* n /wiki per site&lt;br /&gt;
* n role-based wiki sites&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/Wiki_Scenarios</id>
		<title>User:Danimo/Wiki Scenarios</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/Wiki_Scenarios"/>
				<updated>2007-07-08T10:25:21Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Scenarios for future Wiki use on *.kde.org ==&lt;br /&gt;
&lt;br /&gt;
===  wiki.kde.org with namespaces === &lt;br /&gt;
'''Note:''' wiki.kde.org will then run mediawiki&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Easy to maintain&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Might grow very big&lt;br /&gt;
** Requires namespaces&lt;br /&gt;
** No obvious structure&lt;br /&gt;
** No homogenous target audience&lt;br /&gt;
&lt;br /&gt;
Unattractive for subprojects&lt;br /&gt;
&lt;br /&gt;
=== n /wiki per site ===&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Very flexible for projects&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
=== n role-based wiki sites === &lt;br /&gt;
'''Description:''' Wikis on domains that target the supposed audience, e.g. users.kde.org.&lt;br /&gt;
&lt;br /&gt;
Possible compromise between the two suggestions above.&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Less wiki instances than one per site&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
== Action items ==&lt;br /&gt;
&lt;br /&gt;
* Investigate OpenID&lt;br /&gt;
* Investigate which target audiences we/the projects want&lt;br /&gt;
* Talk to subprojects&lt;br /&gt;
** What solution do they prefer?&lt;br /&gt;
** To what extend would they go with whatever we do?&lt;br /&gt;
** Whats the additional value for them to join the effort?&lt;br /&gt;
* How and where to migrate the contents of the current wikis?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vote ==&lt;br /&gt;
&lt;br /&gt;
Please put sign underneath either bullet point that you want to vote for.&lt;br /&gt;
Anonymous votes will not be counted.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**--~~~~&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* wiki.kde.org with namespaces&lt;br /&gt;
* n /wiki per site&lt;br /&gt;
* n role-based wiki sites&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/Wiki_Scenarios</id>
		<title>User:Danimo/Wiki Scenarios</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/Wiki_Scenarios"/>
				<updated>2007-07-02T18:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Scenarios for future Wiki use on *.kde.org ==&lt;br /&gt;
&lt;br /&gt;
===  wiki.kde.org with namespaces === &lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Easy to maintain&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Might grow very big&lt;br /&gt;
** Requires namespaces&lt;br /&gt;
** No obvious structure&lt;br /&gt;
** No homogenous target audience&lt;br /&gt;
&lt;br /&gt;
Unattractive for subprojects&lt;br /&gt;
&lt;br /&gt;
=== n /wiki per site ===&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Very flexible for projects&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
=== n role-based wiki sites === &lt;br /&gt;
&lt;br /&gt;
Possible compromise between the two suggestions above.&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Less wiki instances than one per site&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
== Action items ==&lt;br /&gt;
&lt;br /&gt;
* Investigate OpenID&lt;br /&gt;
* Investigate which target audiences we/the projects want&lt;br /&gt;
* Talk to subprojects&lt;br /&gt;
** What solution do they prefer?&lt;br /&gt;
** To what extend would they go with whatever we do?&lt;br /&gt;
** Whats the additional value for them to join the effort?&lt;br /&gt;
* How and where to migrate the contents of the current wikis?&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/Wiki_Scenarios</id>
		<title>User:Danimo/Wiki Scenarios</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/Wiki_Scenarios"/>
				<updated>2007-07-02T18:02:00Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Scenarios for future Wiki use on *.kde.org ==&lt;br /&gt;
&lt;br /&gt;
===  wiki.kde.org with namespaces === &lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Easy to maintain&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Might grow very big&lt;br /&gt;
** Requires namespaces&lt;br /&gt;
&lt;br /&gt;
=== n /wiki per site ===&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Very flexible for projects&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
=== n role-based wiki sites === &lt;br /&gt;
&lt;br /&gt;
Possible compromise between the two suggestions above.&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
** Less wiki instances than one per site&lt;br /&gt;
&lt;br /&gt;
*Cons&lt;br /&gt;
** Sharing templates impossible &lt;br /&gt;
** Sharing files quite hard&lt;br /&gt;
** Interwiki-Links are of limited use&lt;br /&gt;
** n databases&lt;br /&gt;
&lt;br /&gt;
== Action items ==&lt;br /&gt;
&lt;br /&gt;
* Investigate OpenID&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Danimo/Wiki_Scenarios</id>
		<title>User:Danimo/Wiki Scenarios</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Danimo/Wiki_Scenarios"/>
				<updated>2007-07-02T17:55:47Z</updated>
		
		<summary type="html">&lt;p&gt;Danimo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Scenarios for future Wiki use on *.kde.org ==&lt;br /&gt;
&lt;br /&gt;
=== /wiki per site ===&lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
*Cons&lt;br /&gt;
&lt;br /&gt;
===  wiki.kde.org with namespaces === &lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
*Cons&lt;br /&gt;
&lt;br /&gt;
=== n role-based wiki sites === &lt;br /&gt;
&lt;br /&gt;
*Pros&lt;br /&gt;
*Cons&lt;br /&gt;
&lt;br /&gt;
== Action items ==&lt;br /&gt;
&lt;br /&gt;
* Investigate OpenID&lt;/div&gt;</summary>
		<author><name>Danimo</name></author>	</entry>

	</feed>