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 "koattendeeeditor.h"
00028
00029 #include <qwidget.h>
00030 #include <qdatetime.h>
00031 #include <qtimer.h>
00032
00033 class KDIntervalColorRectangle;
00034 class QLabel;
00035 class KDGanttView;
00036 class KDGanttViewItem;
00037 class FreeBusyItem;
00038
00039 namespace KCal {
00040 class FreeBusy;
00041 class Attendee;
00042 }
00043
00044
00045 class KOEditorFreeBusy : public KOAttendeeEditor
00046 {
00047 Q_OBJECT
00048 public:
00049 KOEditorFreeBusy( int spacing = 8, QWidget *parent = 0,
00050 const char *name = 0 );
00051 virtual ~KOEditorFreeBusy();
00052
00053 void setUpdateEnabled( bool enabled );
00054 bool updateEnabled() const;
00055
00056 void insertAttendee( KCal::Attendee *, bool readFBList = true );
00057 void removeAttendee( KCal::Attendee * );
00058 void clearAttendees();
00059
00060 void readEvent( KCal::Event * );
00061 void writeEvent( KCal::Event *event );
00062
00063 void triggerReload();
00064 void cancelReload();
00065
00066 signals:
00067 void dateTimesChanged( const QDateTime &, const QDateTime & );
00068
00069 public slots:
00070 void slotInsertFreeBusy( KCal::FreeBusy *fb, const QString &email );
00071
00072 void setDateTimes( const QDateTime &, const QDateTime & );
00073
00074 void editFreeBusyUrl( KDGanttViewItem *item );
00075
00076 protected slots:
00077 void slotUpdateGanttView( const QDateTime &, const QDateTime & );
00078 void slotScaleChanged( int );
00079 void slotCenterOnStart() ;
00080 void slotZoomToTime();
00081 void slotPickDate();
00082 void showAttendeeStatusMenu();
00083
00084
00085 void manualReload();
00086
00087 void autoReload();
00088 void slotIntervalColorRectangleMoved( const QDateTime& start, const QDateTime& end );
00089
00090 void removeAttendee();
00091 void listViewClicked( int button, KDGanttViewItem* item );
00092
00093 protected:
00094 void timerEvent( QTimerEvent* );
00095 KCal::Attendee* currentAttendee() const;
00096
00097 bool hasExampleAttendee() const;
00098 void updateCurrentItem();
00099 void clearSelection() const;
00100 void changeStatusForMe( KCal::Attendee::PartStat status );
00101 virtual bool eventFilter( QObject *watched, QEvent *event );
00102
00103 private slots:
00104 void slotOrganizerChanged( const QString &newOrganizer );
00105 private:
00106 void updateFreeBusyData( FreeBusyItem * );
00107
00108 bool findFreeSlot( QDateTime &dtFrom, QDateTime &dtTo );
00109 bool tryDate( QDateTime &tryFrom, QDateTime &tryTo );
00110 bool tryDate( FreeBusyItem *attendee,
00111 QDateTime &tryFrom, QDateTime &tryTo );
00112 void updateStatusSummary();
00113 void reload();
00114 KDGanttView *mGanttView;
00115 KDIntervalColorRectangle* mEventRectangle;
00116 QLabel *mStatusSummaryLabel;
00117 bool mIsOrganizer;
00118 QComboBox *scaleCombo;
00119
00120 QDateTime mDtStart, mDtEnd;
00121
00122 QTimer mReloadTimer;
00123
00124 bool mForceDownload;
00125
00126 QString mCurrentOrganizer;
00127 };
00128
00129 #endif
|