void MainWindow::buttonClicked() { ui->dodajDete->setDisabled(true); ui->lineEdit->setDisabled(true); if(depth == 0 ){ std::string formula = ui->lineEdit->text().toUtf8().constData(); formula += " ;"; std::ostringstream stream; qDebug() << QString::fromStdString(formula); YY_BUFFER_STATE buffer = yy_scan_string(formula.c_str()); if(yyparse() == 1){ qDebug() << "Pa to ti ne radi"; } qreal rect_width = formula.length()*PARAMETER; qreal rect_height = 20; int rect_x = 85; int rect_y = 180; std::vector<Formula> tmp_vec = std::vector<Formula>(); parsed_formula->getAtoms(tmp_vec); QVector<Formula> assumptions = QVector<Formula>::fromStdVector(tmp_vec); Node* item = new Node( parsed_formula, rect_width, rect_height, rect_x, rect_y, nullptr, assumptions); scene->addNode(item); } depth += 15; }
void MainWindow::chooseFileClicked() { ui->dodajDete->setDisabled(true); ui->lineEdit->setDisabled(true); std::ostringstream stream; if(depth == 0 ){ QString file_name = QFileDialog::getOpenFileName(this, tr("Učitaj iz fajla"), QDir::currentPath(), tr("*.for")); qDebug() << file_name; QFile f(file_name); if (!f.open(QFile::ReadOnly | QFile::Text)){ QMessageBox msgBox; msgBox.setWindowTitle("Error!"); msgBox.setText("Can`t open file"); msgBox.setDetailedText("Unable to open file for reading"); msgBox.exec(); } QTextStream in(&f); stream << in.readAll().toUtf8().constData(); std::string formula = stream.str(); formula += " ;"; qDebug() << QString::fromStdString(formula); YY_BUFFER_STATE buffer = yy_scan_string(formula.c_str()); if(yyparse() == 1){ qDebug() << "Pa to ti ne radi"; } qreal rect_width = formula.length()*PARAMETER; qreal rect_height = 20; int rect_x = 85; int rect_y = 180; std::vector<Formula> tmp_vec = std::vector<Formula>(); parsed_formula->getAtoms(tmp_vec); QVector<Formula> assumptions = QVector<Formula>::fromStdVector(tmp_vec); Node* item = new Node( parsed_formula, rect_width, rect_height, rect_x, rect_y, nullptr, assumptions); scene->addNode(item); } }
void getAtoms(std::vector<Formula> atoms){ _op->getAtoms(atoms); }