karm
timekard.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KARM_TIMEKARD_H
00024 #define KARM_TIMEKARD_H
00025
00026 #undef Color // X11 headers
00027 #undef GrayScale // X11 headers
00028 #include <kprinter.h>
00029
00030
00031 #include "karmstorage.h"
00032
00033 class QString;
00034 class QDate;
00035
00036 class TaskView;
00037
00038
00046 class Week
00047 {
00048 public:
00050 Week();
00051 Week(QDate from);
00052 QDate start() const;
00053 QDate end() const;
00054 QValueList<QDate> days() const;
00055
00066 static QValueList<Week> weeksFromDateRange(const QDate& from,
00067 const QDate& to);
00068
00075 QString name() const;
00076
00077
00078 private:
00079 QDate _start;
00080 };
00081
00085 class TimeKard
00086 {
00087 public:
00088 TimeKard() {};
00089
00090 enum WhichTime { TotalTime, SessionTime };
00091
00104 QString totalsAsText(TaskView* taskview, bool justThisTask, WhichTime which);
00105
00111 QString historyAsText(TaskView* taskview, const QDate& from,
00112 const QDate& to, bool justThisTask, bool perWeek, bool totalsOnly);
00113
00114 private:
00115 void printTask(Task *t, QString &s, int level, WhichTime which);
00116
00117 void printTaskHistory(const Task *t, const QMap<QString, long>& datamap,
00118 QMap<QString, long>& daytotals,
00119 const QDate& from, const QDate& to,
00120 const int level, QString& retval, bool totalsOnly);
00121
00122 QString sectionHistoryAsText(TaskView* taskview,
00123 const QDate& sectionFrom, const QDate& sectionTo,
00124 const QDate& from, const QDate& to,
00125 const QString& name,
00126 bool justThisTask, bool totalsOnly);
00127
00128 };
00129 #endif // KARM_TIMEKARD_H
|