nodeeditor_doxy
|
00001 #ifndef DIAGRAMSCENE_H 00002 #define DIAGRAMSCENE_H 00003 00004 #include <QGraphicsScene> 00005 00006 //dw 00007 #include "NodeItem.h" 00008 #include "nodeconnection.h" 00009 #include "nodeconnector.h" 00010 00011 QT_BEGIN_NAMESPACE 00012 class QGraphicsSceneMouseEvent; 00013 class QMenu; 00014 class QPointF; 00015 class QGraphicsLineItem; 00016 class QFont; 00017 class QGraphicsTextItem; 00018 class QColor; 00019 QT_END_NAMESPACE 00020 00021 //dw new 00022 class NodeItem; 00023 00025 class DiagramScene : public QGraphicsScene 00026 { 00027 Q_OBJECT 00028 00029 public: 00030 enum Mode { InsertItem, InsertLine, InsertText, MoveItem, /*//dw*/ InsertNode, InsertNode2 }; 00031 00032 DiagramScene(QMenu *itemMenu, QObject *parent = 0); 00033 QColor lineColor() const 00034 { return mLineColor; } 00035 void setLineColor(const QColor &color); 00036 00037 //dw new3: moved and ugly 00038 QMenu *mItemMenu; 00039 00040 public slots: 00041 void setMode(Mode mode); 00042 //void setItemType(DiagramItem::DiagramType type); 00043 //void editorLostFocus(DiagramTextItem *item); 00044 00045 void setDebugDraw(bool enabled = true); 00046 bool isDebugDraw() { return mDebugDraw; } 00047 00048 signals: 00049 //void itemInserted(DiagramItem *item); 00050 //void textInserted(QGraphicsTextItem *item); 00051 //dw 00052 void nodeInserted(QGraphicsItem *item); 00053 void nodeItemInserted(NodeItem *item); 00054 00055 void itemSelected(QGraphicsItem *item); 00056 00057 protected: 00058 void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent); 00059 void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent); 00060 void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent); 00061 00062 QColor mLineColor; 00063 Mode mMode; 00064 private: 00065 bool isItemChange(int type); 00066 00067 //DiagramItem::DiagramType mItemType; 00068 00069 bool leftButtonDown; 00070 QPointF startPoint; 00071 00072 NodeConnection* tmpArrow; 00073 NodeConnector* tmpConnector; 00074 NodeConnector* existingConnector; 00075 NodeConnector* lastHighlighted; 00076 00077 bool mDebugDraw; 00078 }; 00080 00081 #endif