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.2.