KTimeTracker/Udvikling

Jump to: navigation, search
This page is a translated version of a page KTimeTracker/Developing and the translation is 100% complete.

Other languages:Danish 100% • ‎English 100% • ‎Ukrainian 100%

Contents

Udvikling af KTimeTracker

Du vil altså være en KTimeTracker-udvikler?

Her er dine klasser:

  • mainwindow.*: Det er hovedvinduet for KDE-programmet
  • ktimetrackerpart.*: Det er KTimerackers KPart
    • timetrackerwidget.*: Det er et widget med ingen eller flere faneblade, som indeholder
      • taskview.*: Et treeListWidget, som indeholder:
        • task.*: Et QObject og QTreeWidgetItem. En opgave kan konstrueres af en opgavevisning og en gøremålsliste. Lige så snart du instantierer en opgave, kan den ses i dit TreeWidget.
        • timetrackerstorage.*: Er en lagringsbagende, som indeholder en:
          • KCal::ResourceCalendar

Nokia N810

Jeg fik en Nokia N810 fra Nokia, sådan at jeg kan overføre KTimeTracker til den. Jeg sætter stor pris på dette og kompilerer nu KTimeTracker til ARM. Projektet er ikke færdigt, her er hvad jeg har fundet ud af:

For at kompilere KTimeTracker til Nokia N810

  • tilføj maemo arkivet
  • installér openssh

dbus

dbus er tydeligvis et emne for udviklere. For at teste KTimeTrackers dbus-funktionalitet skal KTimeTracker køre; du går så frem som i dette eksempel:

qdbus
...
org.kde.KTimeTracker
...
qdbus org.kde.KTimeTracker
...
/KTimeTracker
...
qdbus org.kde.KTimeTracker /KTimeTracker
...
method void org.kde.KTimeTracker.KTimeTracker.quit()
...
qdbus org.kde.KTimeTracker /KTimeTracker org.kde.KTimeTracker.KTimeTracker.quit

Internationalisering

Du ønsker at teste oversættelsen af KTimeTracker. Til dette skal du kalde KTimeTracker i en (lad os sige) tysk udgave. Til dette skal du vide, hvordan du overhovedet kan kalde et KDE 4-program på et andet sprog end engelsk. Her er som et eksempel på, hvordan jeg kalder Akregator på tysk:

wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/de/messages/kdepim/ktimetracker.po  
msgfmt -o ktimetracker.mo ktimetracker.po
cp ktimetracker.mo .kde4/share/locale/de/LC_MESSAGES/
KDE4_LANG=de ktimetracker

Hvordan man reproducerer en "stale lock"

Her er et eksempel for at give dig en idé:

touch .kde/share/apps/kabc/lock/_home_tom_.kde_share_apps_karm_karm.ics.lock

Hvordan man slipper af med fejlsøgnings-output

cmake -DCMAKE_BUILD_TYPE=Release

Mål

  • Unicode - Jeg har fundet ud af, at det allerede understøtter URF-8.

Hvor er hvad?

Udviklingsretning

Følgende lignende programmer kan give dig inspiration til, hvordan udviklingen kan skride frem:

  • hourglass
  • gnotime
  • titrax
  • taskCoach
  • Hamster

Plugin til Kontact eller selvstændigt program

Plugin'et til Kontact er realiseret som en KPart. Den elegante løsning ville være at have en KPart, som kan integreres i Kontact og en skal, som blot viser KPart'en. Vi er ikke så vidt endnu. I øjeblikket implementerer ktimetrackerpart.cpp KTimeTrackers KPart og mainwindow.cpp implementerer det selvstændige program.

IdleTimeDetector

Komponenten idletimedetector er i .cpp og .h filer med tilsvarende navne. Den starter en qtimer og tjekker ved hvert timeout om X-udvidelsen giver et timepoint for den sidste bruger, som er længere væk end maxIdleTime.

Om lagring

Dine KTimeTracker-data gemmes i en iCal-fil. Dette format kræver lidt forklaring. En simpel en af slagsen kan se sådan ud:

BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN
VERSION:2.0
BEGIN:VTODO
DTSTAMP:20060915T181010Z
ORGANIZER;CN=root:MAILTO:
X-KDE-karm-totalSessionTime:0
X-KDE-karm-totalTaskTime:19
CREATED:20060609T230212Z
UID:libkcal-652058592.803
SEQUENCE:0
LAST-MODIFIED:20060915T181010Z
SUMMARY:fg
CLASS:PUBLIC
PRIORITY:5
PERCENT-COMPLETE:0
END:VTODO

BEGIN:VEVENT
DTSTAMP:20060915T181010Z
ORGANIZER:MAILTO:
X-KDE-karm-duration:300
CREATED:20060915T174305Z
UID:libkcal-6397995.845
SEQUENCE:0
LAST-MODIFIED:20060910T174305Z
SUMMARY:fg
CLASS:PUBLIC
PRIORITY:5
CATEGORIES:KArm
RELATED-TO:libkcal-652058592.803
DTSTART:20060910T172346Z
DTEND:20060910T174305Z
TRANSP:OPAQUE
END:VEVENT

END:VCALENDAR

Et testtilfælde til kcal

CMakeLists.txt

PROJECT( kde4start )
FIND_PACKAGE(KDE4 REQUIRED)
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} . )


SET(kde4startSources main.cpp )

KDE4_ADD_EXECUTABLE(kde4start ${kde4startSources} )

TARGET_LINK_LIBRARIES(kde4start ${KDE4_KDEUI_LIBS} ${KDE4_KCAL_LIBS} ${KDE4_KPARTS_LIBS} kdepim kcal_resourceremote )

main.cpp

#include <QString>
#include <kapplication.h>
#include <kaboutdata.h>
#include <kmessagebox.h>
#include <kcmdlineargs.h>
#include <KMainWindow>
#include <kcal/resourcecalendar.h>
#include <kcal/resourcecached.h>
#include <kcal/resourcelocal.h>

int main (int argc, char *argv[])
{
  const QByteArray& ba=QByteArray("test");
  const KLocalizedString name=ki18n("myName");
  KAboutData aboutData( ba, ba, name, ba, name);
  KCmdLineArgs::init( argc, argv, &aboutData );
  KApplication khello;
  KCal::ResourceCalendar* cal;
  KCal::ResourceCached* resource;
  resource=new KCal::ResourceLocal("/tmp/KTimeTrackerkonsole.ics");
  cal=resource;
}

Compile, link and run

cmake . && make && ./kde4start

Relaterede projekter

http://websvn.kde.org/trunk/playground/base/plasma/applets/timetracker/

Videre læsning


This page was last modified on 17 April 2011, at 14:15. This page has been accessed 1,241 times. Content is available under Creative Commons License SA 3.0 and the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal