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 Sat May 1 11:37:53 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003