00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KPTRESOURCEVIEW_H
00021 #define KPTRESOURCEVIEW_H
00022
00023 #include <kptview.h>
00024 #include <QTreeWidget>
00025
00026 #include "kptcontext.h"
00027
00028 class QPoint;
00029 class QTreeWidgetItem;
00030 class QSplitter;
00031
00032 class KToggleAction;
00033 class KPrinter;
00034
00035 namespace KPlato
00036 {
00037 class ResListView;
00038
00039 class View;
00040 class Project;
00041 class Resource;
00042 class Node;
00043
00044 class ResourceAppointmentsView;
00045 class ResourceGroup;
00046 class Resource;
00047 class ResourceItemPrivate;
00048
00049 class ResListView : public QTreeWidget
00050 {
00051 Q_OBJECT
00052 public:
00053 ResListView( QWidget * parent = 0 );
00054
00055 int headerHeight() const;
00056 virtual void paintToPrinter( QPainter *p, int x, int y, int w, int h );
00057 int calculateY( int ymin, int ymax ) const;
00058 class DrawableItem
00059 {
00060 public:
00061 DrawableItem( int level, int ypos, QTreeWidgetItem *item ) { y = ypos; l = level; i = item; };
00062 int y;
00063 int l;
00064 QTreeWidgetItem * i;
00065 };
00066 signals:
00067 void contextMenuRequested( QTreeWidgetItem*, const QPoint&, int );
00068 protected:
00069 int buildDrawables( QList<ResListView::DrawableItem*> &lst, int level, int ypos, QTreeWidgetItem *item, int ymin, int ymax ) const;
00070
00071
00072
00073
00074 virtual void drawAllContents( QPainter * p, int cx, int cy, int cw, int ch );
00075 private slots:
00076 void slotContextMenuRequested( const QPoint &p );
00077 };
00078
00079
00080 class ResourceView : public ViewBase
00081 {
00082 Q_OBJECT
00083
00084 public:
00085 ResourceView( View *view, QWidget *parent );
00086
00087
00088
00089 void zoom( double zoom );
00090
00091 void draw( Project &project );
00092
00093 Resource *currentResource();
00094
00095 QList<int> listOffsets( int pageHeight ) const;
00096 void print( KPrinter &printer );
00097
00098 Node *currentNode() const { return m_currentNode; }
00099
00100 virtual bool setContext( Context::Resourceview &context );
00101 virtual void getContext( Context::Resourceview &context ) const;
00102
00103 virtual QSize sizeHint() const;
00104
00105 public slots:
00106 void setShowAppointments( bool on ) { m_showAppointments = on; }
00107
00108 signals:
00109 void itemDoubleClicked();
00110
00111 protected slots:
00112 void resSelectionChanged();
00113 void resSelectionChanged( QTreeWidgetItem *item );
00114 void slotItemActivated( QTreeWidgetItem* );
00115 void popupMenuRequested( QTreeWidgetItem * item, const QPoint & pos, int );
00116
00117 private:
00118 void drawResources( const Project &proj, QTreeWidgetItem *parent, ResourceGroup *group );
00119 void clearResList();
00120
00121 private:
00122 int m_defaultFontSize;
00123 QSplitter *m_splitter;
00124
00125 Project *m_project;
00126 ResourceItemPrivate *m_selectedItem;
00127 ResListView *m_resListView;
00128 QTreeWidgetItem *m_header;
00129 ResourceAppointmentsView *m_appview;
00130 Node *m_currentNode;
00131 QDate m_start;
00132 QDate m_end;
00133
00134 bool m_showAppointments;
00135
00136 };
00137
00138 }
00139
00140 #endif