karm Library API Documentation

task.h

00001 #ifndef KARM_TASK_H 00002 #define KARM_TASK_H 00003 00004 #include <qlistview.h> 00005 #include <qobject.h> 00006 #include <qpixmap.h> 00007 #include <qptrlist.h> 00008 #include <qptrvector.h> 00009 #include <qstring.h> 00010 00011 #include "incidence.h" // KCal::Incidence 00012 #include "event.h" // KCal::Event 00013 #include "todo.h" 00014 00015 #include "desktoplist.h" 00016 #include "karmstorage.h" 00017 00018 class QFile; 00019 class QTimer; 00020 00021 class TaskView; 00022 00024 00037 class Task : public QObject, public QListViewItem 00038 { 00039 Q_OBJECT 00040 00041 public: 00043 Task( const QString& taskame, long minutes, long sessionTime, 00044 DesktopList desktops, TaskView* parent = 0); 00045 Task( const QString& taskame, long minutes, long sessionTime, 00046 DesktopList desktops, Task* parent = 0); 00047 Task( KCal::Todo* incident, TaskView* parent ); 00049 /* destructor */ 00050 ~Task(); 00051 00055 Task* firstChild() const { return (Task*)QListViewItem::firstChild(); } 00056 Task* nextSibling() const { return (Task*)QListViewItem::nextSibling(); } 00057 Task* parent() const { return (Task*)QListViewItem::parent(); } 00058 00060 TaskView* taskView() const { 00061 return static_cast<TaskView *>( listView() ); 00062 } 00063 00065 QString uid() const { return _uid; } 00066 00074 void setUid(const QString uid); 00075 00077 void cut(); 00080 void move(Task* destination); 00082 void paste(Task* destination); 00083 00085 00095 void changeTime( long minutes, bool do_logging, KarmStorage* storage ) 00096 { changeTimes( minutes, minutes, do_logging, storage); }; 00097 00111 void changeTimes( long minutesSession, long minutes, bool do_logging, 00112 KarmStorage* storage=0); 00113 00119 void changeTotalTimes( long minutesSession, long minutes ); 00120 00124 void resetTimes(); 00125 00129 long time() const { return _time; }; 00130 long totalTime() const { return _totalTime; }; 00131 long sessionTime() const { return _sessionTime; }; 00132 long totalSessionTime() const { return _totalSessionTime; }; 00133 00137 QDateTime startTime() const { return _lastStart; }; 00138 00140 void startNewSession() { changeTimes( -_sessionTime, 0, false); }; 00142 00144 00145 void setDesktopList ( DesktopList dl ); 00146 DesktopList getDesktops() const { return _desktops;} 00147 00148 QString getDesktopStr() const; 00150 00152 00156 void setName( const QString& name, KarmStorage* storage ); 00157 00161 QString name() const { return _name; }; 00162 00168 QString fullName() const; 00170 00172 void update(); 00173 00175 00178 void setRunning(bool on, KarmStorage* storage); 00179 00183 bool isRunning() const; 00185 00186 bool parseIncidence(KCal::Incidence*, long& minutes, 00187 long& sessionMinutes, QString& name, DesktopList& desktops, 00188 int& percent_complete); 00189 00193 KCal::Todo* asTodo(KCal::Todo* calendar) const; 00194 00196 void addComment( QString comment, KarmStorage* storage ); 00197 00199 QString comment() const; 00200 00202 bool isRoot() const { return parent() == 0; } 00203 00208 bool remove( QPtrList<Task>& activeTasks, KarmStorage* storage ); 00209 00217 void setPercentComplete(const int percent, KarmStorage *storage); 00218 00220 bool isComplete(); 00221 00223 void removeFromView(); 00224 00225 protected: 00226 void changeParentTotalTimes( long minutesSession, long minutes ); 00227 00228 signals: 00229 void totalTimesChanged( long minutesSession, long minutes); 00231 void deletingTask(Task* thisTask); 00232 00233 protected slots: 00235 void updateActiveIcon(); 00236 00237 private: 00238 00240 QString _uid; 00241 00243 QString _comment; 00244 00245 int _percentcomplete; 00246 00247 long totalTimeInSeconds() const { return _totalTime * 60; } 00248 00250 void noNegativeTimes(); 00251 00253 void init( const QString& taskame, long minutes, long sessionTime, 00254 DesktopList desktops, int percent_complete); 00255 00256 00258 QString _name; 00259 00261 QDateTime _lastStart; 00262 00264 long _totalTime; 00265 long _totalSessionTime; 00267 00269 long _time; 00270 long _sessionTime; 00272 DesktopList _desktops; 00273 QTimer *_timer; 00274 int _currentPic; 00275 static QPtrVector<QPixmap> *icons; 00276 00277 }; 00278 00279 #endif // KARM_TASK_H
KDE Logo
This file is part of the documentation for karm Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Jul 28 23:58:06 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003