#include #include "renameModel.h" #include "projectModelDlg.h" #include "dataBase.h" #include "ui_renameModel.h" RenameModel::RenameModel(QWidget *parent) : QDialog(parent) , ui(new Ui::renameModel) ,_pParent(nullptr) { ui->setupUi(this); this->setWindowFlags(Qt::FramelessWindowHint | windowFlags()); _pParent = dynamic_cast(parent); initial(); } RenameModel::~RenameModel() { delete ui; } void RenameModel::initial() { connect(ui->btn_ok,&QPushButton::clicked,this,&RenameModel::onOkClicked); connect(ui->btn_cancel,&QPushButton::clicked,this,&RenameModel::onCancelClicked); } void RenameModel::showCenter() { if (!_pParent) { qWarning("No parent widget found; dialog will appear at the default position."); show(); return; } // 父窗口的几何信息 QRect parentRect = _pParent->geometry(); // 对话框的几何信息 int dialogWidth = width(); int dialogHeight = height(); // 计算中心位置 int x = parentRect.x() + (parentRect.width() - dialogWidth) / 2; int y = parentRect.y() + (parentRect.height() - dialogHeight) / 2; // 移动对话框到中心位置并显示 move(x, y); show(); setShowName(); } void RenameModel::setShowName() { if(_pParent) { QString str = _pParent->getProjectName(); ui->lineEdit_name->setText(str); ui->lineEdit_name->setSelection(0,str.length()); } } /*projectState RenameModel::couldSave() { if(_pParent) { QString meta = _pParent->getMetaName(); QString str = ui->lineEdit_name->text(); if(str == QString::fromWCharArray(L"新建")) { return Err; } else { //todo:判断输入的名称是否存在 QMap map = DataBase::GetInstance()->getCheckStateFromManager(str); if(map.isEmpty()) { return NotExist; } else { bool val = _pParent->ifProjectEqual(map); if(val){ return Exist; } else{ return Changed; } } } } }*/ void RenameModel::onOkClicked() { /*if(_pParent) { projectState state = couldSave(); switch(state){ case Err: ui->label_info->setText(QString::fromWCharArray(L"请输入需保存的名称")); break; case NotExist: _pParent->generate(ui->lineEdit_name->text()); ui->label_info->clear(); hide(); break; case Exist: ui->label_info->setText(QString::fromWCharArray(L"该模型已存在")); break; case Changed: QMessageBox msgBox; msgBox.setText(QString::fromWCharArray(L"提示")); msgBox.setInformativeText(QString::fromWCharArray(L"该模型已存在且与同名模型不一致,是否替换库模型?")); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Cancel); int ret = msgBox.exec(); if(ret == QMessageBox::Yes) { QMap mapCheckState = DataBase::GetInstance()->getCheckStateFromManager(ui->lineEdit_name->text()); //获取选择状态 QString sRes = _pParent->modifyProjectModel(mapCheckState); if(!sRes.isEmpty()) { QMessageBox::information(NULL, QString::fromWCharArray(L"提示"), QString::fromWCharArray(L"修改模型成功")); } else { QMessageBox::information(NULL, QString::fromWCharArray(L"提示"), QString::fromWCharArray(L"修改模型失败")); } hide(); } else if(ret == QMessageBox::Cancel) { } ui->label_info->clear(); break; } }*/ } void RenameModel::onCancelClicked() { hide(); ui->label_info->clear(); }