RasterProcessTool/Toolbox/KJ135WBJYAlgInterfaceToolbox/QWBFZAlgComponetXmlParamsDi...

133 lines
3.9 KiB
C++
Raw Normal View History

#include "QWBFZAlgComponetXmlParamsDialog.h"
#include "ui_QWBFZAlgComponetXmlParamsDialog.h"
#include <QFileDialog>
#include <QMessageBox>
2025-05-10 18:34:49 +00:00
#include "WBFZAlgComponetXmlParaseOperator.h"
#include "FileOperator.h"
QWBFZAlgComponetXmlParamsDialog::QWBFZAlgComponetXmlParamsDialog(QWidget *parent)
: QDialog(parent),
ui(new Ui::QWBFZAlgComponetXmlParamsDialogClass)
{
ui->setupUi(this);
2025-05-10 19:04:56 +00:00
// <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>-<2D><>
QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(OnacceptButton_Clicked()));
QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(OncancelButton_Clicked()));
}
QWBFZAlgComponetXmlParamsDialog::~QWBFZAlgComponetXmlParamsDialog()
2025-05-10 18:34:49 +00:00
{
delete ui;
delete xmlParseOperator;
}
2025-05-10 19:04:56 +00:00
void QWBFZAlgComponetXmlParamsDialog::OnacceptButton_Clicked()
{
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ֵ
QString workspacePath = workspacePathWidget->getValue();
qDebug() << "workspacePath:" << workspacePath;
QMap<QString, QString> parameterMap;
for (long i = 0; i < parameterWidgetList.size(); i++)
{
AbstractComponentWidget* parameterWidget = parameterWidgetList.at(i);
QString parameterValue = parameterWidget->getValue();
qDebug() << "parameterValue:" << parameterValue;
parameterMap.insert(parameterWidget->getParaName(), parameterValue);
}
// 1. <20><>ȡxml<6D>ļ<EFBFBD>ģ<EFBFBD><C4A3>·<EFBFBD><C2B7>
QString formatxmlpath = this->formatxmlString;
// 2. <20><>ȡxml<6D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
QString filepath = QFileDialog::getSaveFileName(this, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>xml<EFBFBD>ļ<EFBFBD>", "", u8"xml<EFBFBD>ļ<EFBFBD>(*.xml)");
if (filepath.isEmpty())
{
QMessageBox::warning(this, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>xml<EFBFBD>ļ<EFBFBD>");
return;
}
else {
qDebug() << "filepath:" << filepath;
}
xmlParseOperator = new WBFZAlgComponetXmlParaseOperator(this);
xmlParseOperator->writeXmlFile(formatxmlString, filepath, workspacePath,parameterMap);
// 3. <20>رմ<D8B1><D5B4><EFBFBD>
QMessageBox::information(nullptr, u8"<EFBFBD><EFBFBD>ʾ", u8"д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
void QWBFZAlgComponetXmlParamsDialog::OncancelButton_Clicked()
{
this->close();
}
2025-05-10 18:34:49 +00:00
void QWBFZAlgComponetXmlParamsDialog::loadXmlFile(const QString& fileName)
{
if (nullptr != xmlParseOperator)
{
delete xmlParseOperator;
xmlParseOperator = nullptr;
}
else {}
2025-05-10 19:04:56 +00:00
this->formatxmlString = fileName;
2025-05-10 18:34:49 +00:00
// <20><><EFBFBD><EFBFBD>xml<6D><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xmlParseOperator = new WBFZAlgComponetXmlParaseOperator(this);
xmlParseOperator->loadXmlFile(fileName);
// <20><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ui
// 1. workspace·<65><C2B7>
workspacePathWidget = new FileSelectWidget(this);
workspacePathWidget->setParaName("WorkSpace");
workspacePathWidget->setParaChsName(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>·<EFBFBD><EFBFBD>");
workspacePathWidget->setDescription(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>·<EFBFBD><EFBFBD>");
workspacePathWidget->setDatatype(u8"string");
2025-05-10 19:04:56 +00:00
workspacePathWidget->setComponentType(ComponentType::FolderSelect);
2025-05-10 18:34:49 +00:00
workspacePathWidget->initUI();
ui->verticalLayout_param->addWidget(workspacePathWidget);
// 2. <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
QList < WBFZAlgComponetXmlParamenterItem*> parameterList = xmlParseOperator->getParameterList();
for (long i = 0; i < parameterList.size(); i++)
{
WBFZAlgComponetXmlParamenterItem* item = parameterList.at(i);
qDebug() << "item->getParaName():" << item->getParaName();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AbstractComponentWidget* parameterWidget = createComponentWidgetFactory(
item->getParaName(),
item->getParaChsName(),
item->getDatatype(),
item->getParaType(),
item->getDescription(),
this);
//parameterWidget->initUI();
ui->verticalLayout_param->addWidget(parameterWidget);
this->parameterWidgetList.append(parameterWidget);
}
}
void WBFZAlgComponetLoadXmlParamsProcess()
{
QString xmlFileName = QFileDialog::getOpenFileName(nullptr, u8"ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xml<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", "", u8"xml<EFBFBD>ļ<EFBFBD>(*.xml)");
if (xmlFileName.isEmpty())
{
QMessageBox::warning(nullptr, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xml<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
return;
}
else {
2025-05-08 15:00:13 +00:00
// TODO: <20><><EFBFBD><EFBFBD>xml<6D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
2025-05-10 18:34:49 +00:00
qDebug() << "xmlFileName:" << xmlFileName;
2025-05-10 18:34:49 +00:00
QWBFZAlgComponetXmlParamsDialog* dialog = new QWBFZAlgComponetXmlParamsDialog();
dialog->setWindowTitle(QString(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xml<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>-%1").arg(getFileNameFromPath(xmlFileName)));
dialog->loadXmlFile(xmlFileName);
dialog->show();
return;
}
2025-05-08 15:00:13 +00:00
return;
}