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.
nmWTAI-Platform/Src/nmNum/nmSubWxs/nmSubWxsPlotDialogControlle...

82 lines
2.3 KiB
C++

#include "nmSubWxsPlotDialogController.h"
#include "nmDeleteConfirmationDlg.h"
#include "nmPlotDialogContext.h"
#include "nmSwitchOutlineConfirmationDlg.h"
#include "nmWxEditWellPlot.h"
#include "nmWxMeasureDlg.h"
#include "nmWxMeasuringScaleDlg.h"
#include "nmWxPointerPosDlg.h"
namespace
{
// nmSubWxs模块加载时注册绘图弹窗上下文提供者
struct nmSubWxsPlotDialogControllerRegister
{
nmSubWxsPlotDialogControllerRegister()
{
nmPlotDialogContext::setProvider(nmSubWxsPlotDialogController::instance());
}
};
nmSubWxsPlotDialogControllerRegister s_register;
}
// 获取绘图弹窗上下文控制器单例
nmSubWxsPlotDialogController* nmSubWxsPlotDialogController::instance()
{
static nmSubWxsPlotDialogController s_controller;
return &s_controller;
}
// 打开测量比例尺弹窗
bool nmSubWxsPlotDialogController::execMeasuringScaleDialog(const QPointF& pStart, const QPointF& pEnd, double* pLength)
{
nmWxMeasuringScaleDlg dlg(pStart, pEnd, pLength);
return dlg.exec() == QDialog::Accepted;
}
// 创建测量工具弹窗
QWidget* nmSubWxsPlotDialogController::createMeasureDialog(QWidget* pParent)
{
return new nmWxMeasureDlg(pParent);
}
// 创建坐标显示弹窗
QWidget* nmSubWxsPlotDialogController::createPointerPosDialog(QWidget* pParent)
{
return new nmWxPointerPosDlg(pParent);
}
// 确认是否删除图元
bool nmSubWxsPlotDialogController::confirmDeleteObject()
{
nmDeleteConfirmationDlg dialog;
return dialog.exec() == QDialog::Accepted;
}
// 确认是否切换边界类型
bool nmSubWxsPlotDialogController::confirmSwitchOutline()
{
nmSwitchOutlineConfirmationDlg dialog;
return dialog.exec() == QDialog::Accepted;
}
// 打开井编辑弹窗并返回修改后的井数据
bool nmSubWxsPlotDialogController::editWell(QWidget* pParent, ZxDataWell* pZxDataWell, nmDataWellBase* pNmDataWell,
nmDataWellBase*& pModifiedWell)
{
pModifiedWell = nullptr;
nmWxEditWellPlot* pEditWellDlg = new nmWxEditWellPlot(pParent, pZxDataWell, pNmDataWell);
if(pEditWellDlg->exec() != QDialog::Accepted) {
delete pEditWellDlg;
return false;
}
pModifiedWell = pEditWellDlg->getModifiedDataWell();
delete pEditWellDlg;
return true;
}