123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #include "MainWindow.h"
- #include <qfiledialog.h>
- #include <qsettings.h>
- #include <qdatastream.h>
- #include <qfile.h>
- #include <qtextstream.h>
- #include <qmessagebox.h>
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- {
- ui.setupUi(this);
- QSettings setting("config.ini", QSettings::IniFormat);
- ui.modelPath->setText(setting.value("modelPath").toString());
- ui.servicePath->setText(setting.value("servicePath").toString());
- ui.widgetPath->setText(setting.value("widgetPath").toString());
- }
- void MainWindow::onModelPath()
- {
- QString path = QFileDialog::getExistingDirectory(this);
- ui.modelPath->setText(path);
- QSettings setting("config.ini", QSettings::IniFormat);
- setting.setValue("modelPath", path);
- }
- void MainWindow::onServicePath()
- {
- QString path = QFileDialog::getExistingDirectory(this);
- ui.servicePath->setText(path);
- QSettings setting("config.ini", QSettings::IniFormat);
- setting.setValue("servicePath", path);
- }
- void MainWindow::onWidgetPath()
- {
- QString path = QFileDialog::getExistingDirectory(this);
- ui.widgetPath->setText(path);
- QSettings setting("config.ini", QSettings::IniFormat);
- setting.setValue("widgetPath", path);
- }
- void MainWindow::onGenerate()
- {
- QString entityName = ui.entityName->text();
- if(entityName.isEmpty()){
- ui.entityName->setFocus();
- return;
- }
- QString modelName = ui.modelName->text();
- QString serviceName = ui.serviceName->text();
- QString widgetName = ui.widgetName->text();
- if (modelName.isEmpty())
- modelName = entityName + "Model";
- if (serviceName.isEmpty())
- serviceName = entityName + "Service";
- if (widgetName.isEmpty())
- widgetName = entityName + "Widget";
- createModel(modelName, entityName);
- createService(serviceName, entityName);
- if (ui.MultipleSelect->isChecked())
- createMultipleWidget(widgetName, modelName, serviceName, entityName,ui.name->text().trimmed());
- else
- createWidget(widgetName, modelName, serviceName, entityName, ui.name->text().trimmed());
- QMessageBox::information(this, "", "success");
- }
- QString MainWindow::readAll(const QString &filename)
- {
- QFile file(filename);
- if (!file.open(QIODevice::ReadOnly))
- return "";
- QTextStream in(&file);
- in.setCodec("UTF-8");
- QString txt = in.readAll();
- file.close();
- return txt;
- }
- void MainWindow::write(const QString &filename, const QString &content)
- {
- QFile file(filename);
- if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
- return ;
- QTextStream out(&file);
- out.setCodec("UTF-8");
- out << content;
- file.close();
- }
- void MainWindow::createModel(const QString &modelName, const QString &entityName)
- {
- QString modelH = readAll("template/model.h.template");
- modelH = modelH.arg(modelName).arg(entityName);
- QString modelCpp = readAll("template/model.cpp.template");
- modelCpp = modelCpp.arg(modelName).arg(entityName);
- QString path = ui.modelPath->text().trimmed();
- QString modelHFilename = QString("%1/%2.h").arg(path).arg(modelName);
- write(modelHFilename, modelH);
- QString modelCppFilename = QString("%1/%2.cpp").arg(path).arg(modelName);
- write(modelCppFilename, modelCpp);
- }
- void MainWindow::createService(const QString &serviceName, const QString &entityName)
- {
- QString serviceH = readAll("template/service.h.template");
- serviceH = serviceH.arg(serviceName);
- QString serviceCpp = readAll("template/service.cpp.template");
- serviceCpp = serviceCpp.arg(serviceName).arg(entityName);
- QString path = ui.servicePath->text().trimmed();
- QString modelHFilename = QString("%1/%2.h").arg(path).arg(serviceName);
- write(modelHFilename, serviceH);
- QString modelCppFilename = QString("%1/%2.cpp").arg(path).arg(serviceName);
- write(modelCppFilename, serviceCpp);
- }
- void MainWindow::createWidget(const QString &widgetName, const QString &modelName, const QString &serviceName, const QString &entityName, const QString &name)
- {
- QString widgetH = readAll("template/widget.h.template");
- widgetH = widgetH.arg(widgetName).arg(modelName).arg(serviceName);
- QString widgetCpp = readAll("template/widget.cpp.template");
- widgetCpp = widgetCpp.arg(widgetName).arg(entityName).arg(modelName).arg(serviceName).arg(name);
- QString widgetUi = readAll("template/widget.ui.template");
- widgetUi = widgetUi.arg(widgetName);
- QString path = ui.widgetPath->text().trimmed();
- QString widgetHFilename = QString("%1/%2.h").arg(path).arg(widgetName);
- write(widgetHFilename, widgetH);
- QString widgetCppFilename = QString("%1/%2.cpp").arg(path).arg(widgetName);
- write(widgetCppFilename, widgetCpp);
- QString widgetUiFilename = QString("%1/%2.ui").arg(path).arg(widgetName);
- write(widgetUiFilename, widgetUi);
- }
- void MainWindow::createMultipleWidget(const QString &widgetName, const QString &modelName, const QString &serviceName, const QString &entityName,const QString &name)
- {
- QString widgetH = readAll("template/MultipleWidget.h.template");
- widgetH = widgetH.arg(widgetName).arg(modelName).arg(serviceName).arg(entityName);
- QString widgetCpp = readAll("template/MultipleWidget.cpp.template");
- widgetCpp = widgetCpp.arg(widgetName).arg(entityName).arg(modelName).arg(serviceName).arg(name);
- QString widgetUi = readAll("template/MultipleWidget.ui.template");
- widgetUi = widgetUi.arg(widgetName);
- QString path = ui.widgetPath->text().trimmed();
- QString widgetHFilename = QString("%1/%2.h").arg(path).arg(widgetName);
- write(widgetHFilename, widgetH);
- QString widgetCppFilename = QString("%1/%2.cpp").arg(path).arg(widgetName);
- write(widgetCppFilename, widgetCpp);
- QString widgetUiFilename = QString("%1/%2.ui").arg(path).arg(widgetName);
- write(widgetUiFilename, widgetUi);
- }
|