wip: codegenerator, basic widget present for showing the generated code and specifying
parameters. Some code is also generated but it is not complete yet. minimum still required - field assignments - properly format and escape the query string
This commit is contained in:
parent
daf9536bed
commit
f5145f36ed
19 changed files with 380 additions and 32 deletions
51
pglab/CodeGenerator.cpp
Normal file
51
pglab/CodeGenerator.cpp
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#include "CodeGenerator.h"
|
||||
#include "ui_CodeGenerator.h"
|
||||
#include "codebuilder/CodeBuilder.h"
|
||||
#include "codebuilder/DefaultConfigs.h"
|
||||
#include "UserConfiguration.h"
|
||||
#include <QTextStream>
|
||||
|
||||
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(QString query, std::shared_ptr<const Pgsql::Result> dbres)
|
||||
{
|
||||
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(getDefaultCppLanguageConfig());
|
||||
builder.GenCodeForExecutingQuery(stream, m_query, *m_dbres, struct_name);
|
||||
stream.flush();
|
||||
ui->generatedCodeEditor->setPlainText(buffer);
|
||||
// QApplication::clipboard()->setText(buffer);
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue