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.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 22:42:26 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003