karm Library API Documentation

taskview.h

00001 #ifndef KARM_TASK_VIEW_H
00002 #define KARM_TASK_VIEW_H
00003 
00004 #include <qdict.h>
00005 #include <qptrlist.h>
00006 #include <qptrstack.h>
00007 
00008 #include <klistview.h>
00009 
00010 #include "desktoplist.h"
00011 #include "karmstorage.h"
00012 #include <qtimer.h>
00013 //#include "desktoptracker.h"
00014 
00015 //#include "karmutility.h"
00016 
00017 class QListBox;
00018 class QTextStream;
00019 class QTimer;
00020 
00021 class KMenuBar;
00022 class KToolBar;
00023 
00024 class DesktopTracker;
00025 class EditTaskDialog;
00026 class IdleTimeDetector;
00027 class Preferences;
00028 class Task;
00029 class KarmStorage;
00030 class HistoryEvent;
00031 
00036 class TaskView : public KListView
00037 {
00038   Q_OBJECT
00039 
00040   public:
00041     TaskView( QWidget *parent = 0, const char *name = 0 );
00042     virtual ~TaskView();
00043 
00045     Task* first_child() const;
00046 
00048     Task* current_item() const;
00049 
00051     Task* item_at_index(int i);
00052 
00054     void load();
00055 
00057     void startNewSession();
00058 
00060     void resetTimeForAllTasks();
00061 
00063     long count();
00064 
00066     QValueList<HistoryEvent> getHistory(const QDate& from, const QDate& to)
00067       const;
00068 
00070     void scheduleSave();
00071 
00072   public slots:
00074     void save();
00075 
00077     void startCurrentTimer();
00078 
00080     void stopCurrentTimer();
00081 
00083     void stopAllTimers();
00084 
00086     void changeTimer( QListViewItem * = 0 );
00087 
00089     void newTask();
00090 
00092     void newTask( QString caption, Task* parent );
00093 
00095     void loadFromFlatFile();
00096 
00098     void newSubTask();
00099 
00100     void editTask();
00101 
00110     void deleteTask(bool markingascomplete=false);
00111 //    void addCommentToTask();
00112     void markTaskAsComplete();
00113 
00115     void extractTime( int minutes );
00116     void taskTotalTimesChanged( long session, long total)
00117                                 { emit totalTimesChanged( session, total); };
00118     void adaptColumns();
00120     void deletingTask(Task* deletedTask);
00121     void startTimerFor( Task* task );
00122     void stopTimerFor( Task* task );
00123 
00125     void iCalFileChanged(QString file);
00126 
00128     void clipTotals();
00129 
00131     void clipHistory();
00132 
00133   signals:
00134     void totalTimesChanged( long session, long total );
00135     void updateButtons();
00136     void timersActive();
00137     void timersInactive();
00138     void tasksChanged( QPtrList<Task> activeTasks );
00139 
00140   private: // member variables
00141     IdleTimeDetector *_idleTimeDetector;
00142     QTimer *_minuteTimer;
00143     QTimer *_autoSaveTimer;
00144     QTimer *_manualSaveTimer;
00145     Preferences *_preferences;
00146     QPtrList<Task> activeTasks;
00147     int previousColumnWidths[4];
00148     DesktopTracker* _desktopTracker;
00149 
00150     //KCal::CalendarLocal _calendar;
00151     KarmStorage * _storage;
00152 
00153   private:
00154     void updateParents( Task* task, long totalDiff, long sesssionDiff);
00155     void deleteChildTasks( Task *item );
00156     void addTimeToActiveTasks( int minutes, bool do_logging);
00157 
00158   protected slots:
00159     void autoSaveChanged( bool );
00160     void autoSavePeriodChanged( int period );
00161     void minuteUpdate();
00162 };
00163 
00164 #endif // KARM_TASK_VIEW
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