logplus/DataMgr/src/cdialog.cpp

307 lines
7.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "cdialog.h"
#include <QTableWidget>
#include "ui_cdialog.h"
#include "ui_sigleview.h"
#include "ui_doubleeditview.h"
#include "ui_sigleTextview.h"
#include "geometryutils.h"
#include <QGridLayout>
#include <QMessageBox>
CDialog::CDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::CDialog),
doubleUi(new Ui::DoubleView),
signleUi(new Ui::SignleView),
signleTextUi(new Ui::SignleTextView)
{
m_num=0;
ui->setupUi(this);
// setWindowFlags(Qt::Dialog|Qt::WindowStaysOnTopHint|Qt::WindowTitleHint| Qt::CustomizeWindowHint);
setWindowFlags(Qt::Dialog|Qt::WindowTitleHint| Qt::CustomizeWindowHint);
// QObject::connect(ui->btnOk, SIGNAL(clicked()), this, SLOT(on_btnOk_clicked()));
QObject::connect(ui->cancelbtn, SIGNAL(clicked()), this, SLOT(slotCancel()));
}
CDialog::~CDialog()
{
delete ui;
delete doubleUi;
delete signleUi;
}
void CDialog::slotCancel()
{
reject ();
}
void CDialog::setMessage(const QString &msg)
{
int val=m_num%3;
if(!val)return;
else if(val==1)doubleUi->textEdit_2->setText(msg);
else signleTextUi->textEdit_2->setText(msg);
}
void CDialog::setTitle(const QString &title)
{
this->setWindowTitle(title);
}
void CDialog::closeDialog()
{
this->close();
}
void CDialog::on_btnOk_clicked()
{
//beCheck点击确定时是否需要对字符串有效性检查col1、col2为检查的列序号
int val=m_num%3;
if(m_beCheck&&val<=1)
{
int col,row;
if(!val)
{
col=signleUi->tableWidget->columnCount();
row=signleUi->tableWidget->rowCount();
}
else
{
col=doubleUi->tableWidget->columnCount();
row=doubleUi->tableWidget->rowCount();
}
QString name,colname;
for(int i=0;i<col;i++)
{
if(!val)colname=signleUi->tableWidget->horizontalHeaderItem(i)->text();
else colname=doubleUi->tableWidget->horizontalHeaderItem(i)->text();
if(colname=="导入井名")//QString::fromLocal8Bit("导入井名"))//"导入表名
{
for(int j=0;j<row;j++)
{
int IsCheck=0;
if(!val)IsCheck=signleUi->tableWidget->item(j,0)->checkState();
else IsCheck=doubleUi->tableWidget->item(j,0)->checkState();
if(!IsCheck)continue;
if(!val)name=signleUi->tableWidget->item(j,i)->text() ;
else name=doubleUi->tableWidget->item(j,i)->text() ;
if(name==""){
QMessageBox::warning(NULL,"提示","导入井名不能为空");
return;
}
if(IsValidWellName(name)==0){
QMessageBox::warning(NULL,"提示","'"+name+"'不符合井名命名规则");
return;
}
}
}
else if(colname=="导入表名")//QString::fromLocal8Bit("导入表名"))//"导入表名
{
for(int j=0;j<row;j++)
{
int IsCheck=0;
if(!val)IsCheck=signleUi->tableWidget->item(j,0)->checkState();
else IsCheck=doubleUi->tableWidget->item(j,0)->checkState();
if(!IsCheck)continue;
if(!val)name=signleUi->tableWidget->item(j,i)->text() ;
else name=doubleUi->tableWidget->item(j,i)->text() ;
if(name==""){
QMessageBox::warning(NULL,"提示","导入表名不能为空");
return;
}
}
}
}
}
this->close();
accept();
}
void CDialog::clearControls(QObjectList list)
{
QObject* child=NULL;
for(int i=0;i<list.size();i++)
{
child=list.value(i);
if(NULL != child)
{
delete child;
child=NULL;
}
}
}
//设置对话框类型0-只有列表框1-左列表右文本2-只有文本框
//beCheck点击确定时是否需要对字符串有效性检查
void CDialog::setDialogType(int num,bool beCheck)
{
m_num=num;
m_beCheck=beCheck;
QObjectList lst=ui->widgetView->children();
clearControls(lst);
int val=m_num%3;
if(val==0)
{
signleUi->setupUi(ui->widgetView);
}
else if(val==1)
{
doubleUi->setupUi(ui->widgetView);
}
else
{
signleTextUi->setupUi(ui->widgetView);
}
}
void CDialog::showEvent(QShowEvent *event)
{
QDialog::showEvent(event);
QRect geome= geometry();
QSize dialogSize=geome.size();
QSize sizeView;
int val=m_num%3;
switch (val) {
case 0:
{
sizeView=signleUi->verticalLayout->sizeHint();
}
break;
case 1:
{
sizeView=doubleUi->horizontalLayout->sizeHint();
}
break;
default:
{
sizeView=signleTextUi->horizontalLayout->sizeHint();
}
break;
}
setGeometry(geome.x(),geome.y(),sizeView.width(),dialogSize.height());
}
void CDialog::setTiShi(int No,QString mes)
{
int val=m_num%3;
if(!val&&No>1)return;
if(val>=2&&No>1)return;
switch (No) {
case 0:
{
if(!val)signleUi->label->setText(mes);
else if(val==1)doubleUi->label->setText(mes);
else signleTextUi->label_3->setText(mes);
break;
}
case 1:
{
if(!val)signleUi->label_2->setText(mes);
else if(val==1)doubleUi->label_2->setText(mes);
else signleTextUi->label_4->setText(mes);
break;
}
case 2:
{
doubleUi->label_3->setText(mes);
break;
}
case 3:
{
doubleUi->label_4->setText(mes);
break;
}
}
}
void CDialog::init(int row,int col,QStringList header)
{
int val=m_num%3;
if(val>=2)return;
switch (val) {
case 0:
{
signleUi->tableWidget->setColumnCount(col);
signleUi->tableWidget->setHorizontalHeaderLabels(header);
signleUi->tableWidget->horizontalHeader()->setStretchLastSection(true);
signleUi->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
if(col>=2)signleUi->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
if(col>=3)signleUi->tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
signleUi->tableWidget->setRowCount(row);
break;
}
default:
{
doubleUi->tableWidget->setColumnCount(col);
doubleUi->tableWidget->setHorizontalHeaderLabels(header);
doubleUi->tableWidget->horizontalHeader()->setStretchLastSection(true);
doubleUi->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
if(col>=2)doubleUi->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
if(col>=3)doubleUi->tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
doubleUi->tableWidget->setRowCount(row);
}
break;
}
}
void CDialog::setCheckState(int row, int column, Qt::CheckState state)
{
int val=m_num%3;
if(val>=2)return;
if(!val)signleUi->tableWidget->item(row,column)->setCheckState(Qt::Checked);
else doubleUi->tableWidget->item(row,column)->setCheckState(Qt::Checked);
}
void CDialog::setFlags(int row, int column, Qt::ItemFlags flags)//设置单元格编辑状态
{
int val=m_num%3;
if(val>=2)return;
if(!val)signleUi->tableWidget->item(row,column)->setFlags(flags);
else doubleUi->tableWidget->item(row,column)->setFlags(flags);
}
void CDialog::setItem(int row, int col, QString str)//QTableWidgetItem *item)
{
int val=m_num%3;
if(val>=2)return;
switch (val) {
case 0:
{
signleUi->tableWidget->setItem(row,col,new QTableWidgetItem(str));//new QTableWidgetItem(QString::number(i*col+j)));
//if(!col)signleUi->tableWidget->item(row,0)->setCheckState(Qt::Checked);
break;
}
default:
{
doubleUi->tableWidget->setItem(row,col,new QTableWidgetItem(str));//new QTableWidgetItem(QString::number(i*col+j)));
//if(!col)doubleUi->tableWidget->item(row,0)->setCheckState(Qt::Checked);
}
break;
}
}
QString CDialog::getItem(int row, int column)
{
int val=m_num%3;
if(val>=2)return "";
if(!val)return signleUi->tableWidget->item(row,column)->text();
else return doubleUi->tableWidget->item(row,column)->text();
}
bool CDialog::getCheckState(int row, int column)
{
int val=m_num%3;
if(val>=2)return 0;
if(!val)return signleUi->tableWidget->item(row,column)->checkState();
else return doubleUi->tableWidget->item(row,column)->checkState();
}