karm Library API Documentation

task.h

00001 #ifndef KARM_TASK_H 00002 #define KARM_TASK_H 00003 00004 // Required b/c QPtrList is a struct, not a class. 00005 #include <qptrlist.h> 00006 00007 // Requred b/c/ QPtrVector is a template (?) 00008 #include <qptrvector.h> 00009 00010 // Required b/c DesktopList is a typedef not a class. 00011 #include "desktoplist.h" 00012 00013 // Required b/c of static cast below? (How else can compiler know that a 00014 // TaskView is a subclass or QListView?) 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 /* destructor */ 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
KDE Logo
This file is part of the documentation for karm Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 21 19:46:34 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003