DiagramDesigner/source/renameModel.cpp

152 lines
4.1 KiB
C++

#include <QMessageBox>
#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<projectModelDlg*>(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<QString,QJsonObject> 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<QString,QJsonObject> 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();
}