nodeeditor_doxy
|
00001 //dw 00002 #ifndef NodeItem_H 00003 #define NodeItem_H 00004 00005 #include <QGraphicsPixmapItem> 00006 #include <QList> 00007 00008 //dw 00009 #include <QGraphicsObject> 00010 #include <QtGui> 00011 #include "nodeconnector.h" 00012 #include "nodeconnection.h" 00013 //dw new 00014 #include "diagramscene.h" 00015 00016 QT_BEGIN_NAMESPACE 00017 class QPixmap; 00018 class QGraphicsItem; 00019 class QGraphicsScene; 00020 class QTextEdit; 00021 class QGraphicsSceneMouseEvent; 00022 class QMenu; 00023 class QGraphicsSceneContextMenuEvent; 00024 class QPainter; 00025 class QStyleOptionGraphicsItem; 00026 class QWidget; 00027 class QPolygonF; 00028 /*//dw 00029 class QGraphicsProxyWidget;*/ 00030 QT_END_NAMESPACE 00031 00032 class NodeConnector; 00033 class NodeConnection; 00034 00036 class NodeItem : public /*QGraphicsPolygonItem //dw*/ /*QFrame*/ /*QGraphicsProxyWidget*/ QGraphicsObject 00037 { 00038 Q_OBJECT 00039 public: 00040 enum { Type = UserType + 666 + 1 }; 00041 int type() const 00042 { return Type;} 00043 00044 NodeItem(QMenu *contextMenu, QGraphicsItem *parent = 0, QGraphicsScene *scene = 0, Qt::WindowFlags wFlags = 0); 00045 virtual ~NodeItem(); 00046 void deleteConnections(); 00047 00048 void addConnector(NodeConnector* nc); 00049 00050 00051 //dw 00052 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); 00053 //void setWidget(QWidget *widget); 00054 00055 QRectF boundingRect() const; 00056 QPainterPath shape() const; 00057 00058 //void update(const QRectF & rect = QRectF()); 00059 00060 QList<NodeConnector *> connectors; 00061 00062 /* 00063 public slots: 00064 void deleted(); 00065 void deleted(int result); 00066 00067 //dw try overriding QWidget slot 00068 void hide(); 00069 */ 00070 00071 /* 00072 void accepted () 00073 void finished ( int result ) 00074 void rejected () 00075 */ 00076 00077 //dw666 orig: QList<NodeConnector *> connectors; 00078 00079 protected: 00080 void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); 00081 QVariant itemChange(GraphicsItemChange change, const QVariant &value); 00082 00083 /*//dw FIXME 00084 void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent); 00085 void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent); 00086 void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent); 00087 00088 bool shouldMoveNode(QGraphicsSceneMouseEvent *mouseEvent); 00089 //const static QStringList shouldNotMoveTypes << "foo" << "bar"; 00090 //const static char* shouldNotMoveTypes = {}; 00091 const static char* shouldMoveOnClickTypes[]; 00092 */ 00093 00094 00095 void hoverMoveEvent ( QGraphicsSceneHoverEvent * event ); 00096 00097 00098 bool mControlResizeHandles; 00099 bool mNoResize; 00100 00101 /*//dw FIXME:only proxified 00102 //dw 669: new 00103 void resizeEvent ( QGraphicsSceneResizeEvent * event ); 00104 */ 00105 00106 00107 private: 00108 QMenu *mContextMenu; 00109 00110 00111 00112 void updateConnectorsPos(); 00113 00114 bool isMoving; 00115 00116 void removeWigetFromConnectors(); 00117 00118 void debugPaint(QPainter *painter); 00119 00120 int mMaxRadius; 00121 00122 00123 }; 00124 00125 00127 00128 00129 #endif