<?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/index.php?title=Projects/KTimeTracker&amp;feed=atom&amp;action=history</id>
		<title>Projects/KTimeTracker - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;action=history"/>
		<updated>2013-05-22T17:13:59Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;diff=74785&amp;oldid=prev</id>
		<title>Leo-the-manic at 14:27, 22 August 2012</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;diff=74785&amp;oldid=prev"/>
				<updated>2012-08-22T14:27:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 14:27, 22 August 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 55:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 55:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Where is what ? ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Where is what ? ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* The latest development sourcecode is available via web at &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http&lt;/del&gt;://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;websvn&lt;/del&gt;.kde.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;trunk&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;KDE&lt;/del&gt;/kdepim&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/ktimetracker&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* The latest development sourcecode is available via web at &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;https&lt;/ins&gt;://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;projects&lt;/ins&gt;.kde.org/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;projects&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kde&lt;/ins&gt;/kdepim&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* You can subscribe to watch code changes at &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* You can subscribe to watch code changes at &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http://commitfilter.kde.org&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;http://commitfilter.kde.org&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Leo-the-manic</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;diff=47311&amp;oldid=prev</id>
		<title>AnneW: moved KTimeTracker to Projects/KTimeTracker</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;diff=47311&amp;oldid=prev"/>
				<updated>2009-12-05T15:47:11Z</updated>
		
		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/KTimeTracker&quot; class=&quot;mw-redirect&quot; title=&quot;KTimeTracker&quot;&gt;KTimeTracker&lt;/a&gt; to &lt;a href=&quot;/Projects/KTimeTracker&quot; title=&quot;Projects/KTimeTracker&quot;&gt;Projects/KTimeTracker&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:47, 5 December 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>AnneW</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;diff=47307&amp;oldid=prev</id>
		<title>AnneW: Imported from Userbase - Development info not suitable for Userbase</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/KTimeTracker&amp;diff=47307&amp;oldid=prev"/>
				<updated>2009-12-05T15:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Imported from Userbase - Development info not suitable for Userbase&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Developing KTimeTracker =&lt;br /&gt;
* look at [http://bugs.kde.org/buglist.cgi?short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;long_desc_type=allwordssubstr&amp;amp;long_desc=&amp;amp;product=KTimeTracker&amp;amp;component=general&amp;amp;component=reporting&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;emailassigned_to1=1&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailassigned_to2=1&amp;amp;emailreporter2=1&amp;amp;emailcc2=1&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;changedin=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;cmdtype=doit&amp;amp;newqueryname=&amp;amp;namedcmd=allKTimeTrackerbugs our Bugzilla]&lt;br /&gt;
* join our discussion on irc.kde.org, channel #kontact&lt;br /&gt;
* learn programming with KDE's [http://techbase.kde.org/Development/Tutorials Programming Tutorial]&lt;br /&gt;
&lt;br /&gt;
== So you want to become a KTimeTracker developer ==&lt;br /&gt;
Here are your classes:&lt;br /&gt;
* mainwindow.*: Is the main window of the KDE application&lt;br /&gt;
* ktimetrackerpart.*: Is the KPart of KTimeTracker&lt;br /&gt;
** timetrackerwidget.*: Is a widget with no or several tabs that contain&lt;br /&gt;
*** taskview.*: Is a treeListWidget that contains:&lt;br /&gt;
**** task.*: A QObject and QTreeWidgetItem. A task can be constructed from a taskview and a todo. As soon as you instantiate a task, it becomes visible in your TreeWidget.&lt;br /&gt;
**** timetrackerstorage.*: Is the storage backend that contains a:&lt;br /&gt;
***** KCal::ResourceCalendar&lt;br /&gt;
&lt;br /&gt;
== Nokia N810 ==&lt;br /&gt;
I got a Nokia N810 from Nokia to allow me porting KTimeTracker to it. I appreciate this a lot and am now kompiling KTimeTracker for arm. The project is not ready, here is what I found out:&lt;br /&gt;
&lt;br /&gt;
To kompile KTimeTracker for the Nokia N810&lt;br /&gt;
* add the maemo repository &lt;br /&gt;
* install openssh&lt;br /&gt;
&lt;br /&gt;
== dbus ==&lt;br /&gt;
dbus is clearly a developer topic. To test the dbus functionality of your KTimeTracker, have KTimeTracker running and proceed like in this example:&lt;br /&gt;
 qdbus&lt;br /&gt;
 ...&lt;br /&gt;
  org.kde.KTimeTracker&lt;br /&gt;
 ...&lt;br /&gt;
 qdbus org.kde.KTimeTracker&lt;br /&gt;
 ...&lt;br /&gt;
 /KTimeTracker&lt;br /&gt;
 ...&lt;br /&gt;
 qdbus org.kde.KTimeTracker /KTimeTracker&lt;br /&gt;
 ...&lt;br /&gt;
 method void org.kde.KTimeTracker.KTimeTracker.quit()&lt;br /&gt;
 ...&lt;br /&gt;
 qdbus org.kde.KTimeTracker /KTimeTracker org.kde.KTimeTracker.KTimeTracker.quit&lt;br /&gt;
&lt;br /&gt;
== Internationalization ==&lt;br /&gt;
You want to test the translation of KTimeTracker. For this, you want to call KTimeTracker in, say, german. For this, you need to know how you at all can call a KDE 4 program in another language than english. Here is as an example how I call akregator in german:&lt;br /&gt;
 wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/de/messages/kdepim/ktimetracker.po  &lt;br /&gt;
 msgfmt -o ktimetracker.mo ktimetracker.po&lt;br /&gt;
 cp ktimetracker.mo .kde4/share/locale/de/LC_MESSAGES/&lt;br /&gt;
 KDE4_LANG=de ktimetracker&lt;br /&gt;
&lt;br /&gt;
== How to reproduce a stale lock ==&lt;br /&gt;
Here is an example to give you an idea:&lt;br /&gt;
 touch .kde/share/apps/kabc/lock/_home_tom_.kde_share_apps_karm_karm.ics.lock&lt;br /&gt;
&lt;br /&gt;
== How to get rid of debugging output ==&lt;br /&gt;
 cmake -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
* Unicode - I found out it is already capable of UTF-8.&lt;br /&gt;
&lt;br /&gt;
== Where is what ? ==&lt;br /&gt;
* The latest development sourcecode is available via web at http://websvn.kde.org/trunk/KDE/kdepim/ktimetracker&lt;br /&gt;
* You can subscribe to watch code changes at &lt;br /&gt;
http://commitfilter.kde.org&lt;br /&gt;
* You can get informed on irc about code changes at freenode, channel #kde-commits&lt;br /&gt;
* You can discuss about KDE pim development on freenode, channel #kontact&lt;br /&gt;
* The api documentation is available at http://api.kde.org/4.x-api/kdepim-apidocs/ktimetracker/html/index.html&lt;br /&gt;
* The user documentation is generated from &lt;br /&gt;
http://websvn.kde.org/trunk/KDE/kdepim/doc/ktimetracker&lt;br /&gt;
* KTimeTracker all-you-need in the internet:&lt;br /&gt;
http://userbase.kde.org/KTimeTracker&lt;br /&gt;
&lt;br /&gt;
== Development Direction ==&lt;br /&gt;
The following similar programs can give you inspiration how to move forward developing:&lt;br /&gt;
* hourglass&lt;br /&gt;
* gnotime&lt;br /&gt;
* titrax &lt;br /&gt;
* taskCoach&lt;br /&gt;
* Hamster&lt;br /&gt;
&lt;br /&gt;
== Kontact plugin vs. Standalone ==&lt;br /&gt;
The Kontact plugin is realized via a KPart. The elegant solution would be to have one KPart that can be integrated into Kontact and one shell that just displays the KPart. This is not so far now. At the moment, ktimetrackerpart.cpp implements the [http://api.kde.org/4.x-api/kdepim-apidocs/ktimetracker/html/classktimetrackerpart.html KTimeTracker part] and mainwindow.cpp implements the standalone application.&lt;br /&gt;
&lt;br /&gt;
== IdleTimeDetector ==&lt;br /&gt;
The idletimedetector is in the equally-named .cpp and .h file. It starts a qtimer and at every timeout, checks, if the X extension delivers for the last user interaction a timepoint that is further away than the maxIdleTime.&lt;br /&gt;
&lt;br /&gt;
== About storage ==&lt;br /&gt;
The storage of your KTimeTracker data takes place in an iCal file. That format needs a bit of explanation. A simple one looks like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN:VCALENDAR&lt;br /&gt;
PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN&lt;br /&gt;
VERSION:2.0&lt;br /&gt;
BEGIN:VTODO&lt;br /&gt;
DTSTAMP:20060915T181010Z&lt;br /&gt;
ORGANIZER;CN=root:MAILTO:&lt;br /&gt;
X-KDE-karm-totalSessionTime:0&lt;br /&gt;
X-KDE-karm-totalTaskTime:19&lt;br /&gt;
CREATED:20060609T230212Z&lt;br /&gt;
UID:libkcal-652058592.803&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
LAST-MODIFIED:20060915T181010Z&lt;br /&gt;
SUMMARY:fg&lt;br /&gt;
CLASS:PUBLIC&lt;br /&gt;
PRIORITY:5&lt;br /&gt;
PERCENT-COMPLETE:0&lt;br /&gt;
END:VTODO&lt;br /&gt;
&lt;br /&gt;
BEGIN:VEVENT&lt;br /&gt;
DTSTAMP:20060915T181010Z&lt;br /&gt;
ORGANIZER:MAILTO:&lt;br /&gt;
X-KDE-karm-duration:300&lt;br /&gt;
CREATED:20060915T174305Z&lt;br /&gt;
UID:libkcal-6397995.845&lt;br /&gt;
SEQUENCE:0&lt;br /&gt;
LAST-MODIFIED:20060910T174305Z&lt;br /&gt;
SUMMARY:fg&lt;br /&gt;
CLASS:PUBLIC&lt;br /&gt;
PRIORITY:5&lt;br /&gt;
CATEGORIES:KArm&lt;br /&gt;
RELATED-TO:libkcal-652058592.803&lt;br /&gt;
DTSTART:20060910T172346Z&lt;br /&gt;
DTEND:20060910T174305Z&lt;br /&gt;
TRANSP:OPAQUE&lt;br /&gt;
END:VEVENT&lt;br /&gt;
&lt;br /&gt;
END:VCALENDAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A test case for kcal ===&lt;br /&gt;
'''CMakeLists.txt'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PROJECT( kde4start )&lt;br /&gt;
FIND_PACKAGE(KDE4 REQUIRED)&lt;br /&gt;
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} . )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SET(kde4startSources main.cpp )&lt;br /&gt;
&lt;br /&gt;
KDE4_ADD_EXECUTABLE(kde4start ${kde4startSources} )&lt;br /&gt;
&lt;br /&gt;
TARGET_LINK_LIBRARIES(kde4start ${KDE4_KDEUI_LIBS} ${KDE4_KCAL_LIBS} ${KDE4_KPARTS_LIBS} kdepim kcal_resourceremote )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''main.cpp'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;QString&amp;gt;&lt;br /&gt;
#include &amp;lt;kapplication.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kaboutdata.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kmessagebox.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kcmdlineargs.h&amp;gt;&lt;br /&gt;
#include &amp;lt;KMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;kcal/resourcecalendar.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kcal/resourcecached.h&amp;gt;&lt;br /&gt;
#include &amp;lt;kcal/resourcelocal.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main (int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
  const QByteArray&amp;amp; ba=QByteArray(&amp;quot;test&amp;quot;);&lt;br /&gt;
  const KLocalizedString name=ki18n(&amp;quot;myName&amp;quot;);&lt;br /&gt;
  KAboutData aboutData( ba, ba, name, ba, name);&lt;br /&gt;
  KCmdLineArgs::init( argc, argv, &amp;amp;aboutData );&lt;br /&gt;
  KApplication khello;&lt;br /&gt;
  KCal::ResourceCalendar* cal;&lt;br /&gt;
  KCal::ResourceCached* resource;&lt;br /&gt;
  resource=new KCal::ResourceLocal(&amp;quot;/tmp/KTimeTrackerkonsole.ics&amp;quot;);&lt;br /&gt;
  cal=resource;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Compile, link and run'''&lt;br /&gt;
 cmake . &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./kde4start&lt;br /&gt;
&lt;br /&gt;
= Related Projects =&lt;br /&gt;
&lt;br /&gt;
http://websvn.kde.org/trunk/playground/base/plasma/applets/timetracker/&lt;br /&gt;
&lt;br /&gt;
= Readings =&lt;br /&gt;
* http://doc.trolltech.com/4.5/itemviews-simpletreemodel.html&lt;br /&gt;
* RFC 2445&lt;/div&gt;</summary>
		<author><name>AnneW</name></author>	</entry>

	</feed>