void SUPERVGUI_ArrayView::ActivatePanning()
{
- cout<<" ===> SUPERVGUI_ArrayView::ActivatePanning()"<<endl;
myIsPanActivated = true;
viewport()->setMouseTracking(false);
}
void SUPERVGUI_ArrayView::contentsMousePressEvent(QMouseEvent* theEvent) {
myGlobalPoint = theEvent->globalPos();
- cout<<" ===> myIsPanActivated = "<<myIsPanActivated<<endl;
if (((theEvent->button() == Qt::MidButton)
&&
(theEvent->state() == Qt::ControlButton)) || myIsPanActivated) {
SUPERVGUI_Canvas::~SUPERVGUI_Canvas() {
+ // asv : 17.01.05 : why delete its own children (CanvasNode-s)?
+ // they must be destroyed automatically.
QObjectList* aNodeList = queryList("SUPERVGUI_CanvasNode");
QObjectListIt aIt(*aNodeList);
QObject* anObj;
- while ((anObj = aIt.current()) != 0) {
+ while ( (anObj = aIt.current()) != 0 ) {
++aIt;
delete anObj;
}
+ // asv : list returned by queryList() must be removed
+ delete aNodeList;
}
void SUPERVGUI_Canvas::addView(QCanvasView* theView)
}
void SUPERVGUI_Canvas::sync() {
- // MESSAGE("===> SUPERVGUI_Canvas::sync()");
if (SUPERV_isNull(myMain->getDataflow())) return;
SUPERVGUI_CanvasNode* ihmNode;
* Synchronizes Graph presentation with internal graph structure
*/
void SUPERVGUI_Canvas::merge() {
- // MESSAGE("===> SUPERVGUI_Canvas::merge()");
if (SUPERV_isNull(myMain->getDataflow())) return;
SUPERVGUI_CanvasNode* ihmNode;
else x += (CELL_WIDTH + CELL_SPACE); \
cell = getCellNode(aCNode); \
if (cell == NULL) { \
- cout<<" ***> cell is NULL => create a new one"<<endl; \
SUPERVGUI_CanvasCellNode* aNode = new SUPERVGUI_CanvasCellNode(this, myMain, aCNode); \
aNode->move(x, y); \
aNode->show(); \
aNode->sync(); \
} else { \
- cout<<" ***> cell is NOT NULL => not create"<<endl; \
cell->move(x, y); \
cell->show(); \
} \
SUPERV_CNode aCNodeEnd = SUPERV::CNode::_narrow(nodes->NodesName[co]->Coupled()); \
cell = getCellNode(aCNode); \
if (cell == NULL) { \
- cout<<" ***> cell control is NULL => create a new one"<<endl; \
SUPERVGUI_CanvasCellNode* aNode = new SUPERVGUI_CanvasCellNode(this, myMain, aCNode); \
aNode->move(x, y); \
aNode->show(); \
aNodeEnd->show(); \
aNodeEnd->sync(); \
} else { \
- cout<<" ***> cell control is NOT NULL => not create"<<endl; \
cell->move(x, y); \
cell->show(); \
y += (CELL_HEIGHT + CELL_SPACE); \
}
void SUPERVGUI_CanvasArray::sync() {
- MESSAGE("===> SUPERVGUI_CanvasArray::sync()");
if (SUPERV_isNull(myMain->getDataflow())) return;
SUPERVGUI_CanvasCellNode* ihmNode;
if (ncols == 0) return false;
QCanvasItemList anIL1 = this->allItems();
- cout<<" ===> begin create() : CanvasArray has "<<anIL1.count()<<" items!"<<endl;
QPen pen(Qt::SolidLine);
pen.setWidth(1);
QBrush br(MAIN_TITLE);
if (myOldThreadNum) { //some of threads allready exist on canvas array
- cout<<" ===> second ... creation !"<<endl;
QObjectList* aThreadList = queryList("QCanvasRectangle");
QObjectListIt aItThread(*aThreadList);
QCanvasRectangle* anObjThread;
myOldThreadNum = ncols;
QCanvasItemList anIL2 = this->allItems();
- cout<<" ===> 1 create() : CanvasArray has "<<anIL2.count()<<" items!"<<endl;
y = 60;
bool LevelHasDiffNT = false;
ADDNODES(FNodes,LevelHasDiffNT);
QCanvasItemList anIL3 = this->allItems();
- cout<<" ===> 2 create() : CanvasArray has "<<anIL3.count()<<" items!"<<endl;
if (aSumNum > nodes->FNodes.length())
LevelHasDiffNT = true;
nodeY = y + CELL_HEIGHT*2;
QCanvasItemList anIL4 = this->allItems();
- cout<<" ===> end create() : CanvasArray has "<<anIL4.count()<<" items!"<<endl;
return true;
Trace("SUPERVGUI_Array::destroy");
QCanvasItemList anIL1 = this->allItems();
- cout<<" ===> begin destroy() : CanvasArray has "<<anIL1.count()<<" items!"<<endl;
const QObjectList* anCL1 = this->children();
- cout<<" ===> begin destroy() : CanvasArray has "<<anCL1->count()<<" children!"<<endl;
QObjectList* aCellList = queryList("SUPERVGUI_CanvasCellNode");
QObjectListIt aIt(*aCellList);
delete aTextList;
QCanvasItemList anIL2 = this->allItems();
- cout<<" ===> end destroy() : CanvasArray has "<<anIL2.count()<<" items!"<<endl;
}
SUPERVGUI_CanvasCellNode* SUPERVGUI_CanvasArray::getCellNode(SUPERV::CNode_ptr theNode) const
myStatusWidth(CELL_WIDTH_PART),
SUPERVGUI_CanvasNodePrs(theCanvas, theNode, true)
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::SUPERVGUI_CanvasCellNodePrs");
-
- //setZ(0);
myPortVisible = false;
-
QCanvasItemList anIL2 = canvas()->allItems();
- cout<<" ===> 1 conatructor CellPrs : CanvasArray has "<<anIL2.count()<<" children!"<<endl;
+}
+
+SUPERVGUI_CanvasCellNodePrs::~SUPERVGUI_CanvasCellNodePrs()
+{
}
void SUPERVGUI_CanvasCellNodePrs::moveBy(double dx, double dy) {
- Trace("SUPERVGUI_CanvasCellNodePrs::moveBy");
+//Trace("SUPERVGUI_CanvasCellNodePrs::moveBy");
int aX = (int) (x()+dx);
int aY = (int) (y()+dy);
}
void SUPERVGUI_CanvasCellNodePrs::drawShape(QPainter& thePainter) {
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawShape begin");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawShape begin");
drawTitle(thePainter);
drawLabel(thePainter);
drawStatus(thePainter);
drawFrame(thePainter);
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawShape end");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawShape end");
}
void drawCellText(QPainter& thePainter, const QString& theText,
}
void SUPERVGUI_CanvasCellNodePrs::drawTitle(QPainter& thePainter) {
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawTitle begin");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawTitle begin");
QBrush saved = thePainter.brush();
if (getNode()->getEngine()->IsLoop() || getNode()->getEngine()->IsEndLoop()
||
thePainter.setBrush(saved);
drawCellText(thePainter, getNode()->getEngine()->Name(), getTitleRect(), Qt::AlignLeft);
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawTitle end");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawTitle end");
}
void SUPERVGUI_CanvasCellNodePrs::drawLabel(QPainter& thePainter)
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawLabel begin");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawLabel begin");
QRect r = getLabelRect();
QPen saved = thePainter.pen();
thePainter.setPen(saved);
drawCellText(thePainter, getNode()->getLabelText(), r, Qt::AlignLeft);
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawLabel end");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawLabel end");
}
void SUPERVGUI_CanvasCellNodePrs::drawStatus(QPainter& thePainter)
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawStatus begin");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawStatus begin");
QRect r = getStatusRect();
QBrush savedB = thePainter.brush();
thePainter.setBrush(savedB);
drawCellText(thePainter, getStatus(), r, Qt::AlignHCenter);
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawStatus end");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::drawStatus end");
}
QRect SUPERVGUI_CanvasCellNodePrs::getTitleRect() const
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::getTitleRect()!!!");
- cout<<" xT = "<<(int)x()
- <<" yT = "<<(int)y()
- <<" wT = "<<getTitleWidth()
- <<" hT = "<<getTitleHeight()<<endl;
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::getTitleRect()!!!");
+// cout<<" xT = "<<(int)x()
+// <<" yT = "<<(int)y()
+// <<" wT = "<<getTitleWidth()
+// <<" hT = "<<getTitleHeight()<<endl;
return QRect((int)x(), (int)y(), getTitleWidth(), getTitleHeight());
}
QRect SUPERVGUI_CanvasCellNodePrs::getLabelRect() const
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::getLabelRect()!!!");
- cout<<" xL = "<<((int)x())+getTitleWidth()
- <<" yL = "<<(int)y()
- <<" wL = "<<getLabelWidth()
- <<" hL = "<<getLabelHeight()<<endl;
+// MESSAGE("SUPERVGUI_CanvasCellNodePrs::getLabelRect()!!!");
+// cout<<" xL = "<<((int)x())+getTitleWidth()
+// <<" yL = "<<(int)y()
+// <<" wL = "<<getLabelWidth()
+// <<" hL = "<<getLabelHeight()<<endl;
return QRect(((int)x())+getTitleWidth(), (int)y(), getLabelWidth(), getLabelHeight());
}
QRect SUPERVGUI_CanvasCellNodePrs::getStatusRect() const
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::getStatusRect()!!!");
- cout<<" xS = "<<((int)x())+getTitleWidth()+getLabelWidth()
- <<" yS = "<<(int)y()
- <<" wS = "<<getStatusWidth()
- <<" hS = "<<getStatusHeight()<<endl;
+// MESSAGE("SUPERVGUI_CanvasCellNodePrs::getStatusRect()!!!");
+// cout<<" xS = "<<((int)x())+getTitleWidth()+getLabelWidth()
+// <<" yS = "<<(int)y()
+// <<" wS = "<<getStatusWidth()
+// <<" hS = "<<getStatusHeight()<<endl;
return QRect(((int)x())+getTitleWidth()+getLabelWidth(), (int)y(),
getStatusWidth(), getStatusHeight());
}
int SUPERVGUI_CanvasCellNodePrs::width() const
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::width() begin");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::width() begin");
return myTitleWidth + myLabelWidth + myStatusWidth;
}
int SUPERVGUI_CanvasCellNodePrs::height() const
{
- MESSAGE("SUPERVGUI_CanvasCellNodePrs::height() begin");
+//MESSAGE("SUPERVGUI_CanvasCellNodePrs::height() begin");
return getTitleHeight();
}
break;
}
- cout<<"=================>>> setState from CELL!"<<endl;
canvas()->setChanged(getStatusRect());
- cout<<"=================>>> before canvas()->update()!"<<endl;
canvas()->update();
- cout<<"=================>>> after canvas()->update()!"<<endl;
}
public:
SUPERVGUI_CanvasCellNodePrs(QCanvas* theCanvas, SUPERVGUI_CanvasCellNode* theNode);
- virtual ~SUPERVGUI_CanvasCellNodePrs() {}
+ virtual ~SUPERVGUI_CanvasCellNodePrs();
virtual void moveBy(double dx, double dy);
myIsControl = true;
}
+SUPERVGUI_CanvasCellNode::~SUPERVGUI_CanvasCellNode()
+{
+}
+
QPopupMenu* SUPERVGUI_CanvasCellNode::getPopupMenu(QWidget* theParent)
{
QPopupMenu* popup = SUPERVGUI_CanvasNode::getPopupMenu(theParent);
}
void SUPERVGUI_CanvasCellNode::sync() {
- MESSAGE("===> SUPERVGUI_CanvasCellNode::sync() " << getEngine()->Name() << ", state " << getEngine()->State());
-
const bool isExecuting = getMain()->getDataflow()->IsExecuting();
//if getEngine() is a MacroNode then set it state to state of its subgraph
if ( getEngine()->IsMacro() && isExecuting ) {
SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasCellNode::createPrs() const
{
- MESSAGE(" -> SUPERVGUI_CanvasCellNode::createPrs()");
SUPERVGUI_CanvasNodePrs* aPrs =
new SUPERVGUI_CanvasCellNodePrs(getMain()->getCanvasArray(),
(SUPERVGUI_CanvasCellNode*)this);
- MESSAGE(" -> SUPERVGUI_CanvasCellNode::createPrs() 11");
return aPrs;
}
SUPERVGUI_CanvasCellNode(QObject* theParent,
SUPERVGUI_Main* theMain,
SUPERV_CNode theNode);
- virtual ~SUPERVGUI_CanvasCellNode() {}
+ virtual ~SUPERVGUI_CanvasCellNode();
virtual QPopupMenu* getPopupMenu(QWidget* theParent);
// create node ports
isIgnore = true;
- //cout << " get port list... " ;
SUPERV_Ports aPortList = myNode->Ports();
- //cout << aPortList->length() << endl;
for (int i = 0; i < aPortList->length(); i++) {
createPort(aPortList[i].in());
}
- //cout << " get stream port list... " ;
SUPERV_StreamPorts aStreamPortList = myNode->StreamPorts();
- //cout << aStreamPortList->length() << endl;
for (int i = 0; i < aStreamPortList->length(); i++) {
createStreamPort(aStreamPortList[i].in());
}
isIgnore = false;
QCanvasItemList anIL2 = ((QCanvas*)parent())->allItems();
- cout<<" ===> 1 conatructor CanvasNode : CanvasArray has "<<anIL2.count()<<" children!"<<endl;
}
SUPERVGUI_CanvasNode::~SUPERVGUI_CanvasNode()
{
isIgnore = true;
- if (myPrs) delete myPrs;
+ if ( myPrs ) {
+ delete myPrs;
+ myPrs = 0;
+ }
}
void SUPERVGUI_CanvasNode::setDestroyed()
getPrs()->hide();
}
-SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasNode::getPrs() const
+SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasNode::getPrs()
{
- if (myPrs == 0) {
- ((SUPERVGUI_CanvasNode*)this)->myPrs = createPrs();
- }
+ if ( !myPrs )
+ myPrs = createPrs();
+
return myPrs;
}
return new SUPERVGUI_CanvasNodePrs(myMain->getCanvas(), (SUPERVGUI_CanvasNode*)this);
}
-void SUPERVGUI_CanvasNode::createPort(SUPERV::Port_ptr thePort) const
+void SUPERVGUI_CanvasNode::createPort(SUPERV::Port_ptr thePort)
{
SUPERVGUI_CanvasPort* aPort = 0;
if (thePort->IsInput())
}
}
-void SUPERVGUI_CanvasNode::createStreamPort(SUPERV::StreamPort_ptr thePort) const
+void SUPERVGUI_CanvasNode::createStreamPort(SUPERV::StreamPort_ptr thePort)
{
SUPERVGUI_CanvasPort* aPort = 0;
if (thePort->IsInput())
void SUPERVGUI_CanvasNode::merge()
{
- //MESSAGE("===> SUPERVGUI_CanvasNode::merge() " << myNode->Name());
// synchronize port list
bool update = false;
isIgnore = true;
SUPERVGUI_CanvasPort* aPort;
QObjectList* aPortList = queryList("SUPERVGUI_CanvasPort");
- //cout << " get port list... " ;
SUPERV_Ports aPorts = myNode->Ports();
- //cout << aPorts->length() << endl;
for (int i = 0; i < aPorts->length(); i++) {
aPort = (SUPERVGUI_CanvasPort*)
child(myMain->getCanvas()->getPortName(aPorts[i].in()), "SUPERVGUI_CanvasPort");
if (aPort) {
- //cout << " update port " << aPort->name() << endl;
aPortList->removeRef(aPort);
aPort->update();
}
else {
- //cout << " create port " << myMain->getCanvas()->getPortName(aPorts[i].in()) << endl;
createPort(aPorts[i].in());
update = true;
}
}
- //cout << " get stream port list... " ;
SUPERV_StreamPorts aStreamPorts = myNode->StreamPorts();
- //cout << aStreamPorts->length() << endl;
for (int i = 0; i < aStreamPorts->length(); i++) {
aPort = (SUPERVGUI_CanvasPort*)
child(myMain->getCanvas()->getPortName(aStreamPorts[i].in()), "SUPERVGUI_CanvasPort");
if (aPort) {
- //cout << " update stream port " << aPort->name() << endl;
aPortList->removeRef(aPort);
aPort->update();
}
else {
- //cout << " create stream port " << myMain->getCanvas()->getPortName(aStreamPorts[i].in()) << endl;
createPort(aStreamPorts[i].in());
update = true;
}
}
- //cout << " remove inexistant " << endl;
QObjectListIt it(*aPortList);
while ((aPort=(SUPERVGUI_CanvasPort*)it.current()) != 0) {
++it;
}
void SUPERVGUI_CanvasNode::sync() {
- //MESSAGE("===> SUPERVGUI_CanvasNode::sync() " << myNode->Name() << ", state " << myNode->State());
-
const bool isExecuting = myMain->getDataflow()->IsExecuting();
- //if myNode is a MacroNode then set it state to state of its subgraph
if ( myNode->IsMacro() && isExecuting ) {
// get SubGraph from MacroNode
SUPERV_Graph aMacro = SUPERV::Graph::_narrow(myNode);
virtual void showAll();
virtual bool setNodeName(QString aName);
- SUPERV_CNode getEngine() const { return myNode; }
- SUPERVGUI_Main* getMain() const { return myMain; }
- SUPERVGUI_CanvasNodePrs* getPrs() const;
+ SUPERV_CNode getEngine() const { return myNode; }
+ SUPERVGUI_Main* getMain() const { return myMain; }
+ SUPERVGUI_CanvasNodePrs* getPrs();
bool isWarning();
bool isStep();
SUPERV_INode getInlineNode() const { return SUPERV::INode::_narrow(myNode); }
SUPERV_GNode getGotoNode() const { return SUPERV::GNode::_narrow(myNode); }
SUPERV_LNode getLoopNode() const { return SUPERV::LNode::_narrow(myNode); }
- SUPERV_ELNode getEndLoopNode() const { return SUPERV::ELNode::_narrow(myNode); }
+ SUPERV_ELNode getEndLoopNode() const { return SUPERV::ELNode::_narrow(myNode);}
SUPERV_SNode getSwitchNode() const { return SUPERV::SNode::_narrow(myNode); }
- SUPERV_ESNode getEndSwitchNode() const { return SUPERV::ESNode::_narrow(myNode); }
- SUPERV_Graph getMacroNode() const { return SUPERV::Graph::_narrow(myNode); }
+ SUPERV_ESNode getEndSwitchNode() const { return SUPERV::ESNode::_narrow(myNode);}
+ SUPERV_Graph getMacroNode() const { return SUPERV::Graph::_narrow(myNode); }
SUPERV_Port createInPort();
SUPERV_Port createOutPort();
void exportToLib();
protected:
+ // redefined by most of CanvasNode successors
virtual SUPERVGUI_CanvasNodePrs* createPrs() const;
- virtual void createPort(SUPERV::Port_ptr thePort) const;
- virtual void createStreamPort(SUPERV::StreamPort_ptr thePort) const;
+
+ void createPort(SUPERV::Port_ptr thePort);
+ void createStreamPort(SUPERV::StreamPort_ptr thePort);
virtual bool eventFilter(QObject* o, QEvent* e);
SUPERVGUI_BrowseNodeDlg* myBrowseDlg;
// create in/out connection points prs
myPointIn = new SUPERVGUI_CanvasHookPrs(theCanvas, this, true);
myPointOut = new SUPERVGUI_CanvasHookPrs(theCanvas, this, false);
- }
- cout<<" ===> 0.2 conatructor NodePrs : CanvasArray has ......"<<endl;
- //setZ(0);
-
- cout<<" ===> 0.3 conatructor NodePrs : CanvasArray has ......"<<endl;
- if (!myCellPrs) {
- cout<<" ===> 0.35 conatructor NodePrs : CanvasArray has ......"<<endl;
setZ(0);
setState(myNode->getEngine()->State());
updatePorts();
}
- cout<<" ===> 0.4 conatructor NodePrs : CanvasArray has ......"<<endl;
-
QCanvasItemList anIL2 = canvas()->allItems();
- cout<<" ===> 1 conatructor NodePrs : CanvasArray has "<<anIL2.count()<<" children!"<<endl;
}
SUPERVGUI_CanvasNodePrs::~SUPERVGUI_CanvasNodePrs()
{
MESSAGE("SUPERVGUI_CanvasNodePrs::~SUPERVGUI_CanvasNodePrs");
- if (!myCellPrs) {
- if (myPointIn) delete myPointIn;
- if (myPointOut) delete myPointOut;
+ if ( !myCellPrs ) {
+ if ( myPointIn ) {
+ delete myPointIn;
+ myPointIn = 0;
+ }
+ if ( myPointOut ) {
+ delete myPointOut;
+ myPointOut = 0;
+ }
}
hide();
}
SUPERVGUI_CanvasHookPrs::~SUPERVGUI_CanvasHookPrs()
{
hide();
- if (myLine) {
+ if ( myLine ) {
delete myLine;
myLine = 0;
}
QObject* SUPERVGUI_CanvasHookPrs::getObject() const
{
QObject* anObj = 0;
- if (myNodePrs)
+ if ( myNodePrs )
anObj = myNodePrs->getNode();
- else if (myPortPrs)
+ else if ( myPortPrs )
anObj = myPortPrs->getPort();
return anObj;
}
void SUPERVGUI_CanvasView::contentsMousePressEvent(QMouseEvent* theEvent)
{
- // MESSAGE("===> SUPERVGUI_CanvasView::contentsMousePressEvent(...) ");
myPoint = inverseWorldMatrix().map(theEvent->pos());
myGlobalPoint = theEvent->globalPos();
myCurrentItem = 0;
void SUPERVGUI_CanvasView::contentsMouseReleaseEvent(QMouseEvent* theEvent)
{
- // MESSAGE("===> SUPERVGUI_CanvasView::contentsMouseReleaseEvent(...) ");
if (myTimer->isActive()) myTimer->stop();
if (myCurrentItem) {
void SUPERVGUI_CanvasView::contentsMouseDoubleClickEvent(QMouseEvent* theEvent)
{
- // MESSAGE("===> SUPERVGUI_CanvasView::contentsMouseDoubleClickEvent(...) ");
QPoint p = inverseWorldMatrix().map(theEvent->pos());
// compute collision rectangle
void SUPERVGUI_CanvasView::endSketch(SUPERVGUI_CanvasPort* thePort)
{
- // MESSAGE("===> SUPERVGUI_CanvasView::endSketch(" << thePort->name() << ")");
if (!myIsLinkCreating) return;
if (myLinkBuilder && myLinkBuilder->canCreateEngine(thePort)) {
fclose( myLogFile );
}
- //delete myCanvas;
// delete notification; // kloss : nota bene : quand un datalow est detruit : verifier que les canaux de notification sont aussi detruit
notification->_remove_ref(); // kloss : nota bene : quand un datalow est detruit : verifier que les canaux de notification sont aussi detruit