00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef _KOLISTVIEW_H
00025
#define _KOLISTVIEW_H
00026
00027
#include <qlistview.h>
00028
#include <qmap.h>
00029
#include <qdict.h>
00030
#include <qtooltip.h>
00031
00032
#include <klistview.h>
00033
00034
#include <libkcal/incidence.h>
00035
00036
#include "koprefs.h"
00037
#include "koeventview.h"
00038
#include "customlistviewitem.h"
00039
00040
using namespace KCal;
00041
00042
typedef CustomListViewItem<Incidence *> KOListViewItem;
00043
00044
class KOListView;
00045
00046
class KOListViewToolTip :
public QToolTip
00047 {
00048
public:
00049 KOListViewToolTip (QWidget* parent, KListView* lv );
00050
00051
protected:
00052
void maybeTip(
const QPoint & pos);
00053
00054
private:
00055 KListView* eventlist;
00056 };
00057
00058
00063 class ListItemVisitor :
public Incidence::Visitor
00064 {
00065
public:
00066
ListItemVisitor(KOListViewItem *);
00067 ~
ListItemVisitor();
00068
00069
bool visit(Event *);
00070
bool visit(Todo *);
00071
bool visit(Journal *);
00072
00073
private:
00074 KOListViewItem *mItem;
00075 };
00076
00087 class KOListView :
public KOEventView
00088 {
00089 Q_OBJECT
00090
public:
00091
KOListView(Calendar *calendar, QWidget *parent = 0,
00092
const char *name = 0);
00093 ~
KOListView();
00094
00095
virtual int maxDatesHint();
00096
virtual int currentDateCount();
00097
virtual Incidence::List
selectedIncidences();
00098
virtual DateList
selectedDates();
00099
00100
void showDates(
bool show);
00101
00102
virtual void printPreview(
CalPrinter *calPrinter,
00103
const QDate &,
const QDate &);
00104
00105
void readSettings(KConfig *config);
00106
void writeSettings(KConfig *config);
00107
00108
void clear();
00109
00110
public slots:
00111
virtual void updateView();
00112
virtual void showDates(
const QDate &start,
const QDate &end );
00113
virtual void showEvents(
const Event::List & );
00114
void showIncidences(
const Incidence::List &eventList );
00115
00116
void clearSelection();
00117
00118
void showDates();
00119
void hideDates();
00120
00121
void changeEventDisplay(Event *,
int);
00122
00123
void defaultItemAction(QListViewItem *item);
00124
void popupMenu(QListViewItem *item,
const QPoint &,
int);
00125
00126
protected slots:
00127
void processSelectionChange();
00128
00129
protected:
00130
void addEvents(
const Event::List & );
00131
void addTodos(
const Todo::List & );
00132
void addIncidences(
const Incidence::List & );
00133
void addIncidence(Incidence *);
00134 KOListViewItem *getItemForEvent(Event *event);
00135
00136
private:
00137 KListView *mListView;
00138 KOEventPopupMenu *mPopupMenu;
00139 KOListViewItem *mActiveItem;
00140 QDict<Incidence> mUidDict;
00141 };
00142
00143
#endif