<?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=Repinc&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=Repinc&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Special:Contributions/Repinc"/>
		<updated>2013-05-26T07:39:30Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/Development/Further_Information</id>
		<title>Development/Further Information</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Further_Information"/>
				<updated>2007-09-02T00:53:12Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: /* English */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Development/Further Information}}&lt;br /&gt;
== Web Sites ==&lt;br /&gt;
* [http://www.KDE.org KDE Home]&lt;br /&gt;
* [http://dot.kde.org KDE Dot News]&lt;br /&gt;
* [http://www.planetkde.org Planet KDE]&lt;br /&gt;
&lt;br /&gt;
==Blogs==&lt;br /&gt;
&lt;br /&gt;
== Books ==&lt;br /&gt;
Below are a list of books associated with KDE 4 development.  These may be specific to applications, using the Qt Toolkit, or specifically KDE 4 books.&lt;br /&gt;
&lt;br /&gt;
===KDE 4 Development Books===&lt;br /&gt;
&lt;br /&gt;
[mailto:manishchaks@gmail.com Manish Chakravarty ] from [http://kde.in KDE India] is working on a KDE 4 programming book. &lt;br /&gt;
The scheduled release date is the the 15th of August 2007&lt;br /&gt;
&lt;br /&gt;
===Qt 4 Development Books===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
&lt;br /&gt;
[http://www.qt4-book.com/ The Book of Qt 4: The Art of Building Qt Applications] by Daniel Molkentin&lt;br /&gt;
&lt;br /&gt;
[http://www.phptr.com/bookstore/product.asp?isbn=0131879057&amp;amp;rl=1 An Introduction to Design Patterns in C++ with Qt 4] by Alan Ezust, Paul Ezust&lt;br /&gt;
&lt;br /&gt;
[http://www.phptr.com/bookstore/product.asp?isbn=0131872494&amp;amp;rl=1 C++ GUI Programming with Qt 4] by Jasmin Blanchette, Mark Summerfield&lt;br /&gt;
&lt;br /&gt;
==== German ====&lt;br /&gt;
&lt;br /&gt;
[https://www.opensourcepress.de/index.php?26&amp;amp;backPID=15&amp;amp;tt_products=23 Qt 4: Einführung in die Applikationsentwicklung von Daniel Molkentin]&lt;br /&gt;
&lt;br /&gt;
== IRC Channels ==&lt;br /&gt;
In general, IRC channels mentioned here are available on FreeNode. Connect to irc.kde.org, and check these channels out for further information.&lt;br /&gt;
&lt;br /&gt;
*KDE 4 Development - [irc://irc.kde.org:6667/kde4-devel #kde4-devel]&lt;br /&gt;
*KDE Development - [irc://irc.kde.org:6667/kde-devel #kde-devel]&lt;br /&gt;
*KDevelop - [irc://irc.kde.org:6667/kdevelop #kdevelop]&lt;br /&gt;
*Phonon - [irc://irc.kde.org:6667/phonon #phonon]&lt;br /&gt;
*Decibel - [irc://irc.kde.org:6667/decibel #decibel]&lt;br /&gt;
*Solid - [irc://irc.kde.org:6667/solid #solid]&lt;br /&gt;
&lt;br /&gt;
== Newsgroups ==&lt;br /&gt;
== Forums ==&lt;br /&gt;
== Events ==&lt;br /&gt;
== Courses and Certifications ==&lt;br /&gt;
== Audio and Video Casts ==&lt;br /&gt;
== Source Code Repositories ==&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Architecture/KDE4/Plasma</id>
		<title>Development/Architecture/KDE4/Plasma</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Architecture/KDE4/Plasma"/>
				<updated>2007-07-26T18:21:14Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Plasma is the name of the new desktop planned to replace KDesktop in KDE4. You can think it is a union of [http://netdragon.sf.net SuperKaramba] and KDesktop. But it's more. It's a whole concept of functionality and beauty.&lt;br /&gt;
&lt;br /&gt;
Its implementation is based on the Qt [http://doc.trolltech.com/graphicsview.html Graphics View Framework] introduced in Qt 4.2.&lt;br /&gt;
&lt;br /&gt;
From a developer point of view there are some classes in libplasma who play central roles.&lt;br /&gt;
&lt;br /&gt;
* '''Corona''': extends [http://doc.trolltech.com/qgraphicsscene.html QGraphicsScene] and provides functionality for adding applets and karamba themes.&lt;br /&gt;
* '''Widget''': extends [http://doc.trolltech.com/qgraphicsitem.html QGraphicsItem] and works as simple elements in the desktop. There are some built-in in libplasma as icons or buttons.&lt;br /&gt;
* '''Applet''': extends Widget and implements sophisticated functionality as rss display, a clock or system monitoring.&lt;br /&gt;
* '''DataEngine''': The common use of a DataEngine is to provide data to a applet for display. This allows a user interface elements to show all sorts of data.&lt;br /&gt;
&lt;br /&gt;
===Further reading===&lt;br /&gt;
* [http://plasma.kde.org Plasma homesite]&lt;br /&gt;
* [http://api.kde.org/4.0-api/kdebase-apidocs/workspace/plasma/html/index.html Plasma API]&lt;br /&gt;
* [http://techbase.kde.org/Projects/Plasma Plasma techbase page]&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)</id>
		<title>Welcome to KDE TechBase (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)"/>
				<updated>2007-07-21T16:09:44Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Dobrodošli na KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
'''Pomnite:''' Prevajanje teh Wiki strani je še v teku. Nekatere strani so trenutno na voljo samo v angleščini. Potrudili se bomo, da jih čimprej in čimveč prevedemo v slovenščino. Že v naprej hvala za razumevanje. Vsaka pomoč je dobrodošla.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started (sl)|Postavitev okolja za razvoj KDE-ja]]&lt;br /&gt;
:Naučite se kako dobiti, zgraditi in poganjati KDE in programe zanj.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Razvoj s KDE]]&lt;br /&gt;
:[[Development/Tutorials|Vodiči]] | [http://api.kde.org Dokumentacija API-ja] | [[Development/FAQs|PZV]] in več.&lt;br /&gt;
:''Sorodno'': [[Schedules|Urniki izdaj in načrtovane značilnosti]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[SysAdmin|Sistemska administracija KDE-ja]]&lt;br /&gt;
:Informacije za sistemske administratorje, ki upravljajo z namestitvami KDE-ja.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Pridružite se ekipi KDE-ja in prispevajte]]&lt;br /&gt;
:Prispevajte popravke, ostanite v stiku in se pridružite eni izmed najboljših odprtokodnih skupnosti.&lt;br /&gt;
:''Sorodno:'' [[Policies|Pravila projekta KDE]] | [http://www.kde.org/support/support.php Kako prispevati finančno]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|Informacije za ISV-je]]&lt;br /&gt;
:Razvijalske informacije za neodvisne prodajalce programske opreme.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|Projekti znotraj KDE-ja]]&lt;br /&gt;
:Povezave do razvijalskih Wiki strani, seznamov opravil, itd. za razne projekte znotraj KDE-ja.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started/Build/KDE4_(sl)</id>
		<title>Getting Started/Build/KDE4 (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started/Build/KDE4_(sl)"/>
				<updated>2007-07-21T16:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Začetek slovenskega prevoda&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Getting_Started/Build/KDE4}}&lt;br /&gt;
&lt;br /&gt;
{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Kako začeti|&lt;br /&gt;
&lt;br /&gt;
name=Grajenje KDE 4 iz izvorne kode|&lt;br /&gt;
&lt;br /&gt;
pre=[[../../Sources/Anonymous_SVN|Hitri vodnik po anonimnem SVN-ju]]|&lt;br /&gt;
&lt;br /&gt;
next=[[../../Set_up_KDE_4_for_development|Nastavitev KDE 4 za razvoj]]|&lt;br /&gt;
&lt;br /&gt;
reading=[http://kdesvn-build.kde.org/ kdesvn-build: orodje za grajenje KDE-ja iz Subversion-a]&amp;lt;br&amp;gt;[[../../Increased_Productivity_in_KDE4_with_Scripts|Povečanje storilnosti v KDE 4 z uporabo skriptov]]&amp;lt;br&amp;gt;[[Development/Tutorials/CMake |Uvod v CMake]]&amp;lt;br&amp;gt;[[../KDE4/FreeBSD|Opombe za FreeBSD]]&amp;lt;br&amp;gt;[[../KDE4/Mac OS X|Navodila za Mac OS X]]&amp;lt;br&amp;gt;[[../KDE4/Windows|Navodila za MS Windows]]|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Povzetek ==&lt;br /&gt;
&lt;br /&gt;
Ta vodnik prikazuje enega izmed načinov, kako pripraviti KDE iz razvojnega debla, da bo tekel na sistemih Linux in BSD. Na voljo so tudi vodniki za [[/FreeBSD|FreeBSD]], [http://www.kdelibs.com/ Windows], [[/Mac OS X|Mac OS X]] in [http://solaris.kde.org/ Solaris]. Vse skozi vodnik bomo uporabljali ukazno lupino bash.&lt;br /&gt;
&lt;br /&gt;
{{warning|V '''ponedeljek''' lahko pričakujete večje število napak pri gradnji. Takrat se namreč vnaša spremembe v kdelibs. [http://developer.kde.org/~dirk/dashboard/ Dashboard] poroča o nepričakovanih napakah. Spodbudili bi vas radi, da popravite module, ki imajo napake pri gradnji.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Potrebna programska oprema ==&lt;br /&gt;
&lt;br /&gt;
Da bi uspešno zaključili ta vodnik, morate najprej namestiti sledeče:&lt;br /&gt;
* gcc in g++ iz projekta GCC, najbolje različico 4.1 ali višjo&lt;br /&gt;
* svn, odjemalec Subversion za nadzor nad revizijami&lt;br /&gt;
* pkg-config&lt;br /&gt;
* razvijalske knjižnice in datoteke z glavo za X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, [http://clucene.sourceforge.net/index.php/Downloads libclucene], [http://download.librdf.org/source/ librdf], libxml2 and libxslt&lt;br /&gt;
* skript &amp;lt;tt&amp;gt;makeobj&amp;lt;/tt&amp;gt;, ki je del modula kdesdk. Skript lahko naložite kot del paketa kdesdk (kdesdk-scripts na Debian-u), ali pa ga prenesete neposredno [http://websvn.kde.org/*checkout*/trunk/KDE/kdesdk/scripts/makeobj s SVN-ja].&lt;br /&gt;
* [http://freedesktop.org/wiki/Software/shared-mime-info paket shared-mime-info], ki je MIME standard organizacije freedesktop.org in ga KDE sedaj uporablja&lt;br /&gt;
* [http://boost.org/ boost], ki ga potrebuje kdebase. Da bo CMake našel Boost, mora biti Boost-ova mapa, ki vsebuje podmapo include navedena v spremenljivki CMAKE_INCLUDE_PATH, ali pa morate nastaviti okoljsko spremenljivko BOOST_ROOT, ki kaže na mapo z Boost-om.&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu ===&lt;br /&gt;
&lt;br /&gt;
Da namestite vse potrebne pakete v Kubuntu 7.04 (Feisty Fawn) poženite sledeči ukaz:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install build-essential cdbs debhelper cmake \&lt;br /&gt;
libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \&lt;br /&gt;
shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \&lt;br /&gt;
libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \&lt;br /&gt;
libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \&lt;br /&gt;
libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \&lt;br /&gt;
libasound2-dev&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ročno nameščanje CMake 2.4.6 in DBus lahko preskočite z:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install libdbus-1-dev cmake&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za polno delujočo dokumentacijo programskega vmesnika (API-ja):&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo aptitude install graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
V openSUSE 10.2 in novejših lahko pakete namestite z orodjem&lt;br /&gt;
[http://en.opensuse.org/Zypper Zypper]:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
sudo zypper install &amp;lt;ime-paketa&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V starejših različicah lahko uporabite YaST:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
yast -i &amp;lt;ime-paketa&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Potrebni paketi'''&lt;br /&gt;
&lt;br /&gt;
Paketi, ki jih morate namestiti, so:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
xorg-x11-devel&lt;br /&gt;
libxml2-devel &lt;br /&gt;
kdesdk3 &lt;br /&gt;
clucene-core-devel &lt;br /&gt;
boost-devel&lt;br /&gt;
libjpeg-devel &lt;br /&gt;
liblrdf-devel &lt;br /&gt;
libpng-devel &lt;br /&gt;
libxslt-devel &lt;br /&gt;
libredland-devel&lt;br /&gt;
Mesa-devel &lt;br /&gt;
giflib-devel &lt;br /&gt;
subversion &lt;br /&gt;
gcc &lt;br /&gt;
gcc-c++&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Neobvezni paketi'''&lt;br /&gt;
&lt;br /&gt;
Ročno nameščanje Qt 4.3, CMake 2.4.6 in DBus lahko preskočite tako, da med vire za nameščanje dodate skladišče KDE4 storitve openSUSE Build.&lt;br /&gt;
&lt;br /&gt;
V openSUSE 10.2 in novejših:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V starejših različicah:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/&amp;lt;različica-vašega-suse-linuxa&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Po tem, ko dodate vir, namestite sledeče pakete (in odvisnosti):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cmake&lt;br /&gt;
dbus-1-devel&lt;br /&gt;
libqt4-devel&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za polno delujočo dokumentacijo programskega vmesnika (API-ja):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
graphviz&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paketi CMake za openSUSE so na voljo prek [http://software.opensuse.org/download/devel:/tools:/building/ storitve openSUSE Build].&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
==== Ročna namestitev ====&lt;br /&gt;
&lt;br /&gt;
Uporabite lahko stabilne ebuilde. Preden začnete ne pozabiti pognati »emerge --sync«.&lt;br /&gt;
&lt;br /&gt;
Nekatere ebuilde je potrebno odmaskirati, ali pa zagotoviti uporabo starejše različice:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
# echo 'x11-libs/qt' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-util/cmake' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo 'dev-cpp/clucene' &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# echo '&amp;gt;dev-cpp/clucene-0.9.16a' &amp;gt;&amp;gt; /etc/portage/package.mask&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To so ebuildi, ki jih bo potrebno namestiti. Nekateri so morda že nameščeni, zato lahko uporabite možnost »-u«.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
$ emerge -avu ebuild/ime&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sys-devel/gcc&lt;br /&gt;
dev-util/subversion&lt;br /&gt;
dev-util/pkgconfig&lt;br /&gt;
x11-base/xorg-x11&lt;br /&gt;
media-libs/glut&lt;br /&gt;
media-libs/mesa&lt;br /&gt;
media-libs/jpeg&lt;br /&gt;
media-libs/libpng&lt;br /&gt;
media-libs/giflib&lt;br /&gt;
dev-cpp/clucene&lt;br /&gt;
dev-util/cppunit&lt;br /&gt;
media-libs/liblrdf&lt;br /&gt;
dev-libs/libxml2&lt;br /&gt;
dev-libs/libxslt&lt;br /&gt;
x11-misc/shared-mime-info&lt;br /&gt;
kde-base/kdesdk-scripts&lt;br /&gt;
dev-libs/boost&lt;br /&gt;
x11-libs/qt&lt;br /&gt;
dev-util/cmake&lt;br /&gt;
sys-apps/dbus&lt;br /&gt;
dev-libs/redland&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Če ste namestili vse te ebuilde, lahko preskočite ročno prevajanje in nadaljujete s poglavjem [[Getting_Started/Build/KDE4_(sl)#kdesupport|kdesupport]]&lt;br /&gt;
&lt;br /&gt;
==== Z uporabo sistema portage ====&lt;br /&gt;
&lt;br /&gt;
Pakete za KDE 4 lahko namestite tudi neposredno z:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
emerge -a &amp;lt;packagename&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Najprej [http://gentoo-wiki.com/TIP_Overlays#Layman namestite orodje layman] in si nato prenesite overlay KDE, ki vsebuje poskusne ebuilde za KDE.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
layman -a kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za KDE 4 je potrebno nastaviti še določene zastavice USE in povedati sistemu portage naj namesto ebuildov za KDE 3 uporablja ebuilde za KDE 4. Na ta način bo lahko portage sledil vsem odvisnostim.&lt;br /&gt;
&lt;br /&gt;
Podrobna navodila za grajenje KDE 4 v Gentoo-ju lahko najdete na [http://overlays.gentoo.org/proj/kde/wiki Wikiju overlaya za KDE]. O njih se razpravlja na forumu v temi [http://forums.gentoo.org/viewtopic-t-530111-postdays-0-postorder-asc-start-0.html Monolitski ebuildi za KDE 4].&lt;br /&gt;
&lt;br /&gt;
== Ustvarite uporabniški račun za razvoj KDE 4 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started_(sl)</id>
		<title>Getting Started (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started_(sl)"/>
				<updated>2007-07-20T22:43:30Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Kako začeti}}&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Getting_Started}}&lt;br /&gt;
{{Box|Kako dobiti izvorno kodo|&lt;br /&gt;
[[Image:Action_down.svg|right|32px]]&lt;br /&gt;
KDE-jeva izvorna koda je na voljo na različne načine:&lt;br /&gt;
* [[Getting Started/Sources/Anonymous SVN|Hitri vodnik po anonimnem SVN-ju]]&lt;br /&gt;
* [[Getting Started/Sources/Using Subversion with KDE|Uporaba Subversion-a s KDE-jem]] ''Bolj poglobljena predstavitev dostopanja do izvorne kode KDE-ja z uporabo Subversion-a. Vključuje pregled strukture skladišča ter opis dela z revizijami in popravki.''&lt;br /&gt;
* [http://websvn.kde.org/ Brskajte po kodi s spletnim brskalnikom]&lt;br /&gt;
* [[Getting Started/Sources/Snapshots|Dnevni posnetki]]&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Kako zgraditi KDE|&lt;br /&gt;
[[Image:Action_tool.svg|right|32px]]&lt;br /&gt;
Obstaja več vej KDE-ja. Za vsakodnevno uporabo priporočamo stabilno različico KDE-ja.&lt;br /&gt;
* [[Getting Started/Build/KDE4|KDE 4 (razvojna različica, trunk)]]&lt;br /&gt;
* [[Getting Started/Build/Stable Version|KDE 3.5 (stabilna različica)]]&lt;br /&gt;
* [[Getting Started/Build|Druge različice in PZV]] ''Vključuje informacije za gradnjo na sistemih, ki niso Linux.''&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Nastavitev okolja|&lt;br /&gt;
[[Image:Action_pen.svg|right|32px]]&lt;br /&gt;
Ko je KDE zgrajen, bo prav prišel dober način poganjanja programov in opravljanja običajnih razvijalskih opravil:&lt;br /&gt;
* [[Getting Started/Increased Productivity in KDE4 with Scripts|Povečanje storilnosti v KDE 4 z uporabo skriptov]]&lt;br /&gt;
* [[Getting Started/Set up KDE 4 for development|Nastavitev KDE 4 za razvoj]]&lt;br /&gt;
|100%}}&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)</id>
		<title>Welcome to KDE TechBase (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)"/>
				<updated>2007-07-20T22:26:42Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Povezava do slovenskega prevoda Getting Started&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Dobrodošli na KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
'''Pomnite:''' Prevajanje teh Wiki strani je še v teku. Nekatere strani so trenutno na voljo samo v angleščini. Potrudili se bomo, da jih čimprej in čimveč prevedemo v slovenščino. Vsaka pomoč je dobrodošla. Že v naprej hvala za razumevanje.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started (sl)|Postavitev okolja za razvoj KDE-ja]]&lt;br /&gt;
:Naučite se kako dobiti, zgraditi in poganjati KDE in programe zanj.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Razvoj s KDE]]&lt;br /&gt;
:[[Development/Tutorials|Vodiči]] | [http://api.kde.org Dokumentacija API-ja] | [[Development/FAQs|PZV]] in več.&lt;br /&gt;
:''Sorodno'': [[Schedules|Urniki izdaj in načrtovane značilnosti]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[SysAdmin|Sistemska administracija KDE-ja]]&lt;br /&gt;
:Informacije za sistemske administratorje, ki upravljajo z namestitvami KDE-ja.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Pridružite se ekipi KDE-ja in prispevajte]]&lt;br /&gt;
:Prispevajte popravke, ostanite v stiku in se pridružite eni izmed najboljših odprtokodnih skupnosti.&lt;br /&gt;
:''Sorodno:'' [[Policies|Pravila projekta KDE]] | [http://www.kde.org/support/support.php Kako prispevati finančno]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|Informacije za ISV-je]]&lt;br /&gt;
:Razvijalske informacije za neodvisne prodajalce programske opreme.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|Projekti znotraj KDE-ja]]&lt;br /&gt;
:Povezave do razvijalskih Wiki strani, seznamov opravil, itd. za razne projekte znotraj KDE-ja.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Getting_Started_(sl)</id>
		<title>Getting Started (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Getting_Started_(sl)"/>
				<updated>2007-07-20T22:25:12Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Prvi prevod v slovenščino&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Kako začeti}}&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Getting_Started}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Kako dobiti izvorno kodo|&lt;br /&gt;
[[Image:Action_down.svg|right|32px]]&lt;br /&gt;
KDE-jeva izvorna koda je na voljo na različne načine:&lt;br /&gt;
* [[Getting Started/Sources/Anonymous SVN|Hitri vodnik po anonimnem SVN-ju]]&lt;br /&gt;
* [[Getting Started/Sources/Using Subversion with KDE|Uporaba Subversion-a s KDE-jem]] ''Bolj poglobljena predstavitev dostopanja do izvorne kode KDE-ja z uporabo Subversion-a. Vključuje pregled strukture skladišča ter opis dela z revizijami in popravki.''&lt;br /&gt;
* [http://websvn.kde.org/ Brskajte po kodi s spletnim brskalnikom]&lt;br /&gt;
* [[Getting Started/Sources/Snapshots|Dnevni posnetki]]&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Kako zgraditi KDE|&lt;br /&gt;
[[Image:Action_tool.svg|right|32px]]&lt;br /&gt;
Obstaja več vej KDE-ja. Za vsakodnevno uporabo priporočamo stabilno različico KDE-ja.&lt;br /&gt;
* [[Getting Started/Build/KDE4|KDE 4 (razvojna različica, trunk)]]&lt;br /&gt;
* [[Getting Started/Build/Stable Version|KDE 3.5 (stabilna različica)]]&lt;br /&gt;
* [[Getting Started/Build|Druge različice in PZV]] ''Vključuje informacije za gradnjo na sistemih, ki niso Linux.''&lt;br /&gt;
|100%}}&lt;br /&gt;
&lt;br /&gt;
{{Box|Nastavitev okolja|&lt;br /&gt;
[[Image:Action_pen.svg|right|32px]]&lt;br /&gt;
Ko je KDE zgrajen, bo prav prišel dober način poganjanja programov in opravljanja običajnih razvijalskih opravil:&lt;br /&gt;
* [[Getting Started/Increased Productivity in KDE4 with Scripts|Povečanje storilnosti v KDE 4 z uporabo skriptov]]&lt;br /&gt;
* [[Getting Started/Set up KDE 4 for development|Nastavitev KDE 4 za razvoj]]&lt;br /&gt;
|100%}}&lt;br /&gt;
[[Category:Build KDE]]&lt;/div&gt;</summary>
		<author><name>Repinc</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>2007-07-20T21:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Adding Slovenian language&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&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;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;zh_CN&amp;quot;&amp;gt;[[{{{1}}}_(zh_CN)|简体中文]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)</id>
		<title>Welcome to KDE TechBase (sl)</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Welcome_to_KDE_TechBase_(sl)"/>
				<updated>2007-07-20T21:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Prvi prevod v slovenščino&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Dobrodošli na KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
{{Template:I18n/Language Navigation Bar|Welcome to KDE TechBase}}&lt;br /&gt;
&lt;br /&gt;
'''Pomnite:''' Prevajanje teh Wiki strani je še v teku. Nekatere strani so trenutno na voljo samo v angleščini. Potrudili se bomo, da jih čimprej in čimveč prevedemo v slovenščino. Vsaka pomoč je dobrodošla. Že v naprej hvala za razumevanje.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em 2.5% 0 2.5%; padding: 0 5px;&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Discover.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_launch.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Getting Started|Postavitev okolja za razvoj KDE-ja]]&lt;br /&gt;
:Naučite se kako dobiti, zgraditi in poganjati KDE in programe zanj.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_configure.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Development|Razvoj s KDE]]&lt;br /&gt;
:[[Development/Tutorials|Vodiči]] | [http://api.kde.org Dokumentacija API-ja] | [[Development/FAQs|PZV]] in več.&lt;br /&gt;
:''Sorodno'': [[Schedules|Urniki izdaj in načrtovane značilnosti]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Devices_system.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[SysAdmin|Sistemska administracija KDE-ja]]&lt;br /&gt;
:Informacije za sistemske administratorje, ki upravljajo z namestitvami KDE-ja.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Interact.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_favorites.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Contribute|Pridružite se ekipi KDE-ja in prispevajte]]&lt;br /&gt;
:Prispevajte popravke, ostanite v stiku in se pridružite eni izmed najboljših odprtokodnih skupnosti.&lt;br /&gt;
:''Sorodno:'' [[Policies|Pravila projekta KDE]] | [http://www.kde.org/support/support.php Kako prispevati finančno]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot;|[[Image:Action_contents.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[ISV|Informacije za ISV-je]]&lt;br /&gt;
:Razvijalske informacije za neodvisne prodajalce programske opreme.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[[Image:Develop.png|noframe]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 50px;&amp;quot; |[[Image:Action_wizard.svg|noframe|left|40px]] ||&lt;br /&gt;
;[[Projects|Projekti znotraj KDE-ja]]&lt;br /&gt;
:Povezave do razvijalskih Wiki strani, seznamov opravil, itd. za razne projekte znotraj KDE-ja.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Summer_of_Code/2007/Projects/KAider</id>
		<title>Projects/Summer of Code/2007/Projects/KAider</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Summer_of_Code/2007/Projects/KAider"/>
				<updated>2007-07-20T20:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: /* KBabel features NOT to be implemented */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KAider is a computer-aided translation system that focuses on productivity and performance. Translator does only creative work (of delivering message in his/her mother language in laconic and easy to understand form). KAider implies parapgraph-by-paragrah translation approach (when translating documentation) and message-by-message approach (when translating GUI).&lt;br /&gt;
See [[Projects/Summer_of_Code/2007/Projects/KAider/Introduction|KAider/Introduction]]&lt;br /&gt;
&lt;br /&gt;
==Current state==&lt;br /&gt;
Already has:&lt;br /&gt;
* syntax highlighting&lt;br /&gt;
* spellcheck (problems with dividing filter:doesnt check the last word)&lt;br /&gt;
* search-n-replace, ignoring accel marks&lt;br /&gt;
* small features like quick tag insert, placing text cursor right after the tag in the beginning (e.g. '&amp;lt;qt&amp;gt;|foobar&amp;lt;/qt&amp;gt;' where &amp;quot;|&amp;quot; is a cursor)&lt;br /&gt;
* entry bookmarks&lt;br /&gt;
* viewer of the difference between current msgid and previous one (i.e. msgid translation of which current msgstr really is -- for fuzzies generated with --previous gettext option)&lt;br /&gt;
* merge mode for editors (QA) or when several translators work on the same file [http://kv-53.narod.ru/kaider2.png screenshot]&lt;br /&gt;
* basic projectmanager functionality [http://kv-53.narod.ru/kaider1.png screenshot]&lt;br /&gt;
* glossary with basic [http://www.lisa.org/standards/tbx/ tbx] format support. KAider displays relevant entries on-the-fly and provides shortcuts to insert them. also, you can add new glossary terms via context menu of the glossary [http://kv-53.narod.ru/kaider3.png screenshot]&lt;br /&gt;
* webquery view, flexible thanks to kross&lt;br /&gt;
&lt;br /&gt;
==Compiling==&lt;br /&gt;
After you [[Getting_Started/Build/KDE4|set kde env up]] (compiling kdelibs is enough):&lt;br /&gt;
 cd trunk&lt;br /&gt;
 svn up playground/devtools/kaider&lt;br /&gt;
 su kde-devel&lt;br /&gt;
 mkdir playground/devtools/kaider/build&lt;br /&gt;
 cd playground/devtools/kaider/build&lt;br /&gt;
 cmakekde ..&lt;br /&gt;
&lt;br /&gt;
as a root, run sshd and then from the usual shell:&lt;br /&gt;
 ssh -XC kde-devel@localhost&lt;br /&gt;
 kaider&lt;br /&gt;
&lt;br /&gt;
==Roadmap==&lt;br /&gt;
*[basic framework DONE] project management -- 1-2 weeks&lt;br /&gt;
*[DONE] context glossary -- 0.5-1 week&lt;br /&gt;
*translation DB (QtSql) -- 2 weeks&lt;br /&gt;
*[DONE] mode for merging translations for editors (QA) -- 1 week&lt;br /&gt;
*scripting API + sipping on google translate for live glossary (kross) - 2 weeks&lt;br /&gt;
*the remaining time is for perfection/polishing/small improvements and xliff+qt-linguist support&lt;br /&gt;
&lt;br /&gt;
==What i'm doing these days==&lt;br /&gt;
*kross WebQuery framework - testing, final refinements&lt;br /&gt;
*impovements on ProjectView (dbus, etc), Glossary&lt;br /&gt;
&lt;br /&gt;
==Ideas==&lt;br /&gt;
Current:&lt;br /&gt;
* Webquery scripts for close languages;&lt;br /&gt;
* project-wise and program-wise: webquery scripts, glossaries, TMs&lt;br /&gt;
* Glossary editing usability&lt;br /&gt;
&lt;br /&gt;
Further work:&lt;br /&gt;
* Research on dividing into sentences rules (e.g. srx)&lt;br /&gt;
* Automate submitting translation suggestions to translate.google.com [Kross action]&lt;br /&gt;
&lt;br /&gt;
Not for KDE:&lt;br /&gt;
* Be complete computer-aided translation system by providing e.g. actions to import+export openoffice, txt and documents of other formats by calling appropriate scripts/commands. Define for that general kross actions interface.&lt;br /&gt;
* Make nice windoze package for the windowzerz&lt;br /&gt;
&lt;br /&gt;
==KBabel features to be implemented==&lt;br /&gt;
...in the smarter way :). After or during the summer.&lt;br /&gt;
* Character selection tool integration (kdelibs rule); sort by the frequency&lt;br /&gt;
* persistent bookmarks for messages in a file saved in the project&lt;br /&gt;
* extended marking of .po and .pot files (e.g. translator that currently works on the file and cince when) saved in the project&lt;br /&gt;
* Search/Replace functions in multiple files at once.&lt;br /&gt;
* Spellchecking of multiple files at once.&lt;br /&gt;
* Opening source code by references in message comments [Kross action]&lt;br /&gt;
* A plugin framework for validation tools for consistency checks [Kross action triggered on saving]&lt;br /&gt;
* Sending the file using email [Kross (project) action]&lt;br /&gt;
* Automatic syntax check with msgfmt when saving and, if an error occured, easy navigation to messages, which contain errors. == Syntax check (msgfmt --statistics) for existing files to control if the translated files will compile and, accordingly, work when distributed [Kross (project) action]&lt;br /&gt;
* CVS and SVN support [Kross project action] (is 'svn ci' so hard?)&lt;br /&gt;
* Automatic comparisons and statistics of POT and PO files for a quick overview which and how many files are translated (or not) and which files may be obsolete + [Kross (project) action] that merges translations with updated template&lt;br /&gt;
* PO File Header change [Kross action (+triggered on saving)]&lt;br /&gt;
* Printing of selected messages (eg fuzzy ) [Kross action]&lt;br /&gt;
&lt;br /&gt;
==KBabel features NOT to be implemented==&lt;br /&gt;
* Automatic (&amp;quot;rough&amp;quot; in kbabel terms) translation. Pure machine translation is a joke. All machine-made translations must be verified by human (and let it be a translator rather than a user).&lt;br /&gt;
&lt;br /&gt;
Why? because sometimes one English string may have two or more different translations depending on the context.&lt;br /&gt;
&lt;br /&gt;
What I'm going to do is implement _interactive_ (or message-by-message) rough translation. If the message is already translated somewhere else, it suggests the translations (several, not one!) and displays them in the helper window. Translator may then choose one of the translation suggestions by pressing ctrl+1, ctrl+2, .. or ctrl+9, which will immediately insert it into msgstr  (replacing the old translation if it exists).&lt;br /&gt;
&lt;br /&gt;
What old rough translation didn't provide is the ability to choose.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
* Create project, saving *.ktp file to l10n-kde4/&amp;lt;LangCode&amp;gt;&lt;br /&gt;
* That's all. Begin populating Glossary via GlossaryView context menu, and .tbx file will be created automatically for you.&lt;/div&gt;</summary>
		<author><name>Repinc</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-08T11:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: /* Vote */ JLP votes&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;
x&lt;br /&gt;
* n /wiki per site&lt;br /&gt;
* n role-based wiki sites&lt;br /&gt;
**--[[User:Repinc|JLP]] 13:19, 8 July 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Repinc</id>
		<title>User:Repinc</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Repinc"/>
				<updated>2007-01-20T20:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Add link to Parsek developer documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm '''Jure Repinc''' from Bohinjska Bistrica, Slovenia. Besides being a passionate KDE user I'm also an active translator of KDE into Slovenian language.&lt;br /&gt;
&lt;br /&gt;
When it comes to KDE and Qt development I'm currently just a beginner. To improve my programming skills and have fun at the same time I'm currently (slowly) working on a KDE 4 client for [http://www.thousandparsec.net/tp/ Thousand Parsec] game project. The client is called [http://www.thousandparsec.net/tp/dev/documents/parsek/ Parsek] and with it you will be able to play 4X (eXplore, eXpand, eXploit and eXterminate) space empire building games similar to Stars! and Galactic Civilizations.&lt;br /&gt;
&lt;br /&gt;
You can find more about me on my blog: [http://jlp.holodeck1.com/blog/ JLP's Blog].&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/KDE3/Qt_Designer_and_KDevelop_3.0_for_Beginners</id>
		<title>Development/Tutorials/KDE3/Qt Designer and KDevelop 3.0 for Beginners</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/KDE3/Qt_Designer_and_KDevelop_3.0_for_Beginners"/>
				<updated>2007-01-10T05:11:12Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: /* Introduction */ Fix link to KDevelop&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{improve}}&lt;br /&gt;
{{KDE3}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
To get us started doing something useful with [http://www.trolltech.com/products/qt/features/designer Qt Designer], we are going to build a simple program that will show you the power of Qt Designer and [http://www.kdevelop.org/ KDevelop]. I hope that this will help you to create your first &amp;quot;real&amp;quot; KDE application.&lt;br /&gt;
&lt;br /&gt;
[http://www.kdevelop.org/ KDevelop] will help you to build a complete KDE application. The KDE project uses the autoconf and automake tools for KDE 3.x, and [http://www.kdevelop.org/ KDevelop] will provide you with all the necessary files (admin directory, Makefile.cvs, Makefile.am,...).&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
===How to Get Qt Designer===&lt;br /&gt;
====From your Distribution====&lt;br /&gt;
Qt Designer is part of the qt-3.2.x package and above. If you have an older Qt on your system, you should get at least this version. At the time of writing, Qt latest version is 3.3.2.&lt;br /&gt;
&lt;br /&gt;
Please remember to check if you have all the qt-related packages installed. You need the qt headers in order to compile this tutorial application. These headers usually come in the ''devel'' package. You also need to be sure you have designer. In some distributions, it comes in a separate package.&lt;br /&gt;
&lt;br /&gt;
To check if you have everything, do a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;locate qstring.h&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get something like ''/usr/lib/qt3/include/qstring.h'' then you can set your ''QTDIR'' variable to ''/usr/lib/qt3/''. In bash environment, this is done by typing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export QTDIR= /usr/lib/qt3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tarball or Anonymous Subversion====&lt;br /&gt;
You can download the tarball from the [http://www.trolltech.com/download/qt/x11.html Trolltech website], or get the ''qt-copy'' module from SVN. Please note that Qt for [http://www.kernel.org/ Linux] is [http://www.gnu.org/copyleft/gpl.html GPL].&lt;br /&gt;
&lt;br /&gt;
For an explanation for how to use anonymous SVN, get the ''qt-copy'' and ''kde'' modules and compile them, please see a great documentation at [[Getting_Started/Sources/Using Subversion with KDE|Using Subversion with KDE]].&lt;br /&gt;
&lt;br /&gt;
You must then set the ''QTDIR'' environment variable. This should point to the directory into which you installed Qt. In bash, for example, you would type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export QTDIR= /usr/local/qt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
provided that ''/usr/local/qt'' is the directory into which you installed Qt. Please read the INSTALL file for more details.&lt;br /&gt;
&lt;br /&gt;
You then compile by issuing the following commands, here is the recommended compile line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./configure -system-zlib -qt-gif -system-libpng -system-libjpeg \&lt;br /&gt;
-plugin-imgfmt-mng -thread -no-exceptions -debug -fast&lt;br /&gt;
make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command ''make install'' is not needed.&lt;br /&gt;
&lt;br /&gt;
Qt Designer is located in the ''bin'' directory of your Qt installation directory. You can run it by typing:&lt;br /&gt;
&amp;lt;code&amp;gt;/usr/local/qt/bin/designer&amp;lt;/code&amp;gt;&lt;br /&gt;
in a console.&lt;br /&gt;
&lt;br /&gt;
To compile Qt from source, please see [http://www.trolltech.com/ Trolltech]'s [http://www.trolltech.com/developer/downloads/qt/x11 Qt/X11 Open Source Edition] page.&lt;br /&gt;
&lt;br /&gt;
===How to get KDevelop 3===&lt;br /&gt;
====From your Distribution====&lt;br /&gt;
KDevelop 3 should be part of your distribution. Pre 3 versions of KDevelop were nicknamed Gideon, but they are obsolete now.&lt;br /&gt;
&lt;br /&gt;
====From Tarball====&lt;br /&gt;
KDevelop can be downloaded from the [http://www.kdevelop.org KDevelop website], under the '''Quick download''' heading.&lt;br /&gt;
&lt;br /&gt;
To compile KDevelop 3, you need qt-3.1.0 or higher and kdelibs-3.1.0 or higher. The environment variables ''QTDIR'' and ''KDEDIR'' should point to those directories.&lt;br /&gt;
&lt;br /&gt;
Don't forget to set up the KDE and Qt paths. The most common errors while using KDevelop come from the environment variables not set up properly. Check in a console by issuing the command '''set''' to see all your environment variables. You should set your ''PATH'' variable as follow as well as your ''LD_LIBRARY_PATH'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH&lt;br /&gt;
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any problem getting KDevelop running, please refer to the [http://www.kdevelop.org/phorum5/ KDevelop Forum] to find the answer to your problem.&lt;br /&gt;
&lt;br /&gt;
If you never used KDevelop before, try to create a new project and to compile it to get used to the interface and the icons. &lt;br /&gt;
&lt;br /&gt;
====KDevelop 3.4====&lt;br /&gt;
Please refer to [http://www.kdevelop.org/index.html?filename=3.4/download.html Downloading KDevelop 3.4] and [http://www.kdevelop.org/index.html?filename=3.4/branches_compiling.html Compiling KDevelop 3.4].&lt;br /&gt;
&lt;br /&gt;
===Lexicon===&lt;br /&gt;
* '''Widget''': a widget is an element of an graphical interface such as a container window, a button or a field for entering text.&lt;br /&gt;
* '''Layout management''': this term describes the way in which widgets are arranged in a window. In its simplest form, an element may be placed at a specific position and given a specific height and width. But when the user resizes the window, the widgets should stay in their position and change their size accordingly. Linux allows to do that by using layouts to place the widgets in.&lt;br /&gt;
* '''Signal and Slots''': Signals and slots are used for communication between objects. The signal/slot mechanism is a central feature of Qt. Signals are emitted by objects when they change their state in a way that may be interesting to the outside world. Slots can be used for receiving signals, but they are normal member functions. You can connect as many signals as you want to a single slot, and a signal can be connected to as many slots as you desire. Please see the [http://doc.trolltech.com/3.3/signalsandslots.html TrollTech documentation on signals and slots] for more details. In the excellent online documentation that comes with Qt, you'll find the signals and the public slots that go with each class. You can then implement your own slots. &lt;br /&gt;
&lt;br /&gt;
==Creating the Application==&lt;br /&gt;
===Starting the project===&lt;br /&gt;
====Creating the framework with KDevelop====&lt;br /&gt;
&lt;br /&gt;
The framework in which our program will sit in (i.e. the main window) can be done easily and quickly by using KDevelop. Start KDevelop and select ''New Project'' in the Project menu. The Application Wizard appears then. Choose a ''C++ -&amp;gt; KDE -&amp;gt; Simple KDE Application''. Fill in the blank lines with the project name '''SigCreate''', your name as author, and your email.  Refer to [[:Image:KDevelop3-CreateNewProject.png|this screen shot]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Click on ''Next''. Have a look to the CVS option and the header templates. Then click on ''Finish'' on the last screen. KDevelop creates all the files that you need to compile your project. You can use the file selector to view the code of the 3 files which are main.cpp, sigcreate.cpp and sigcreate.h, as shown [[:Image:KDevelop3-FileSelector.png|here]].&lt;br /&gt;
&lt;br /&gt;
Once the ''Application Wizard'' has created your application, compile it to ensure that everything is fine. To do that, select '''Build -&amp;gt; Run automake &amp;amp; friends''' then '''Build -&amp;gt; Run configure'''. The ''Messages output window'' should say&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot; Good - your configure finished. Start make now&lt;br /&gt;
*&lt;br /&gt;
* *** Success ***&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
so you can run ''make'' with '''Build -&amp;gt; Build Project''' (or using the F8 shortcut). Then '''Build -&amp;gt; Install'''. Then '''Build -&amp;gt; Execute program''' (or F9). The result is shown [[:Image:KDevelop-SigCreate.png|here]].&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''' - If KDevelop does not recognize your ''QTDIR'' and ''KDEDIR'' variables, you can set them in '''Project -&amp;gt; Project Options...''' in ''Configure Options'', as [[:Image:KDevelop3-ConfigureOptions.png|shown]].&lt;br /&gt;
&lt;br /&gt;
====Using Qt Designer====&lt;br /&gt;
Qt Designer is a tool for designing and implementing user interfaces. It helps you arranging your widgets on a form and adding a proper layout so your interface can be resized properly. I recommend that you read the [http://doc.trolltech.com/3.3/designer-manual.html Qt Designer manual] to know everything about Qt Designer. Qt Designer includes a code editor but we'll use KDevelop to edit and modify all code.&lt;br /&gt;
&lt;br /&gt;
We will now create the interface of our application using Qt Designer. A form from Qt Designer is saved with a .ui extension because it is then processed by the uic program to generate a .h and .cpp files. KDevelop takes care of that, the only thing we need to do is to create the form.&lt;br /&gt;
&lt;br /&gt;
* '''Note''' - Each time you add or remove a file (now we will add a .ui file) in your KDevelop project, the Makefile.am will be changed. KDevelop does that itself but you will need to ''Run automake &amp;amp; friends'' after such changes.&lt;br /&gt;
&lt;br /&gt;
In KDevelop, click on '''File -&amp;gt; New''' and fill the dialog window that appears. First write the file name: ''sigcreatedlg'' and select what new file you want in the combobox: here we want a ''Widget (.ui)''. Please be sure that '''Add to project''' is checked, this ensures that the Makefile.am is updated. Refer to [[:Image:KDevelop3-NewFile-Widget.png|this screen shot]].&lt;br /&gt;
&lt;br /&gt;
Click the ''OK'' button. The [[:Image:KDevelop3-AutomakeManagerDialog.png|Automake manager dialog]] then pops up.  Click the ''OK'' button for this dialog as well.&lt;br /&gt;
&lt;br /&gt;
If the new file ''sigcreatedlg.ui'' is not open in Qt Designer, open the ''Automake Manager'', right-click on the file and select ''Open With'', then ''Qt Designer''. Qt Designer will open.&lt;br /&gt;
&lt;br /&gt;
* '''Note''' - About the names: it is a good idea to finish a dialog name or a form name by ''dlg'' to ensure a nice visibility for people who want to have a look at the code. ''sigcreatedlg'' says that it is a dialog, i.e an interface class, only.&lt;br /&gt;
&lt;br /&gt;
The [[:Image:QtDesigner3-Interface.png|Qt Designer interface]] is essentially split into three areas. On the left is the '''toolbox''', where you can select your widgets. On the right, several dialogs can be selected. I'll keep only the '''Property Editor''' dialog (I close the 2 others). Your widgets can be fine tuned to behave how you want them to. You can choose the size of the widget, its background color (palette), and so on. Between those 2 windows is the '''Form''', your program window, within which you will design your user interface.&lt;br /&gt;
&lt;br /&gt;
* '''Note''' - After adding the ''sigcreatedlg.ui'' file, you will have to run ''Automake &amp;amp; friends'' and ''Run configure'' before building the program. This ensures that the updated ''Makefile.am'' is now read. &lt;br /&gt;
&lt;br /&gt;
===Designing the Program===&lt;br /&gt;
&lt;br /&gt;
Each time you want to use Qt Designer, you should have a precise visual idea of the design of your interface. You can see in [[:Image:KDevelop3-SigCreateDialog.png|this picture]] what the program will be like. It is a window with a number of different items (or widgets) on it, designed so that the user puts the right information in the right boxes. You should always design your program from the user's point of view, as it must be easy to use.&lt;br /&gt;
&lt;br /&gt;
This application creates an email signature, which is then displayed on the screen. The user should enter her/his name, email address, and then select one of three comments. When you click the '''Create!''' button, the generated signature is shown in a ''MultiLineEdit''. When you click '''Cancel''', the program quits.&lt;br /&gt;
&lt;br /&gt;
* '''Note''' - Note that this project is meant as a tutorial, so this is somewhat far away from practical use.&lt;br /&gt;
&lt;br /&gt;
Go back to the Qt Designer window with the new dialog open. You will see that the property editor has been filled with details about the form you have created. The first line in the '''Property Editor''' [[:Image:QtDesigner3-PropertyEditor.png|shows]] the name of the form which is Form1. Click on the field with this name to change it and type SigCreateDlg. This will form the class name of the dialog so you should name it something useful.&lt;br /&gt;
&lt;br /&gt;
To change properties, select the property you wish to change, then alter its setting on the right. Change the '''Caption''' property to &amp;quot;SigCreateDlg v.01&amp;quot;.   We will now begin to add widgets on our dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Widgets===&lt;br /&gt;
&lt;br /&gt;
To start, we will insert the text at the top of the program window, which can be seen [[:Image:KDevelop3-NewFile-Widget.png|here]]. This text tells the user how to operate the program. This type of widget is called a ''Label'' and you can put one on your program like this:&lt;br /&gt;
&lt;br /&gt;
# Select the dialog in ToolBox called '''Common Widgets-&amp;gt;TextLabel''', or from the menubar '''Tools-&amp;gt;Display-&amp;gt;TextLabel'''&lt;br /&gt;
# The cursor will become a crosshair over the form. Draw a box for the label, just as you would in a paint program, and you will see that the label is created with some dummy text in it.&lt;br /&gt;
# To change this text, double click on the label and type in the text, instead of ''TextLabel1''. The text you should type is ''This program will create an email signature for you. Just fill in the boxes and hit the Create! button.'' Select '''Align Center'' to have the text positioned nicely.  Refer to this [[:Image:QtDesigner3-TextEditDialog.png|screenshot]].&lt;br /&gt;
# Finally, resize the widget using the handles so it is the correct size and at the top of the box. Try to center the label by moving it with the mouse. This is just a temporary measure. Later on we will look at a more elegant layout management technique. You may refer to [[:Image:QtDesigner3-ResizingBox.png|this screenshot]].&lt;br /&gt;
&lt;br /&gt;
You follow pretty much the same procedure for embedding any type of widget that is supported by Qt Designer; select it, drag it, and finally, change its properties and size.&lt;br /&gt;
&lt;br /&gt;
An interesting concept in Qt Designer is that widgets can act as containers for other widgets. This will be demonstrated in our next task, which is to create the input fields inside the frame. You can see that in Picture 8 we have a bunch of labels and text boxes inside a frame. This frame is called a Group Box and acts as a container for the labels and text boxes inside it. Let's first create the frame by selecting the GroupBox in the '''Toolbox dialog-&amp;gt;Containers''' or '''Tools-&amp;gt;Containers-&amp;gt;GroupBox''' from the menubar. You can drag the mouse to create the box just below the Label you put before. In the ''Property Editor'' you can change the title property to alter the text in the frame. Put ''Details'' in the title text field. You may notice a + symbol in this entry in the ''Property Editor''. This indicates that the property has subproperties that can also be changed.&lt;br /&gt;
&lt;br /&gt;
Once you have created the frame (i.e the GroupBox), create three more labels as before but when you draw them, draw them inside the GroupBox frame. You can then see in the Object Explorer box ('''Windows menu -&amp;gt; Views -&amp;gt; Object Explorer''') to the right that the labels have become children of the GroupBox frame. See [[:Image:QtDesigner3-EditingTheDialog.png|this image]].&lt;br /&gt;
&lt;br /&gt;
Change the text of labels by double-clicking on it.&lt;br /&gt;
&lt;br /&gt;
Once you have done this you can then create the text boxes. They will allow the user to type in text like his(her) name and email address. We use the simplest type of text boxes: a widget called QLineEdit which allows the user to enter one line of text only. You have to create two QLineEdit widgets for the name and the email address. You choose the menu Tools then the entry Input then LineEdit and you draw it beside the 'Your Name' Label. Do the same below for the address.&lt;br /&gt;
&lt;br /&gt;
The witty comment will be selected by the user. We use a ComboBox which will present the user with three comments. Click on the ComboBox icon or select it via the Tools-&amp;gt; Input-&amp;gt; ComboBox menu. Draw it beside the Witty Comment label. Then double-click on it. You will be presented with a box into which you can add the contents of the combo box. Click on the 'New Item' button and type in your comment in the text box at the right. Then click again on 'New Item' for the second and third comments. Click on OK when you have finished.&lt;br /&gt;
&lt;br /&gt;
Adjust the size of the different widgets so they are nicely placed.&lt;br /&gt;
&lt;br /&gt;
Up to now, we have not named any of the widgets that are being placed in our program. It is useful to set an internal name for widgets so we can call them after in the program. Labels don't perform any action so they don't need to be named but other widgets do. It is the case now for our text boxes. We'll need to manipulate the data from the three input widgets (i.e. read the text) so we should give them a name. Names should be easily recognized later and they should make sense. The names are assigned via the name property on the top of the Property Editor. We name the top LineEdit nameBox and the second one mailBox. We name the ComboBox commBox. This will allow us to access the comments. So click on each LineEdit and then besides Name in the Property Editor write nameBox and mailBox. Then click on the ComboBox and name it commBox.&lt;br /&gt;
&lt;br /&gt;
We finish the graphical design by adding a label with 'Generated Signature' as text. Below it, we put a TextEdit ('''Tools-&amp;gt;Input-&amp;gt;TextEdit'''') where the generated signature will be displayed. We name it 'sigBox'. And then we add two PushButtons at the bottom ('Create!' and 'Cancel'). They don't need names but you can give them some if you want.&lt;br /&gt;
&lt;br /&gt;
Save your form. You can now have a quick preview by selecting the menu '''Preview-&amp;gt; Preview Form'''.  [[:Image:QtDesigner3-BeforeLayoutManagement.png|This]] is the form ''before'' layout management.&lt;br /&gt;
&lt;br /&gt;
===Getting Spaced Out===&lt;br /&gt;
This section describes the layout management. If you resize the preview window you will then notice that the widgets do not adjust appropriately. They are not resized. To improve things, we need to use a feature in Qt called spacers. Spacers are like virtual springs that push the widgets on each side apart.&lt;br /&gt;
* '''Note''' - Having a good layout is essential for your application, as when the strings are translated, they might be longer than the English ones and they need to fit on your widgets. The geometry of the widgets has to be nice if the user can resize your window application. Layouts are done by trial and error so use '''Preview-&amp;gt;Preview Form''' to see the result of your layout management and to achieve the best layout.&lt;br /&gt;
&lt;br /&gt;
The use of spacers and layout management is a skill that is developed through trial and error. The main thing to remember when dealing with spacers is that you work horizontally first and then vertically.&lt;br /&gt;
&lt;br /&gt;
We will first use spacers to center the text in the top box. Resize your label so that it only get the size of the text. Then we add two spacers, one at each side. Choose the 'spring' icon or menu '''Layout-&amp;gt; Add Spacer'''. You adjust each of the spacers horizontally. Click the space to the left of the text and the blue spacer will appear . Repeat the same procedure for the right. Then add a spacer on the right of the 'Generated Signature' label, and a last one on the left of the the 'Create!' pushbutton. Please use [[:Image:QtDesigner3-AddingTheSpacers.png|this image]] as a reference.&lt;br /&gt;
&lt;br /&gt;
Now that we have spacers to fill blank space, we need a proper layout management. This will allow the widgets to be nicely resized whenever the main window is resized. It is really compulsory to have good layout management. Again, try to resize several times to see if everything is in place. We can use Vertical or horizontal layout or grid management. The top row of widget is horizontal (spacer + label + spacer) so we need Horizontal management. We need to select the three widgets alltogether: click on the first spring, then click on the label while holding down ''Shift'', then on the second spring while holding down ''Shift''. Then click on the Horizontal Layout icon or menu '''Layout-&amp;gt; Lay Out Horizontally'''. You will then see a resizable red line around the three objects to indicate that their layout is being managed. Resize the red box if it needs to.&lt;br /&gt;
&lt;br /&gt;
We can now repeat this procedure for the three labels inside the GroupBox, this time using vertical layout management. The same vertical management for the two LineEdit and the ComboBox. It is better to use vertical management to keep the object aligned. If we use horizontal management for each label + text box then they will not stay aligned and equally sized. Horizontal management is needed for the label with the spacer and another one for the two pushbuttons and the spacer.&lt;br /&gt;
&lt;br /&gt;
To finish the layout, we need to let the form look after the laid-out boxes. We put everything in a grid. This is done by right clicking the form and selecting &amp;quot;Lay Out in a Grid&amp;quot; from the menu. The final design with layout lines should resemble something similar to [[:Image:QtDesigner3-CompleteLayoutManagement.png|this image]].&lt;br /&gt;
&lt;br /&gt;
===Signals and Slots===&lt;br /&gt;
&lt;br /&gt;
[http://doc.trolltech.com/3.0/signalsandslots.html Signals and Slots] are used for communication between Qt objects. The signal/slot mechanism is a central feature of Qt and probably the part that differs most from other toolkits which often use callbacks. In Qt, a signal is emitted by a widget when a particular event occurs, very often triggered by the user like for example pressing a button or writing something in a LineEdit. A slot is simply a function that is called in reponse to a particular signal.&lt;br /&gt;
&lt;br /&gt;
Now the widgets are implemented and the layout is arranged the final thing we need to do in the design stage of the form is to create the signal/slot connections. To do this manually requires a ''connect()'' function but Qt Designer provides a simple yet effective solution. To create the signal/slot connections we need to use the connecting tool. To do this either select the icon (it looks like a red arrow going into a green square) or select '''Tools-&amp;gt; Connect Signals/Slots''' from the menu (or use the F3 shortcut key). To create a connection, click on the form on the widget that is going to be dealing with the slot, drag the line off the form and release the mouse button.&lt;br /&gt;
&lt;br /&gt;
Let's deal first with the Create! button. Click first on the '''Connect Signal/Slot''' icon or select it from the Tools menu or use the F3 key. Then click on the Create! button with the crosshair and drag the line off the form completely. When you have released the mouse button you will see the connections tool shown [[:Image:QtDesigner3-CreateSlot.png|here]].&lt;br /&gt;
&lt;br /&gt;
What we want to do is to create a slot that will create our signature when the user clicks on the Create! button. The signal will be clicked() (you may choose among five signals for a QPushButton) and we need to create the slot then make the connection.&lt;br /&gt;
&lt;br /&gt;
To create the slot we need to click on the '''Edit Slots''' button. The slot creation box then appears. See [[:Image:QtDesigner3-CreateSlot.png|this example]]. Now click on the '''New Function''' button and a slot will appear in the box. Instead of ''new_slot()'' rename it to ''slotCreateSig()'' and leave the access specifier as public. When you click on ''OK'' you will be returned to the connections box and you will see your new slot in the Slots section of the box.&lt;br /&gt;
&lt;br /&gt;
To [[:Image:QtDesigner3-ViewandEditConnections.png|make a connection]] you simply select the appropriate signal (which is ''clicked()'' in our case) and then select the slot (which is our new slot ''slotCreateSig()''). When you have selected both signal and slot you will see the connection made at the bottom of the screen. After you are finished click OK.&lt;br /&gt;
&lt;br /&gt;
Repeat the procedure for the Cancel button by using the clicked() signal and the close() slot. You are now done with the signals and slots.&lt;br /&gt;
* '''Warning''' - Don't forget to save your form!&lt;br /&gt;
&lt;br /&gt;
===Generating the Source===&lt;br /&gt;
&lt;br /&gt;
In this tutorial, we use KDevelop subclassing tool in Automake Manager. If you have KDevelop version which has not that capability, then please go to Chapter 7 where I explain this step without the subclass tool.&lt;br /&gt;
&lt;br /&gt;
Here we start with the KDE simple project named SigCreate and the sigcreatedlg.ui that we have added in our project. In the Automake Manager, in the section sigcreate (Program in bin) you must have three files: sigcreatedlg.ui, sigcreate.cpp and main.cpp. The project must compile and give the main window as in picture 3 (creating.html).&lt;br /&gt;
&lt;br /&gt;
As the sigcreate class is no use for us, we will remove it and use it for subclassing the sigcreatedlg.ui file. In the Automake Manager, right click on sigcreate.cpp and select Remove and a dialog pops up. Please check 'Also Remove it from disk'. Then do the same with sigcreate.h. This is the way to remove obsolete files from your project and the Makefile.am will be updated. Remember to run automake &amp;amp; friends and configure before compiling your project again. We will not do it right now because we will make other changes. We will now use the class name SigCreate for the subclass.&lt;br /&gt;
&lt;br /&gt;
In the Automake Manager, in sigcreate (program in bin), right click on sigcreatedlg.ui and choose Subclass Widget... from the context menu that appears. Then fill in the subclass name which is SigCreate. Check the box: Reformat source and click on OK. Say No then about adding these files in cvs as we did not enable this in our project.&lt;br /&gt;
Note&lt;br /&gt;
You can see that the slot we created in designer is listed here and checked, the method will be implemented in the generated files. If you uncheck it, the code will not be generated in your class.&lt;br /&gt;
&lt;br /&gt;
(The subclass dialog Image)&lt;br /&gt;
&lt;br /&gt;
We have to suppress some lines in main.cpp as the KDE simple project template refers to a KMainWindow which is usually the base class used. But here, SigCreate is based on QWidget. You have to remove all the lines between KApplication app; and return app.exec(); except the ones I keep here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SigCreate *mainWin = 0;&lt;br /&gt;
&lt;br /&gt;
mainWin = new SigCreate();&lt;br /&gt;
app.setMainWidget( mainWin );&lt;br /&gt;
mainWin-&amp;gt;show();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Implementing the Slot===&lt;br /&gt;
&lt;br /&gt;
Then you implement the slot by adding the following lines in the parenthesis of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
void SigCreate::slotCreateSig()&lt;br /&gt;
{}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to implement the slot&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
	sigBox-&amp;gt;append(&amp;quot;\n--&amp;quot;);&lt;br /&gt;
 	sigBox-&amp;gt;append(nameBox-&amp;gt;text());&lt;br /&gt;
 	sigBox-&amp;gt;append(mailBox-&amp;gt;text());&lt;br /&gt;
 	sigBox-&amp;gt;append(commBox-&amp;gt;currentText());&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and also the corresponding headers of course:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 #include &amp;lt;qlineedit.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;qcombobox.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;qmultilineedit.h&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;lt;&lt;br /&gt;
Run ''Build -&amp;gt; Run automake &amp;amp; friends'', ''Build-&amp;gt; Run Configure'', ''Build -&amp;gt; Build Project'', ''Build -&amp;gt; Install'' (or ''Build-&amp;gt;Install as root user''), ''Build -&amp;gt; Execute Program''. That's it! The program is working!&lt;br /&gt;
&lt;br /&gt;
(Picture 20)&lt;br /&gt;
&lt;br /&gt;
A few more words about signals and slots. The signals and slots mechanism is type safe: the signature of a signal must match the signature of the receiving slot (for example, you will connect valueChanged(int) with a slot having an int as argument). And another thing to keep in mind is that all classes that inherit from QObject or one of its subclasses (e.g. QWidget) can contain signals and slots.&lt;br /&gt;
&lt;br /&gt;
All the strings used in KDE program must be wrapped in the i18n() function (klocale.h as header) because all KDE projects are translated. Please see the KDE Translation HowTo to learn more about i18n to make translations for an application.&lt;br /&gt;
&lt;br /&gt;
==In Short==&lt;br /&gt;
&lt;br /&gt;
This is a short resume on how to work with KDevelop and QtDesigner.&lt;br /&gt;
* In the KDevelop menu File-&amp;gt;New, select a Widget (.ui) file and give it a name (kprojectdlg for that example), check add to Project. Click OK.&lt;br /&gt;
* Qt Designer starts. Work on your form in Qt Designer then save your file and close designer. The designer file appears then in KDevelop under User Interface (kprojectdlg.ui).&lt;br /&gt;
* Create a new class (KProject as name for example) (Project menu then New class...) that inherits from your dialog file (kprojectdlg) and is a QWidget-childclass.&lt;br /&gt;
* Add your slots and others signals or member functions in the inherited class KProject. &lt;br /&gt;
&lt;br /&gt;
== Make the Translations for a Simple KDE Project==&lt;br /&gt;
&lt;br /&gt;
When your own project is finished, you may like to have one or several translations for the GUI. Here is how you can do that.&lt;br /&gt;
&lt;br /&gt;
=== Install gettext Patched for KDE ===&lt;br /&gt;
&lt;br /&gt;
Install a patched gettext that you can find on developer.kde.org and install it in your home directory. The patched gettext can be found there : http://public.kde.planetmirror.com/pub/kde/devel/gettext-kde/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ tar xvzf gettext-0.10.35-kde.tar.gz&lt;br /&gt;
 $ cd gettext-0.10.35-kde&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ mkdir -p ~/bin&lt;br /&gt;
 $ cp src/gettext src/xgettext ~/bin # copy gettext and xgettext into your HOME/bin directory&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Prepare the Translations ===&lt;br /&gt;
&lt;br /&gt;
Then, go into your project directory :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ cd /path/to/myproject&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Set KDEDIR to match your kde installation - on my Mandrake it is /usr This path can also be found by doing &amp;quot;kde-config --prefix&amp;quot;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ export KDEDIR=`kde-config --prefix` # or export KDEDIR=/usr&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the translations files :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ make -f admin/Makefile.common package-messages&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Make the Translations ===&lt;br /&gt;
&lt;br /&gt;
Translate the .po files using kbabel These files are in the po directory of your project.&lt;br /&gt;
* Warning - Do not touch the .pot file!&lt;br /&gt;
&lt;br /&gt;
=== Compile and Install the Translations Files ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 $ make package-messages&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==General Tips==&lt;br /&gt;
===General Hints===&lt;br /&gt;
==== Your Application Name ====&lt;br /&gt;
&lt;br /&gt;
KDE application names generally start with the letter K followed by a name suggesting what the program does. For example, KMail is very simple and tells the user that this is indeed a KDE application and about email. A good practice is to choose an english name for the name that follows the K. Of course, this is just an indication and you are free to do what you want. But a good name can help to get your program known quicker.&lt;br /&gt;
&lt;br /&gt;
* Note - Run a search in Google (in Konqueror, write gg:your_app_name) to see if the name you want to use is not the name of a copyrighted program. If this is the case or if in doubt, change it.&lt;br /&gt;
&lt;br /&gt;
==== Coding Practice ====&lt;br /&gt;
&lt;br /&gt;
Comments should be in English as it is really easier if someone else has a look at your code.&lt;br /&gt;
&lt;br /&gt;
Class names usually are also in English and the names must indicate what the class does. Good examples: TopLevel, CursorInterface, TaskManager. Note the upper case letters and remember that C++ is case-sensitive.&lt;br /&gt;
&lt;br /&gt;
Function names usually begin with a lower case letter and here are examples of good names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
void activateRaiseOrIconify();&lt;br /&gt;
void toDesktop(int);&lt;br /&gt;
void windowAdded(WId);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Code indentation can be whatever you like as long as the code is visible for other developers. Always keep in mind that other people will have a look in your code and try to make it easy to read. &lt;br /&gt;
&lt;br /&gt;
=== Importing your project in KDE CVS ===&lt;br /&gt;
&lt;br /&gt;
Your program interests people, you feel you have time to really work on it, you need more feedback and help for improving it. You also agree to release it under the GPL license or equivalent. You can ask for a cvs account to import it in kdenonbeta. The kdenonbeta module is quite big and is not distributed with the official KDE. It is not packaged nor translated and feature freeze does not apply to kdenonbeta. Its purpose is to allow other developers to work on your application and to test it. Of course, you will need qt-copy, arts and kdelibs from cvs HEAD at least. Please see a tutorial here on how to get started for compiling KDE from cvs HEAD.&lt;br /&gt;
Note&lt;br /&gt;
When your application has the most important features, when it's totally KDE compatible (i18n, xml GUI, ect.), you will be able to ask for moving it in a KDE official package.&lt;br /&gt;
&lt;br /&gt;
In order to get a cvs account, please follow theses instructions. Send a mail to sysadmin (at) office (dot) kde (dot) org to justify why you need cvs access. Tell that you want to import your application (app_name) in the kdenonbeta module. Make sure to specify your full name and e-mail address, if the From field in your mails doesn't specify them. You can also choose a nickname for your user login. You can currently choose between the standard non-encrypted CVS protocol (pserver) and the encrypted CVS-over-ssh. If you choose pserver, send also an encrypted password (for instance using useradd dummy ; passwd dummy ; grep dummy /etc/passwd /etc/shadow). If you choose CVS-over-ssh, send a public ssh key (e.g. ~/.ssh/id_dsa.pub).&lt;br /&gt;
&lt;br /&gt;
Wait for the answer from a KDE sysadmin.&lt;br /&gt;
&lt;br /&gt;
Once you have compiled at least qt-copy, arts and kdelibs, you need to check out kdenonbeta files. Log in the cvs server with your login user and password.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ cvs co -l kdenonbeta&lt;br /&gt;
    $ cd kdenonbeta&lt;br /&gt;
    $ cvs co admin  (or ln -s ../kde-common/admin .admin)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
You copy your project main dir with everything in kdenonbeta and then, in your project main dir, you issue a:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ make disclean&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
All the .o files must be gone. You can also remove by hand all Makefile, Makefile.in (not Makefile.am) and all kdevelop related files. Remove the admin, autom4te.cache, debug, doc, po and templates folders. You must just keep some files and the src subdir. Then, you cd .. to go back in kdenonbeta and you type:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ make -f Makefile.cvs&lt;br /&gt;
    $ ./configure --prefix=$KDEDIR&lt;br /&gt;
    $ cd your_project_name&lt;br /&gt;
    $ make&lt;br /&gt;
    $ su -c 'make install'&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All these steps must go well. If there are errors, you should be able to correct them by carefully reading the error message. If you are really stuck, please go to IRC and ask on #kde or #kde-devel, someone will help you.&lt;br /&gt;
&lt;br /&gt;
then, in kdenonbeta dir:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ cvs add your_project_name&lt;br /&gt;
    $ cvs add your_project_name/*&lt;br /&gt;
    $ cvs add your_project_name/src&lt;br /&gt;
    $ cvs add your_project_name/src/*&lt;br /&gt;
    $ cvs commit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You get the window (vi editor as default) where you can log your message. It's a good practice to note what your commit is about. In your case, you will say (type i first if you are in vi to get in edit mode):&lt;br /&gt;
&lt;br /&gt;
First import of your_app_name which does this and that.&lt;br /&gt;
&lt;br /&gt;
Check if all the files are added correctly. If not, cvs add filename and cvs commit.&lt;br /&gt;
&lt;br /&gt;
Each time you want to work on your project, don't forget to log in the kde server with your user login and password and do a:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    $ cvs up&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
to be sure you have the latest version.&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/KNewStuffSecure</id>
		<title>Development/Tutorials/KNewStuffSecure</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/KNewStuffSecure"/>
				<updated>2007-01-10T02:31:04Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: /* Resource sharing */ Fix links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Improve}}&lt;br /&gt;
&lt;br /&gt;
== Resource sharing ==&lt;br /&gt;
Many applications work with external resources which gives them the freedom to change or extend the behavior without requiring to change the application code itself. Others are extensible with the help of binary plugins. All these external resources should be provided in a way to the user, and the most common way is to put them on the homepage of the application, which works, but it is not so convenient to the final user to get the updates. It is much easier to get them from inside the application. Luckily KDE has the corresponding technology called KNewStuff which not only makes possible to download updates and resources, but if the application supports it, it is even possible to share a resource created by the user with other users. KNewStuff has a weak point though, that you cannot really know who created a resource when downloading, nor the maintainer of the resource repository can know who created the resource that was uploaded, and there is no corruption checking either.&lt;br /&gt;
&lt;br /&gt;
Starting with KDE 3.4 and with the introduction of the KNewStuffSecure class this problems are solved. With this technology the resources can be digitally signed, an md5sum is calculated for them, so both the uploaded and downloaded resources can be verified whether they come from a safe source and person or not.&lt;br /&gt;
&lt;br /&gt;
This tutorial will explain how to use KNewStuffSecure in your application to enable downloading and uploading secured resources. It will not explain the usage of KNewStuff itself and how you can set up a resource repository on the server. These informations can be found in the KNewStuff [http://developer.kde.org/documentation/library/cvs-api/knewstuff/html/ API documentation], in the [http://www.kstuff.org/docs/tutorial/ KNewStuff tutorial] and in the sources: &amp;lt;strong&amp;gt;[http://webcvs.kde.org/kdelibs/knewstuff/README.knewstuff?view=markup kdelibs/knewstuff/README.knewstuff]&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;[http://webcvs.kde.org/kdelibs/knewstuff/data kdelibs/knewstuff/data]&amp;lt;/strong&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;General information&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Using KNewStuff itself is quite simple, and I tried to make KNewStuffSecure not&lt;br /&gt;
  more complicated. The only extra requirement is to have &amp;lt;strong&amp;gt;gpg&amp;lt;/strong&amp;gt; installed in your&lt;br /&gt;
  path, and for uploading of course it is preferred if you already have a GPG key&lt;br /&gt;
that you can use for resource signing.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As &amp;lt;strong&amp;gt;gpg&amp;lt;/strong&amp;gt; is not a compilation time requirement, it is suggested that you check on application startup for its presence and warn the user what he misses without it. Of course the check is performed by KNewStuffSecure as well, but I find it muchnicer to check for runtime dependencies on startup.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Downloading resources&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The first thing you must to is to subclass the KNewStuffSecure class and implement the installResource method, which is a pure virtual method in KNewStuffSecure. Here is an example of what you should put in a header file:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;codeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #include &amp;amp;lt;knewstuff/knewstuffsecure.h&amp;amp;gt;&lt;br /&gt;
  class MyNewStuff: public KNewStuffSecure&lt;br /&gt;
  {&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
      MyNewStuff(const QString &amp;amp;type,  QWidget *parentWidget=0)&lt;br /&gt;
        :KNewStuffSecure(type, parentWidget){};&lt;br /&gt;
      ~MyNewStuff() {};&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
      virtual void installResource();&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to know what you should do in installResource() it is important to understand the structure of the resource you get via KNewStuffSecure. The resource is a gzipped tarball, let's call it resource.tar.gz. The resource.tar.gz contains three files:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table frame=&amp;quot;border&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;thead&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;th&amp;gt;Filename&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/thead&amp;gt;&lt;br /&gt;
  &amp;lt;tbody&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;data.tar.gz&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;another tarball containing the actual data to be installed. The   &lt;br /&gt;
              name is not fixed, it can be anything like cards.tgz,&lt;br /&gt;
              greetings.tar.gz or whatever.&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;signature&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;holds the signature for data.tar.gz&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;md5sum&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;holds the MD5 sum for the data.tar.gz&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In the implementation file you have to process the data.tar.gz only, the rest is&lt;br /&gt;
handled by KNewStuffSecure. If installing the resource means that you put the &lt;br /&gt;
downloaded file(s) from data.tar.gz into a directory, the implementation of&lt;br /&gt;
MyNewStuff looks like:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;codeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  void MyNewStuff::installResource()&lt;br /&gt;
  {&lt;br /&gt;
    bool ok = true;&lt;br /&gt;
    KTar tar(m_tarName, &amp;quot;application/x-gzip&amp;quot; );&lt;br /&gt;
    if (tar.open(IO_ReadOnly))&lt;br /&gt;
    {&lt;br /&gt;
      const KArchiveDirectory *directory = tar.directory();&lt;br /&gt;
      QString resDir =KGlobal::dirs()-&amp;gt;saveLocation(&amp;quot;data&amp;quot; ) + &amp;quot;appname/stuff/&amp;quot;;&lt;br /&gt;
      directory-&amp;gt;copyTo(resDir, true);&lt;br /&gt;
      tar.close();&lt;br /&gt;
    } else&lt;br /&gt;
      ok = false;&lt;br /&gt;
  &lt;br /&gt;
    if (!ok)&lt;br /&gt;
      KMessageBox::error(parentWidget(), i18n(&amp;quot;There was an error with the&lt;br /&gt;
      downloaded resource tarball file. Possible causes are damaged archive or&lt;br /&gt;
      invalid directory structure in the archive.&amp;quot; ), &lt;br /&gt;
      i18n(&amp;quot;Resource Installation Error&amp;quot; ));&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;As you can see the name of the resource tarball you have to install is in&lt;br /&gt;
&amp;quot;m_tarName&amp;quot;. The above code installs the files from m_tarName to &lt;br /&gt;
&amp;lt;strong&amp;gt;$KDEHOME/share/appname/stuff&amp;lt;/strong&amp;gt;. Of course, you must provide the real appname there.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You are free to do other installation methods, depending on your needs. In some&lt;br /&gt;
cases it may be just enough to copy the resource tarball somewhere. This part&lt;br /&gt;
of the code depends completely on the type of the resource and your application.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Now how to initiate a download? You have to do three things:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;create a MyNewStuff object&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;connect the signal installFinished() to a slot to do things what you want after the install is done&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;call downloadResource() for the MyNewStuff object&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Example:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;codeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  void MyApp::slotDownloadResource()&lt;br /&gt;
  {&lt;br /&gt;
    if (!m_newStuff)&lt;br /&gt;
    {&lt;br /&gt;
      m_newStuff = new MyNewStuff(&amp;quot;appname/resourcetype&amp;quot;, this);&lt;br /&gt;
      connect(m_newStuff, SIGNAL(installFinished()), this, SLOT(slotResourceInstalled()));&lt;br /&gt;
    }&lt;br /&gt;
    m_newStuff-&amp;gt;downloadResource();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just a note: &amp;lt;em&amp;gt;&amp;quot;appname/resourcetype&amp;quot;&amp;lt;/em&amp;gt; is in free form, it identifies the type of the resource. See the standard KNewStuff documentation for details.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Uploading resources&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Uploading is simple as well. You just have to create&lt;br /&gt;
the data.tar.gz (which is specific for your application) and call uploadResource(fileName), where fileName points to the created data tarball. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Example:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;codeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  void MyApp::slotUploadResource()&lt;br /&gt;
  {&lt;br /&gt;
    QString fileName = createUploadResource();&lt;br /&gt;
    if (!m_newStuff)&lt;br /&gt;
      m_newStuff = new MyNewStuff(&amp;quot;application/resourcetype&amp;quot;, this);&lt;br /&gt;
    m_newStuff-&amp;gt;uploadResource(fileName);&lt;br /&gt;
  }  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Here createUploadResource() creates the data tarball and returns the name with path to the created tarball.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;That is all. I hope you will find this tutorial useful.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/Using_KXmlGuiWindow</id>
		<title>Development/Tutorials/Using KXmlGuiWindow</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/Using_KXmlGuiWindow"/>
				<updated>2007-01-08T02:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Corrected some typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TutorialBrowser|&lt;br /&gt;
&lt;br /&gt;
series=Beginner Tutorial|&lt;br /&gt;
&lt;br /&gt;
name=How To Use KMainWindow|&lt;br /&gt;
&lt;br /&gt;
pre=[[Development/Tutorials/Programming_Tutorial_KDE_4/First_program|Tutorial 1 - Hello World]]|&lt;br /&gt;
&lt;br /&gt;
next=[[Development/Tutorials/Programming_Tutorial_KDE_4/Using_KActions|Tutorial 3 - KActions and XmlGui]]| &lt;br /&gt;
&lt;br /&gt;
reading={{class|KMainWindow}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Abstract==&lt;br /&gt;
This tutorial carries on from [[Development/Tutorials/Programming_Tutorial_KDE_4/First_program|First Program Tutorial]] and will introduce the {{class|KMainWindow}} class.&lt;br /&gt;
&lt;br /&gt;
In the previous tutorial, the program caused a dialog box to pop up but we're going to take steps towards a functioning application.&lt;br /&gt;
&lt;br /&gt;
[[image:introtokdetutorial2.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
==Using KMainWindow==&lt;br /&gt;
&lt;br /&gt;
In order to have a useful KMainWindow, we must sub class it. So we create two files, a &amp;lt;tt&amp;gt;MainWindow.cpp&amp;lt;/tt&amp;gt; and a &amp;lt;tt&amp;gt;MainWindow.h&amp;lt;/tt&amp;gt; which will contain our code.&lt;br /&gt;
&lt;br /&gt;
===MainWindow.h===&lt;br /&gt;
&amp;lt;code cppqt n&amp;gt;&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;KMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;KTextEdit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public KMainWindow&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;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
First we Subclass KMainWindow on line 7 with with &amp;lt;tt&amp;gt;class MainWindow : public KMainWindow&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then we declare the constructor with &amp;lt;tt&amp;gt;MainWindow(QWidget *parent=0);&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And finally we declare a pointer to the object that will make up the bulk of our program. {{class|KTextEdit}} is a generic richtext editor with some KDE niceties like cursor auto-hiding.&lt;br /&gt;
===MainWindow.cpp===&lt;br /&gt;
&amp;lt;code cppqt n&amp;gt;&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) : KMainWindow(parent)&lt;br /&gt;
{&lt;br /&gt;
  textArea = new KTextEdit;&lt;br /&gt;
  setCentralWidget(textArea);&lt;br /&gt;
  setupGUI();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
First, of course, on line 1 we have to include the header file containing the class declaration.&lt;br /&gt;
&lt;br /&gt;
On line 5, we initialise our text editor with an object. Then on line 6 we use the built-in setCentralWidget() function which tells the KMainWindow what should appear in the central section of the window.&lt;br /&gt;
&lt;br /&gt;
Finally, KMainWindow::setupGUI() is called which does a lot of behind the scene's stuff and creates the default menu bars (Settings, Help).&lt;br /&gt;
==Back to main.cpp==&lt;br /&gt;
In order to actually run this window, we need to add a few lines in main.cpp:&lt;br /&gt;
===main.cpp===&lt;br /&gt;
&amp;lt;code cppqt n&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;tutorial2&amp;quot;, &lt;br /&gt;
      &amp;quot;Tutorial2&amp;quot;, &amp;quot;1.0&amp;quot;, &amp;quot;A simple text area&amp;quot;,&lt;br /&gt;
      KAboutData::License_GPL, &amp;quot;(c) 2006&amp;quot; );&lt;br /&gt;
  KCmdLineArgs::init( argc, argv, &amp;amp;aboutData );&lt;br /&gt;
  &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;
&lt;br /&gt;
  return app.exec();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
The only new lines here (compared to Tutorial 1) are 16 and 17. On line 16, we create our MainWindow object and then on line 17, we display it.&lt;br /&gt;
&lt;br /&gt;
==CMake==&lt;br /&gt;
The best way to build the program is to use CMake. All that's changed since tutorial 1 is that &amp;lt;tt&amp;gt;mainwindow.cpp&amp;lt;/tt&amp;gt; has been added to the sources list and any &amp;lt;tt&amp;gt;tutorial1&amp;lt;/tt&amp;gt; has become &amp;lt;tt&amp;gt;tutorial2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
===CMakeLists.txt===&lt;br /&gt;
&amp;lt;code ini n&amp;gt;&lt;br /&gt;
project (tutorial2)&lt;br /&gt;
find_package(KDE4 REQUIRED)&lt;br /&gt;
include_directories( ${KDE4_INCLUDES} )&lt;br /&gt;
set(tutorial2_SRCS &lt;br /&gt;
	main.cpp&lt;br /&gt;
	mainwindow.cpp&lt;br /&gt;
)&lt;br /&gt;
kde4_add_executable(tutorial2 ${tutorial2_SRCS})&lt;br /&gt;
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==Moving On==&lt;br /&gt;
Now you can move on to [[Development/Tutorials/Programming_Tutorial_KDE_4/Using_KActions|using KActions]].&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Repinc</id>
		<title>User:Repinc</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Repinc"/>
				<updated>2006-12-24T16:47:28Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: Create my personal page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm '''Jure Repinc''' from Bohinjska Bistrica, Slovenia. Besides being a passionate KDE user I'm also an active translator of KDE into Slovenian language.&lt;br /&gt;
&lt;br /&gt;
When it comes to KDE and Qt development I'm currently just a beginner. To improve my programming skills and have fun at the same time I'm currently (slowly) working on a KDE 4 client for [http://www.thousandparsec.net/tp/ Thousand Parsec] game project. The client is called '''Parsek''' and with it you will be able to play 4X (eXplore, eXpand, eXploit and eXterminate) space empire building games similar to Stars! and Galactic Civilizations.&lt;br /&gt;
&lt;br /&gt;
You can find more about me on my blog: [http://jlp.holodeck1.com/blog/ JLP's Blog].&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Tutorials/Programming_Tutorial_KDE_4</id>
		<title>Development/Tutorials/Programming Tutorial KDE 4</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Tutorials/Programming_Tutorial_KDE_4"/>
				<updated>2006-12-23T17:16:55Z</updated>
		
		<summary type="html">&lt;p&gt;Repinc: /* Your lessons */ It would be nice to have CMake tutorial. Is the one for Makefiles still neded here?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a tutorial to learn KDE programming by examples. It assumes you are working with KDE 4, not KDE 3.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
===Basics===&lt;br /&gt;
KDE heavily depends on Qt. Many KDE classes inherit from Qt classes. KDE 4 is based on Qt 4, KDE 3 is based on Qt 3. When this tutorial introduces a new Qt class, you're also learning KDE programming.&lt;br /&gt;
===Getting Help===&lt;br /&gt;
====Finding documentation====&lt;br /&gt;
Whenever you have a KDE class and want the API documentation for it (KApplication, for example), point a konqueror window to &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kde: KApplication&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be aware that the &amp;lt;tt&amp;gt;kde:&amp;lt;/tt&amp;gt; konqueror shortcut only works for classes in kdelibs. If you ask for a class outside of kdelibs or a class that the API search software doesn't know about, you'll be redirected to the main API documentation page. You will need to navigate from there to find the class you're looking for.&lt;br /&gt;
&lt;br /&gt;
If you need to look up the Qt API documentation for a class, you can point a Konqueror window to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;qt: QApplication&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be done in addition to browsing the Qt documentation locally, or using Qt Assistant.&lt;br /&gt;
&lt;br /&gt;
====Finding other developers====&lt;br /&gt;
=====Mailing lists=====&lt;br /&gt;
There are two main development mailing lists:&lt;br /&gt;
*The [http://mail.kde.org/mailman/listinfo/kde-devel kde-devel mailing list] for general development issues&lt;br /&gt;
*The [http://mail.kde.org/mailman/listinfo/kde-core-devel kde-core-devel mailing list] for development issues specific to kdelibs, kdebase, and other central development issues&lt;br /&gt;
&lt;br /&gt;
Many other mailing lists for certain applications also existing. Before posting a question, it's always best to make sure you direct it to the right list. Emailing your question to the right list can help you get an answer faster. You can get an overview of the various available mailing lists at http://www.kde.org/mailinglists&lt;br /&gt;
&lt;br /&gt;
=====IRC=====&lt;br /&gt;
If you're looking for something a bit more in the instant gratification department, then feel free to ask your question on IRC. KDE uses the [http://www.freenode.org Freenode] network and the easiest way to get on IRC is to point your favorite IRC client to irc.kde.org. There are several IRC clients available for KDE such as konversation and ksirc. There are two main channels for KDE development:&lt;br /&gt;
*The [irc://irc.kde.org/kde-devel #kde-devel] channel for general KDE development questions&lt;br /&gt;
*The [irc://irc.kde.org/kde4-devel #kde4-devel] channel for questions specific to KDE 4 development&lt;br /&gt;
&lt;br /&gt;
As with mailing lists, many applications have their own IRC channel. However, there currently is not a list of common IRC channels available. If you need to ask a question about a specific application, check that application's home page to see if there's an IRC channel available specifically for that application. If a channel is not listed, it's best to ask your question on one of the above two general development discussion channels.&lt;br /&gt;
&lt;br /&gt;
In order to get the most out of your IRC experience, it's best to follow these guidelines when asking questions:&lt;br /&gt;
&lt;br /&gt;
* If you have a question, just ask it. There's no need to ask if you can ask your question.&lt;br /&gt;
* Be prepared to wait for an answer. Even though IRC is more real-time mode of communication, there may not be anyone available to answer your question immediately after you ask it. In general, if you don't receive a response on IRC in about an hour, it's best to send an email. &lt;br /&gt;
* Don't ask the question more than once. Even though the channel is active, the right person may not be available to provide an answer. If you are told to wait for a certain person to come online, be sure to ask again when you see them come online. Again, if you don't receive a response to your question in about an hour, it's best to send an email.&lt;br /&gt;
&lt;br /&gt;
==Your lessons==&lt;br /&gt;
* [[/First program|First program]]&lt;br /&gt;
* [[/How to write an HTML parser|How to write an HTML parser]]&lt;br /&gt;
* [[/How to load and save configuration|How to load and save configuration]]&lt;br /&gt;
* [[/How to use CMake build system|How to use CMake build system]]&lt;br /&gt;
* [http://developer.kde.org/documentation/other/makefile_am_howto/en/index.html How to write Makefile.am]s&lt;br /&gt;
* [[/Drag-and-drop|Drag-and-drop]]&lt;br /&gt;
* [[/command-line-options|Command line options]]&lt;br /&gt;
* [http://edu.kde.org/development/tips.php#HowtodealwithsoundwhencodingaKDEapplication How to write sound programs]&lt;br /&gt;
* [[/printing|Printing]]&lt;br /&gt;
* [[/rc files|RC files]]&lt;br /&gt;
* [[/How to write Kontact plugins|How to write Kontact plugins]]&lt;br /&gt;
* [[/Exceptions|How to work with Exceptions]]&lt;br /&gt;
&lt;br /&gt;
==Suggested readings==&lt;br /&gt;
http://edu.kde.org/development/tips.php&lt;/div&gt;</summary>
		<author><name>Repinc</name></author>	</entry>

	</feed>