BrowserOperation * BrowserOperation::new_one(QString s, BrowserNode * p) { OperationData * d = new OperationData(); BrowserOperation * result = new BrowserOperation(s, p, d, d->get_ident()); d->set_browser_node(result, TRUE); return result; }
BrowserOperation * BrowserOperation::new_one(QString s, BrowserNode * p) { OperationData * d = new OperationData(); BrowserOperation * result = new BrowserOperation(s, p, d, d->get_ident()); d->set_browser_node(result, TRUE); QString nameOfClassNode = p->get_name(); //if constructor int lastIndexOfConstructor = 0; //leave members other then operations and attributes in place while(BrowserNode *node = (BrowserNode *)p->child(lastIndexOfConstructor)) { if(UmlOperation != node->get_type() && UmlAttribute != node->get_type()) { lastIndexOfConstructor++; } else break; } while(BrowserNode *node = (BrowserNode *)p->child(lastIndexOfConstructor)) { if(nameOfClassNode == node->get_name()) { lastIndexOfConstructor++; } else break; } if(nameOfClassNode == s) { p->removeChild(result); p->insertChild(lastIndexOfConstructor,result); } //destructor else if(("~" + nameOfClassNode) == s) { p->removeChild(result); p->insertChild(lastIndexOfConstructor,result); } return result; }