You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/GUIDialog/GUICalculateDialog/BoundaryDeleteDialog.cpp

72 lines
2.4 KiB
C++

#include "BoundaryDeleteDialog.h"
#include "ui_BoundaryDeleteDialog.h"
#include "BoundaryWidget.h"
#include "GUIFrame/MainWindow.h"
#include "GUIFrame/PropertyWidget.h"
#include "OperatorsInterface/ParaWidgetInterfaceOperator.h"
#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h"
#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h"
#include "FITK_Interface/FITKInterfaceFlowOF/FITKOFBoundary.h"
#include "FITK_Interface/FITKInterfaceFlowOF/FITKOFBoundaryTypeManager.h"
#include "FITK_Interface/FITKInterfaceFlowOF/FITKOFPhysicsData.h"
namespace GUI
{
BoundaryDeleteDialog::BoundaryDeleteDialog(Interface::FITKOFBoundary* obj, EventOper::ParaWidgetInterfaceOperator * oper) :
GUIDialogBase(FITKAPP->getGlobalData()->getMainWindow()), _obj(obj), _oper(oper)
{
_ui = new Ui::BoundaryDeleteDialog();
_ui->setupUi(this);
if (_obj) {
QString text = tr("Delete %1").arg(_obj->getDataObjectName());
_ui->label_Name->setText(text);
}
setWindowTitle(tr("Boundary Condition Delete"));
}
BoundaryDeleteDialog::~BoundaryDeleteDialog()
{
if (_ui)delete _ui;
}
void BoundaryDeleteDialog::on_pushButton_OK_clicked()
{
if (_obj == nullptr)return;
Interface::FITKOFPhysicsData* physicsData = FITKAPP->getGlobalData()->getPhysicsData<Interface::FITKOFPhysicsData>();
if (physicsData == nullptr)return;
Interface::FITKOFBoundaryManager* manager = physicsData->getBoundaryManager();
if (manager == nullptr)return;
GUI::MainWindow* mainWin = dynamic_cast<GUI::MainWindow*>(FITKAPP->getGlobalData()->getMainWindow());
if (mainWin == nullptr)return;
auto propertyWidget = mainWin->getPropertyWidget();
if (propertyWidget == nullptr)return;
//清除当前数据对应的界面
BoundaryWidget* boundWidget = dynamic_cast<BoundaryWidget*>(propertyWidget->getCurrentWidget());
if (boundWidget) {
if (_obj == boundWidget->getCurrentObj()) {
propertyWidget->init();
}
}
//清除数据
manager->removeDataByID(_obj->getDataObjectID());
//执行操作器进行刷新
if (_oper) {
_oper->execProfession();
}
this->accept();
}
void BoundaryDeleteDialog::on_pushButton_Cancel_clicked()
{
this->reject();
}
}