void QPythonParamList::contextMenuEvent(QContextMenuEvent* evt) { QMenu menu(this); QAction* addObjItem = menu.addAction(tr("Add Parameter...")); QAction* editObjItem = menu.addAction(tr("Edit Parameter...")); QAction* delObjItem = menu.addAction(tr("Remove Parameter")); if (currentItem() == NULL) delObjItem->setEnabled(false); QAction* sel = menu.exec(evt->globalPos()); if (sel == addObjItem) { QPythonParamDialog dlg(this); if (dlg.exec() == QDialog::Accepted) addParam(dlg.parameter()); } else if (sel == editObjItem) { QPythonParamDialog dlg(this); dlg.init(fParams[indexOfTopLevelItem(currentItem())]); if (dlg.exec() == QDialog::Accepted) { plPythonParameter param = dlg.parameter(); fParams[indexOfTopLevelItem(currentItem())] = param; QStringList list = makeParamItem(param); for (int i=0; i<list.size(); i++) currentItem()->setText(i, list[i]); } } else if (sel == delObjItem) { delParam(indexOfTopLevelItem(currentItem())); } }
PiSDFGraph::~PiSDFGraph() { while(edges_.getN() > 0) delEdge(edges_[0]); while(bodies_.getN() > 0){ if(bodies_[0]->isHierarchical()){ bodies_[0]->getSubGraph()->~PiSDFGraph(); StackMonitor::free(PISDF_STACK, bodies_[0]->getSubGraph()); } delVertex(bodies_[0]); } while(configs_.getN() > 0) delVertex(configs_[0]); while(inputIfs_.getN() > 0) delVertex(inputIfs_[0]); while(outputIfs_.getN() > 0) delVertex(outputIfs_[0]); while(params_.getN() > 0) delParam(params_[0]); }