LAMPCAE/src/ProjectTree/DialogImport.cpp

166 lines
4.7 KiB
C++
Raw Normal View History

2023-05-08 06:32:41 +00:00
#include "DialogImport.h"
2023-12-07 09:20:26 +00:00
#include "meshData/meshSingleton.h"
#include "meshData/meshSet.h"
2023-05-08 06:32:41 +00:00
#include "ModelData/modelDataBaseExtend.h"
#include <QMap>
#include <QDebug>
#include <QMessageBox>
#include "PythonModule/PyAgent.h"
#include "ModelData/modelDataSingleton.h"
#include "ModelData/modelDataBase.h"
2023-12-07 09:20:26 +00:00
#include "geometry/geometryData.h"
#include "geometry/geometrySet.h"
#include "geometry/GeoComponent.h"
2023-05-08 06:32:41 +00:00
2023-12-07 09:20:26 +00:00
namespace ProjectTree {
ImportDialog::ImportDialog(GUI::MainWindow* mainwindow, ModelData::ModelDataBaseExtend* data,
ImportType t)
: ModuleBase::ComponentSelectDialogBase(mainwindow, nullptr, nullptr)
, _type(t)
2023-05-08 06:32:41 +00:00
{
_data = data;
init();
}
void ImportDialog::init()
{
/*switch (_type)
{
case ProjectTree::None:
break;
case ProjectTree::Geometry:
initGeo();
break;
case ProjectTree::MeshSet:
initMeshSet();
break;
default:
break;
}*/
// initGeo();
initMeshSet();
initGeoComponent();
}
void ImportDialog::accept()
{
/*switch (_type)
{
case ProjectTree::None:
break;
case ProjectTree::Geometry:
acceptGeo();
break;
case ProjectTree::MeshSet:
acceptMeshSet();
break;
default:
break;
}*/
// acceptGeo();
QMap<int, QString> idname = this->getSelectedItemIDNames();
2023-12-07 09:20:26 +00:00
QList<int> ids = idname.keys();
QStringList addIdValues{};
for(int id : ids)
2023-05-08 06:32:41 +00:00
addIdValues << QString::number(id);
2023-12-07 09:20:26 +00:00
int caseID = _data->getID();
QString code =
QString("Case.importComponents(%1,\"%2\")").arg(caseID).arg(addIdValues.join(" "));
2023-05-08 06:32:41 +00:00
Py::PythonAgent::getInstance()->submit(code);
ComponentSelectDialogBase::accept();
}
void ImportDialog::initGeo()
{
2023-12-07 09:20:26 +00:00
Geometry::GeometryData* geoData = Geometry::GeometryData::getInstance();
const int n = geoData->getGeometrySetCount();
QList<int> geoIDs = _data->getGeometryList();
for(int i = 0; i < n; ++i) {
Geometry::GeometrySet* set = geoData->getGeometrySetAt(i);
QString name = set->getName();
int id = set->getID();
QString icon = ":/QUI/icon/geometry.png";
if(geoIDs.contains(id))
2023-05-08 06:32:41 +00:00
appendItemToSelectedList(name, id, icon);
else
appendItemToAvailableList(name, id, icon);
}
}
2023-12-07 09:20:26 +00:00
2023-05-08 06:32:41 +00:00
void ImportDialog::initMeshSet()
{
2023-12-07 09:20:26 +00:00
MeshData::MeshData* meshData = MeshData::MeshData::getInstance();
const int n = meshData->getMeshSetCount();
QList<int> compIDs = _data->getMeshSetList();
for(int i = 0; i < n; ++i) {
MeshData::MeshSet* set = meshData->getMeshSetAt(i);
QString name = set->getName();
int id = set->getID();
QString icon = ":/QUI/icon/node.png";
if(set->getSetType() == MeshData::Element)
2023-05-08 06:32:41 +00:00
icon = ":/QUI/icon/mesh.png";
2023-12-07 09:20:26 +00:00
if(compIDs.contains(id))
2023-05-08 06:32:41 +00:00
appendItemToSelectedList(name, id, icon);
else
appendItemToAvailableList(name, id, icon);
}
}
void ImportDialog::initGeoComponent()
{
2023-12-07 09:20:26 +00:00
auto geoData = Geometry::GeometryData::getInstance();
QList<int> geoIDs = _data->getGeoComponentIDList();
foreach(auto aGc, geoData->getGeoComponentList()) {
2023-05-08 06:32:41 +00:00
QString name = aGc->getName();
2023-12-07 09:20:26 +00:00
int id = aGc->getID();
2023-05-08 06:32:41 +00:00
QString icon = ":/QUI/icon/geometry.png";
2023-12-07 09:20:26 +00:00
if(geoIDs.contains(id))
2023-05-08 06:32:41 +00:00
appendItemToSelectedList(name, id, icon);
else
appendItemToAvailableList(name, id, icon);
}
}
void ImportDialog::acceptGeo()
{
QMap<int, QString> idname = this->getSelectedItemIDNames();
2023-12-07 09:20:26 +00:00
QStringList values = idname.values();
QList<int> ids = idname.keys();
QStringList addIdValues;
for(int i = 0; i < ids.size(); ++i) {
2023-05-08 06:32:41 +00:00
addIdValues << QString::number(ids.at(i));
}
2023-12-07 09:20:26 +00:00
int id = _data->getID();
QString code =
QString("Case.importGeometry(%1,\"%2\")").arg(id).arg(addIdValues.join(" ")); //
2023-05-08 06:32:41 +00:00
qDebug() << code;
2023-12-07 09:20:26 +00:00
if(ids.size() > 0)
2023-05-08 06:32:41 +00:00
Py::PythonAgent::getInstance()->submit(code);
ComponentSelectDialogBase::accept();
}
// void ImportDialog::acceptComponents()
// {
// QMap<int, QString> idname = this->getSelectedItemIDNames();
// QList<int> ids = idname.keys();
// QStringList addIdValues{};
// foreach(int id, ids)
// addIdValues << QString::number(id);
// int caseID = _data->getID();
2023-12-07 09:20:26 +00:00
// QString code =
// QString("Case.importGeoComponents(%1,\"%2\")").arg(caseID).arg(addIdValues.join(" "));
2023-05-08 06:32:41 +00:00
// Py::PythonAgent::getInstance()->submit(code);
// }
// void ImportDialog::acceptGeoComponent()
// {
// QMap<int, QString> idname = this->getSelectedItemIDNames();
// QList<int> ids = idname.keys();
// QStringList addIdValues{};
// foreach(int id, ids)
// addIdValues << QString::number(id);
// int caseID = _data->getID();
2023-12-07 09:20:26 +00:00
// QString code =
// QString("Case.importGeoComponents(%1,\"%2\")").arg(caseID).arg(addIdValues.join(" "));
2023-05-08 06:32:41 +00:00
// Py::PythonAgent::getInstance()->submit(code);
// }
2023-12-07 09:20:26 +00:00
} // namespace ProjectTree