korganizer
koeditorfreebusy.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KOEDITORFREEBUSY_H
00025 #define KOEDITORFREEBUSY_H
00026
00027 #include <qwidget.h>
00028 #include <qdatetime.h>
00029 #include <qtimer.h>
00030
00031 class QLabel;
00032 class KDGanttView;
00033 class KDGanttViewItem;
00034 class FreeBusyItem;
00035
00036 namespace KCal {
00037 class FreeBusy;
00038 class Attendee;
00039 }
00040
00041
00042 class KOEditorFreeBusy : public QWidget
00043 {
00044 Q_OBJECT
00045 public:
00046 KOEditorFreeBusy( int spacing = 8, QWidget *parent = 0,
00047 const char *name = 0 );
00048 virtual ~KOEditorFreeBusy();
00049
00050 void setUpdateEnabled( bool enabled );
00051 bool updateEnabled() const;
00052
00053 void insertAttendee( KCal::Attendee *, bool readFBList );
00054 void removeAttendee( KCal::Attendee * );
00055 void updateAttendee( KCal::Attendee * );
00056 void clearAttendees();
00057
00058 void readEvent( KCal::Event * );
00059
00060 void triggerReload();
00061 void cancelReload();
00062
00063 signals:
00064 void dateTimesChanged( const QDateTime &, const QDateTime & );
00065
00066 public slots:
00067 void slotInsertFreeBusy( KCal::FreeBusy *fb, const QString &email );
00068
00069 void setDateTimes( const QDateTime &, const QDateTime & );
00070
00071 void editFreeBusyUrl( KDGanttViewItem *item );
00072
00073 protected slots:
00074 void slotUpdateGanttView( const QDateTime &, const QDateTime & );
00075 void slotScaleChanged( int );
00076 void slotCenterOnStart() ;
00077 void slotZoomToTime();
00078 void slotPickDate();
00079
00080
00081 void manualReload();
00082
00083 void autoReload();
00084
00085 protected:
00086 void timerEvent( QTimerEvent* );
00087
00088 private:
00089 void updateFreeBusyData( FreeBusyItem * );
00090
00091 bool findFreeSlot( QDateTime &dtFrom, QDateTime &dtTo );
00092 bool tryDate( QDateTime &tryFrom, QDateTime &tryTo );
00093 bool tryDate( FreeBusyItem *attendee,
00094 QDateTime &tryFrom, QDateTime &tryTo );
00095 void updateStatusSummary();
00096 void reload();
00097 KDGanttView *mGanttView;
00098 QLabel *mStatusSummaryLabel;
00099 bool mIsOrganizer;
00100 QComboBox *scaleCombo;
00101
00102 QDateTime mDtStart, mDtEnd;
00103
00104 QTimer mReloadTimer;
00105
00106 bool mForceDownload;
00107 };
00108
00109 #endif
|