myBrowseDlg(0)
{
Trace("SUPERVGUI_CanvasNode::SUPERVGUI_CanvasNode");
- //cout << "===> SUPERVGUI_CanvasNode " << myNode->Name() << endl;
setName(myNode->Name());
}
isIgnore = false;
- //cout << "<=== SUPERVGUI_CanvasNode " << myNode->Name() << endl;
}
SUPERVGUI_CanvasNode::~SUPERVGUI_CanvasNode()
void SUPERVGUI_CanvasNode::merge()
{
- //cout << "===> SUPERVGUI_CanvasNode::merge() " << myNode->Name() << endl;
+ //MESSAGE("===> SUPERVGUI_CanvasNode::merge() " << myNode->Name());
// synchronize port list
bool update = false;
isIgnore = true;
void SUPERVGUI_CanvasNode::sync()
{
- //cout << "===> SUPERVGUI_CanvasNode::sync() " << myNode->Name() << ", state " << myNode->State() << endl;
+ //MESSAGE("===> SUPERVGUI_CanvasNode::sync() " << myNode->Name() << ", state " << myNode->State());
//if myNode is a MacroNode then set it state to state of its subgraph
if (myNode->IsMacro() && myMain->getDataflow()->IsExecuting()) {
return QObject::eventFilter(o, e);
}
-SUPERV_Port SUPERVGUI_CanvasNode::createInPort()
+QStringList SUPERVGUI_CanvasNode::getPortsNamesIN(SUPERV_INode theNode, bool theInputPorts)
{
- SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg();
- if (aDlg->exec()) {
- if (aDlg->getName().isEmpty() || aDlg->getType().isEmpty()) {
- QMessageBox::warning( QAD_Application::getDesktop(), tr( "ERROR" ), tr( "MSG_CANT_CREATE_PORT" ) );
- return NULL;
- }
- SUPERV_INode aNode = getInlineNode();
- if (SUPERV_isNull(aNode)) {
- MESSAGE("SUPERVGUI_CanvasNode::createInPort: Node is wrong type");
- return NULL;
- }
- SUPERV_Ports aPorts = aNode->Ports();
+ QStringList aPNList;
+ if (!SUPERV_isNull(theNode)) {
+ SUPERV_Ports aPorts = theNode->Ports();
for (int i=0; i<aPorts->length(); i++) {
- if (aPorts[i]->IsInput() && aDlg->getName() == QString(aPorts[i]->Name())){
- QMessageBox::warning(0, tr("ERROR"), tr("MSG_PORT_EXIST"));
- return NULL;
+ if (theInputPorts) {
+ if (aPorts[i]->IsInput()) aPNList.append(QString(aPorts[i]->Name()));
}
+ else
+ if (!aPorts[i]->IsInput()) aPNList.append(QString(aPorts[i]->Name()));
}
+ }
+ return aPNList;
+}
+
+SUPERV_Port SUPERVGUI_CanvasNode::createInPort()
+{
+ SUPERV_INode aNode = getInlineNode();
+ if (SUPERV_isNull(aNode)) {
+ MESSAGE("SUPERVGUI_CanvasNode::createInPort: Node is wrong type");
+ return NULL;
+ }
+ SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg(getPortsNamesIN(aNode,true));
+ if (aDlg->exec()) {
SUPERV_Port aPort = aNode->InPort(aDlg->getName().latin1(),
aDlg->getType().latin1());
delete aDlg;
SUPERV_Port SUPERVGUI_CanvasNode::createOutPort()
{
- SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg();
+ SUPERV_INode aNode = getInlineNode();
+ if (SUPERV_isNull(aNode)) {
+ MESSAGE("SUPERVGUI_CanvasNode::createOutPort: Node is wrong type");
+ return NULL;
+ }
+
+ SUPERVGUI_PortParamsDlg* aDlg = new SUPERVGUI_PortParamsDlg(getPortsNamesIN(aNode,false));
if (aDlg->exec()) {
- SUPERV_INode aNode = getInlineNode();
- if (SUPERV_isNull(aNode)) {
- MESSAGE("SUPERVGUI_CanvasNode::createOutPort: Node is wrong type");
- return NULL;
- }
- SUPERV_Ports aPorts = aNode->Ports();
- for (int i=0; i<aPorts->length(); i++) {
- if (!aPorts[i]->IsInput() && aDlg->getName() == QString(aPorts[i]->Name())){
- QMessageBox::warning(0, tr("ERROR"), tr("MSG_PORT_EXIST"));
- return NULL;
- }
- }
SUPERV_Port aPort = aNode->OutPort(aDlg->getName().latin1(),
aDlg->getType().latin1());
delete aDlg;