task.h
00001
#ifndef KARM_TASK_H
00002
#define KARM_TASK_H
00003
00004
00005
#include <qptrlist.h>
00006
00007
00008
#include <qptrvector.h>
00009
00010
00011
#include "desktoplist.h"
00012
00013
00014
00015
#include "taskview.h"
00016
00017
class QFile;
00018
class QString;
00019
class KarmStorage;
00020
00021
class QTimer;
00022
class KCal::Incidence;
00023
class KCal::Todo;
00024
class QObject;
00025
class QPixmap;
00026
00028
00041 class Task :
public QObject,
public QListViewItem
00042 {
00043 Q_OBJECT
00044
00045
public:
00047
Task(
const QString& taskame,
long minutes,
long sessionTime,
00048
DesktopList desktops,
TaskView* parent = 0);
00049
Task(
const QString& taskame,
long minutes,
long sessionTime,
00050
DesktopList desktops,
Task* parent = 0);
00051
Task( KCal::Todo* incident,
TaskView* parent );
00053
00054 ~
Task();
00055
00059 Task*
firstChild()
const {
return (
Task*)QListViewItem::firstChild(); }
00060
Task* nextSibling()
const {
return (
Task*)QListViewItem::nextSibling(); }
00061
Task* parent()
const {
return (
Task*)QListViewItem::parent(); }
00062
00064 TaskView*
taskView()
const {
00065
return static_cast<TaskView *>( listView() );
00066 }
00067
00069 QString uid()
const {
return _uid; }
00070
00078
void setUid(
const QString uid);
00079
00081
void cut();
00084
void move(
Task* destination);
00086
void paste(
Task* destination);
00087
00089
int compare (
QListViewItem * i,
int col,
bool ascending )
const;
00090
00092
00100
void changeTime(
long minutes,
KarmStorage* storage );
00101
00110
void changeTimes
00111 (
long minutesSession,
long minutes,
KarmStorage* storage=0);
00112
00118
void changeTotalTimes(
long minutesSession,
long minutes );
00119
00123
void resetTimes();
00124
00128 long time()
const {
return _time; };
00129
long totalTime()
const {
return _totalTime; };
00130
long sessionTime()
const {
return _sessionTime; };
00131
long totalSessionTime()
const {
return _totalSessionTime; };
00132
00136 QDateTime startTime()
const {
return _lastStart; };
00137
00139 void startNewSession() {
changeTimes( -_sessionTime, 0 ); };
00141
00143
00144
void setDesktopList (
DesktopList dl );
00145
DesktopList getDesktops()
const {
return _desktops;}
00146
00147
QString getDesktopStr() const;
00149
00151
00155
void setName( const
QString& name,
KarmStorage* storage );
00156
00160 QString name()
const {
return _name; };
00161
00167
QString fullName() const;
00169
00171
void update();
00172
00174
00177
void setRunning(
bool on,
KarmStorage* storage);
00178
00182
bool isRunning() const;
00184
00185
bool parseIncidence(KCal::Incidence*,
long& minutes,
00186
long& sessionMinutes,
QString& name,
DesktopList& desktops,
00187
int& percent_complete);
00188
00192 KCal::Todo* asTodo(KCal::Todo* calendar) const;
00193
00195
void addComment(
QString comment,
KarmStorage* storage );
00196
00198
QString comment() const;
00199
00201 bool isRoot()
const {
return parent() == 0; }
00202
00207
bool remove(
QPtrList<Task>& activeTasks,
KarmStorage* storage );
00208
00216
void setPercentComplete(
const int percent,
KarmStorage *storage);
00217
00219
bool isComplete();
00220
00222
void removeFromView();
00223
00224
protected:
00225
void changeParentTotalTimes(
long minutesSession,
long minutes );
00226
00227 signals:
00228
void totalTimesChanged(
long minutesSession,
long minutes);
00230
void deletingTask(
Task* thisTask);
00231
00232
protected slots:
00234
void updateActiveIcon();
00235
00236
private:
00237
00239
QString _uid;
00240
00242
QString _comment;
00243
00244
int _percentcomplete;
00245
00246
long totalTimeInSeconds()
const {
return _totalTime * 60; }
00247
00249
void noNegativeTimes();
00250
00252
void init(
const QString& taskame,
long minutes,
long sessionTime,
00253
DesktopList desktops,
int percent_complete);
00254
00255
00257
QString _name;
00258
00260
QDateTime _lastStart;
00261
00263
long _totalTime;
00264
long _totalSessionTime;
00266
00268
long _time;
00269
long _sessionTime;
00271
DesktopList _desktops;
00272
QTimer *_timer;
00273
int _currentPic;
00274
static QPtrVector<QPixmap> *icons;
00275
00277
bool _removing;
00278
00279 };
00280
00281
#endif // KARM_TASK_H
This file is part of the documentation for karm Library Version 3.3.0.