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
00014
00015
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
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:
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
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
This file is part of the documentation for karm Library Version 3.2.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Mar 6 17:18:24 2004 by
doxygen 1.3.6-20040222 written by
Dimitri van Heesch, © 1997-2003