void ChooseTypeDialog::okButtonClicked() { if (mUi->nodeRadioButton->isChecked()) { AddNodeDialog *nodeDialog = new AddNodeDialog(mDiagram, mEditorManagerProxy, parentWidget()); connect(nodeDialog, &AddNodeDialog::jobDone, this, &ChooseTypeDialog::jobDone); nodeDialog->setModal(true); nodeDialog->show(); } else if (mUi->edgeRadioButton->isChecked()) { EdgePropertiesDialog *edgeDialog = new EdgePropertiesDialog(mDiagram, mEditorManagerProxy, parentWidget()); connect(edgeDialog, &EdgePropertiesDialog::jobDone, this, &ChooseTypeDialog::jobDone); edgeDialog->setModal(true); edgeDialog->show(); } }
void MainWindow::on_actionAddNode_triggered() { if (0 == xml_doc_ptr_) return; AddNodeDialog dialog; if (QDialog::Accepted != dialog.exec()) return; QString node_name = dialog.GetNodeName(); xmlNodePtr new_node = xmlNewNode(0, BAD_CAST node_name.toUtf8().data()); if (0 == new_node) { QMessageBox::critical(this, tr("Создание узла XML"), tr("Ошибка создания узла %1").arg(node_name), QMessageBox::Ok); return; } QTreeWidgetItem *current_item = 0; xmlNodePtr root_node = xmlDocGetRootElement(xml_doc_ptr_); if (0 == root_node) { // Пустой документ xmlDocSetRootElement(xml_doc_ptr_, new_node); } else { current_item = ui_->xml_tree->currentItem(); xmlNodePtr parent_node = current_item ? GetNode(current_item): root_node; if (0 == xmlAddChild(parent_node, new_node)) { QMessageBox::critical(this, tr("Создание узла XML"), tr("Ошибка создания дочернего узла %1") .arg(node_name), QMessageBox::Ok); return; } } AddItem(new_node, current_item); SetModified(true); }