#include "CodeGenerator.h" #include "ui_CodeGenerator.h" #include "codebuilder/CodeBuilder.h" #include "codebuilder/DefaultConfigs.h" #include "UserConfiguration.h" #include CodeGenerator::CodeGenerator(QWidget *parent) : PlgPage(parent), ui(new Ui::CodeGenerator) { ui->setupUi(this); ui->generatedCodeEditor->setFont(UserConfiguration::instance()->codeFont()); ui->generatedCodeEditor->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); } CodeGenerator::~CodeGenerator() { delete ui; } void CodeGenerator::Init(std::shared_ptr catalog, QString query, std::shared_ptr dbres) { m_catalog = catalog; m_query = query; m_dbres = dbres; generateCode(); } void CodeGenerator::on_updateCodeButton_clicked() { generateCode(); } void CodeGenerator::generateCode() { QString struct_name = ui->structNameEdit->text(); QString buffer; QTextStream stream(&buffer); CodeBuilder builder; builder.setLanguageConfig(getPglabCppLanguageConfig(m_catalog)); builder.GenCodeForExecutingQuery(stream, m_query, *m_dbres, struct_name); stream.flush(); ui->generatedCodeEditor->setPlainText(buffer); // QApplication::clipboard()->setText(buffer); }