resourceview.h
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 KORG_RESOURCEVIEW_H
00025 #define KORG_RESOURCEVIEW_H
00026
00027 #include "calendarview.h"
00028
00029 #include <libkcal/resourcecalendar.h>
00030 #include <qlistview.h>
00031
00032 namespace KCal {
00033 class CalendarResources;
00034 }
00035 using namespace KCal;
00036 class KListView;
00037 class ResourceView;
00038 class QPushButton;
00039
00040 class ResourceViewFactory : public CalendarViewExtension::Factory
00041 {
00042 public:
00043 ResourceViewFactory( KCal::CalendarResources *calendar,
00044 CalendarView *view );
00045
00046 CalendarViewExtension *create( QWidget * );
00047
00048 ResourceView *resourceView() const;
00049
00050 private:
00051 KCal::CalendarResources *mCalendar;
00052 CalendarView *mView;
00053 ResourceView *mResourceView;
00054 };
00055
00056
00057 class ResourceItem : public QCheckListItem
00058 {
00059 public:
00060 ResourceItem( KCal::ResourceCalendar *resource, ResourceView *view,
00061 KListView *parent );
00062 ResourceItem( KCal::ResourceCalendar *resource, const QString& sub,
00063 const QString& label, ResourceView *view,
00064 ResourceItem* parent );
00065
00066 KCal::ResourceCalendar *resource() { return mResource; }
00067 const QString& resourceIdentifier() { return mResourceIdentifier; }
00068 bool isSubresource() const { return mIsSubresource; }
00069 void createSubresourceItems();
00070
00071 void update();
00072
00073 protected:
00074 void stateChange( bool active );
00075
00076 void setGuiState();
00077
00078 private:
00079 KCal::ResourceCalendar *mResource;
00080 ResourceView *mView;
00081 bool mBlockStateChange;
00082 bool mIsSubresource;
00083 QString mResourceIdentifier;
00084 bool mSubItemsCreated;
00085 };
00086
00090 class ResourceView : public CalendarViewExtension
00091 {
00092 Q_OBJECT
00093 public:
00094 ResourceView( KCal::CalendarResources *calendar, QWidget *parent = 0,
00095 const char *name = 0 );
00096 ~ResourceView();
00097
00098 KCal::CalendarResources *calendar() const { return mCalendar; }
00099
00100 void updateView();
00101
00102 void emitResourcesChanged();
00103
00104 void requestClose( ResourceCalendar * );
00105
00106 void showButtons( bool visible );
00107
00108 public slots:
00109 void addResourceItem( ResourceCalendar * );
00110 void updateResourceItem( ResourceCalendar * );
00111
00112 signals:
00113 void resourcesChanged();
00114
00115 protected:
00116 ResourceItem *findItem( ResourceCalendar * );
00117 ResourceItem *findItemByIdentifier( const QString& id );
00118 ResourceItem *currentItem();
00119
00120 protected slots:
00121 void addResource();
00122 void removeResource();
00123 void editResource();
00124 void currentChanged( QListViewItem* );
00125 void slotSubresourceAdded( ResourceCalendar *, const QString &,
00126 const QString &resource,const QString& label );
00127
00128 void slotSubresourceAdded( ResourceCalendar *, const QString &,
00129 const QString &resource );
00130
00131 void slotSubresourceRemoved( ResourceCalendar *, const QString &,
00132 const QString &resource );
00133 void closeResource( ResourceCalendar * );
00134
00135 void contextMenuRequested ( QListViewItem *i, const QPoint &pos, int );
00136
00137 void showInfo();
00138
00139 void reloadResource();
00140 void saveResource();
00141
00142 private:
00143 KListView *mListView;
00144 KCal::CalendarResources *mCalendar;
00145 QPushButton *mAddButton;
00146 QPushButton *mDeleteButton;
00147 QPushButton *mEditButton;
00148 QPtrList<ResourceCalendar> mResourcesToClose;
00149 };
00150 #endif
This file is part of the documentation for korganizer Library Version 3.3.2.