src/job_editor_widget/jobpropertyitem.h

Go to the documentation of this file.
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

Generated on Mon Mar 16 18:46:05 2009 for QCJM by  doxygen 1.5.4