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.
126 lines
3.8 KiB
C++
126 lines
3.8 KiB
C++
/**
|
|
* @file TableWidgetFileReadFileDialog.cpp
|
|
* @brief TimePoint文件读取对话框
|
|
* @author YanZhiHui (chanyuantiandao@126.com)
|
|
* @date 2024-04-19
|
|
*/
|
|
#include "TableWidgetFileReadFileDialog.h"
|
|
#include "ui_TableWidgetFileReadFileDialog.h"
|
|
#include <QFileDialog>
|
|
#include <QFileInfo>
|
|
#include <QMessageBox>
|
|
|
|
namespace Comp
|
|
{
|
|
TableWidgetFileReadFileDialog::TableWidgetFileReadFileDialog(QList< int > range, QWidget* parent) : QDialog(parent),
|
|
_ui(new Ui::TableWidgetFileReadFileDialog)
|
|
{
|
|
_ui->setupUi(this);
|
|
if (range.size() == 4)
|
|
{
|
|
_totalRow = range.at(0);
|
|
_totalColumn = range.at(1);
|
|
_startRow = range.at(2) + 1;
|
|
_startColumn = range.at(3) + 1;
|
|
}
|
|
_ui->le_row->setText(QString("%1").arg(_startRow));
|
|
_ui->le_column->setText(QString("%1").arg(_startColumn));
|
|
}
|
|
|
|
TableWidgetFileReadFileDialog::~TableWidgetFileReadFileDialog()
|
|
{
|
|
delete _ui;
|
|
}
|
|
/**
|
|
* @brief 文件选择按钮槽函数
|
|
* @author yanzhihui (chanyuantiandao@126.com)
|
|
* @date 2023-08-14
|
|
*/
|
|
void TableWidgetFileReadFileDialog::on_pb_file_clicked()
|
|
{
|
|
QString file = QFileDialog::getOpenFileName(this, tr("ASCII File Selection"));
|
|
if (!file.isEmpty())
|
|
{
|
|
_ui->le_file->setText(file);
|
|
}
|
|
}
|
|
/**
|
|
* @brief 获取文件路径
|
|
* @return 选择的文件路径
|
|
* @author yanzhihui (chanyuantiandao@126.com)
|
|
* @date 2023-08-14
|
|
*/
|
|
QString TableWidgetFileReadFileDialog::getFile() const
|
|
{
|
|
return _filepath;
|
|
}
|
|
/**
|
|
* @brief 获取开始填充的行数
|
|
* @return 开始填充的行数
|
|
* @author yanzhihui (chanyuantiandao@126.com)
|
|
* @date 2023-08-14
|
|
*/
|
|
int TableWidgetFileReadFileDialog::getStartRow() const
|
|
{
|
|
return _startRow;
|
|
}
|
|
/**
|
|
* @brief 获取开始填充的列数
|
|
* @return 开始填充的列数
|
|
* @author yanzhihui (chanyuantiandao@126.com)
|
|
* @date 2023-08-14
|
|
*/
|
|
int TableWidgetFileReadFileDialog::getStartColumn() const
|
|
{
|
|
return _startColumn;
|
|
}
|
|
/**
|
|
* @brief ok按钮槽函数
|
|
* @author yanzhihui (chanyuantiandao@126.com)
|
|
* @date 2023-08-14
|
|
*/
|
|
void TableWidgetFileReadFileDialog::on_pb_ok_clicked()
|
|
{
|
|
QFileInfo fileInfo(_ui->le_file->text());
|
|
if (!fileInfo.exists())
|
|
{
|
|
QMessageBox::critical(this, tr("Error Information"), tr("File does not exist."));
|
|
return;
|
|
}
|
|
if (!fileInfo.isFile())
|
|
{
|
|
QMessageBox::critical(this, tr("Error Information"), QString(tr("%1: File not found.")).arg(fileInfo.absoluteFilePath()));
|
|
return;
|
|
}
|
|
bool ok;
|
|
QString row = _ui->le_row->text();
|
|
int rowInt = row.toInt(&ok);
|
|
if (!ok || rowInt <= 0 || rowInt > _totalRow)
|
|
{
|
|
QMessageBox::critical(this, tr("Error Information"), QString(tr("Specified start row(%1) is out of range.")).arg(rowInt));
|
|
return;
|
|
}
|
|
QString column = _ui->le_column->text();
|
|
int columnInt = column.toInt(&ok);
|
|
if (!ok || columnInt <= 0 || columnInt > _totalColumn)
|
|
{
|
|
QMessageBox::critical(this, tr("Error Information"), QString(tr("Specified start column(%1) is out of range.")).arg(columnInt));
|
|
return;
|
|
}
|
|
|
|
_filepath = fileInfo.absoluteFilePath();
|
|
_startRow = rowInt;
|
|
_startColumn = columnInt;
|
|
this->accept();
|
|
}
|
|
/**
|
|
* @brief 取消按钮槽函数
|
|
* @author yanzhihui (chanyuantiandao@126.com)
|
|
* @date 2023-08-14
|
|
*/
|
|
void TableWidgetFileReadFileDialog::on_pb_cancel_clicked()
|
|
{
|
|
this->reject();
|
|
}
|
|
} // namespace GUI
|