]> AND Private Git Repository - blast.git/blobdiff - ConnectionItem.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
insert/move/remove block/groups/interface done. Next to fo: loading project file
[blast.git] / ConnectionItem.h
index 567a31d4e83edcb2b0252b5b33e21fca4761754f..6370c90d31ec3b6ed62effbae538d9e6d703baab 100644 (file)
 class Dispatcher;
 class Parameters;
 class InterfaceItem;
+class GroupScene;
 
 using namespace std;
 using namespace Qt;
 
-/* NOTES :
+/*! \brief ConnectionItem class
 
-   A connection item represent a graphical link between two interface items.
+   A ConnectionItem represents a graphical link between two interface items.
    Even if it links two in/out interfaces, it is always oriented.
    The orientation depends on the type and direction of linked interfaces :
 
@@ -51,6 +52,7 @@ public:
 
   void prepareChange();
 
+  inline GroupScene* getScene() { return (GroupScene*)(scene()); }
   inline InterfaceItem* getToInterfaceItem(){ return toInterfaceItem; }
   inline void setToInterfaceItem(InterfaceItem *iface){ toInterfaceItem = iface; }
   inline InterfaceItem* getFromInterfaceItem(){ return fromInterfaceItem; }
@@ -61,7 +63,19 @@ public:
   void setSelected(bool selected);
 
   void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
-  void setPathes();
+
+  /*!
+   * \brief setPath
+   * setPath() allows to compute the graphical shape of the ConnectionItem
+   * taking into account the position/direction of from and to interface items.
+   * Depending on their vlaue, it calls on of the dedicated methods.
+   *
+   * CAUTION: this method calls prepareGeometryChange() so that the scene
+   * can automatically updates and redraw the ConnectionItem. Thus, there is
+   * no need to call update() after the termination of this method.
+   *
+   */
+  void setPath();
   void addInterPoint(QPointF point);
 
   static int counter;