00001 #ifndef JOBPROPERTYITEM_H 00002 #define JOBPROPERTYITEM_H 00003 00010 #include <QWidget> 00011 #include <QList> 00012 #include <QVariant> 00013 #include <QVector> 00014 #include <QObject> 00015 #include "jobpropertymodel.h" 00016 00020 class JobPropertyItem: public QObject 00021 { 00022 Q_OBJECT 00023 00024 public: 00025 JobPropertyItem(JobPropertyModel * _model); 00026 virtual ~JobPropertyItem() {} 00027 00028 virtual JobPropertyItem *child(int number); 00029 virtual int childCount() const; 00030 virtual int childNumber() const; 00031 virtual JobPropertyItem *parent(); 00032 virtual int columnCount() const; 00033 virtual QVariant data(int column=1) const; 00034 virtual bool setData(int column, const QVariant &value); 00035 virtual void setReadOnly(bool b); 00036 virtual bool isReadOnly() const; 00037 virtual void setHaveContextMenu(bool b); 00038 virtual bool hasContextMenu() const; 00039 virtual void createCustomContextMenu(QWidget *parent, const QPoint & pos); 00040 virtual bool deleteChild(int row); 00041 virtual QModelIndex getSelfIndex(); 00042 00043 //Pure 00044 virtual QWidget *createEditor(QWidget *parent, const QObject *target, const char *receiver) const = 0; 00045 virtual void updateEditorContents(QWidget *editor) = 0; 00046 virtual void updateValue(QWidget *editor) = 0; 00047 00048 00049 JobPropertyItem *parentItem; 00050 QList<JobPropertyItem*> childItems; 00051 QVector<QVariant> itemData; 00052 protected: 00053 QString _name; 00054 JobPropertyModel * _model; 00055 bool _isreadonly; 00056 bool _hascontextmenu; 00057 00058 00059 signals: 00063 void jobPropertyChanged(QVector<QVariant> &); 00064 }; 00065 00066 00067 00071 class JobPropertyItemRoot: public JobPropertyItem 00072 { 00073 Q_OBJECT 00074 public: 00075 JobPropertyItemRoot(JobPropertyModel * _model, JobPropertyItem *parent = 0); 00076 virtual ~JobPropertyItemRoot(); 00077 00078 virtual QWidget *createEditor(QWidget *parent, const QObject *target, const char *receiver) const; 00079 virtual void updateEditorContents(QWidget *editor); 00080 virtual void updateValue(QWidget *editor); 00081 00082 public slots: 00083 void setWalltime(const QString & walltime); 00084 void setNodes(const QString & nodes); 00085 00086 signals: 00090 void walltimeChanged(const QString & walltime); 00094 void nodesChanged(const QString & nodes); 00095 }; 00096 00097 00098 00099 #endif // JOBPROPERTYITEM_H