示例#1
0
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();
	}
}
示例#2
0
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);
}