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
|