PlotterHMI/printinfodialog.cpp
huahaiyan 3ce55cebbd 20240308
1、梳理代码,修改绘制会绘制两次的bug;
2、增加正向旋转功能,线宽设置功能;
3、测试压缩算法,完成;
2024-03-08 16:33:05 +08:00

127 lines
4.2 KiB
C++

#include "printinfodialog.h"
#include "ui_printinfodialog.h"
PrintInfoDialog::PrintInfoDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::PrintInfoDialog)
{
ui->setupUi(this);
setWindowModality(Qt::ApplicationModal);
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
//QListView
ui->listView_blockList->setDragEnabled(false); //控件不允许拖动
// 设置listView为不可编辑状态
ui->listView_blockList->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_listViewModel = new QStringListModel(ui->listView_blockList);
ui->listView_blockList->setModel(m_listViewModel);
m_curBlockRow = -1;
m_preView = new MyGraphicsView();
ui->horizontalLayout->addWidget(m_preView);
}
PrintInfoDialog::~PrintInfoDialog()
{
delete ui;
}
void PrintInfoDialog::refreshLanguage()
{
ui->retranslateUi(this);
}
void PrintInfoDialog::on_listView_blockList_clicked(const QModelIndex &index)
{
QString str = "0 - ";
int row = index.row();
QString str1;
if(m_curBlockRow != row)
{
int x = row * PIXMAPWIDTH;
QPoint p;
p.setX(x);
p.setY(0);
m_preView->reflushBlockView(p);
m_curBlockRow = row;
m_curFilesInfo.m_selectBlockNum = row+1;
str = QString::number((m_curFilesInfo.m_selectBlockNum-1)*BLOCK_MM)+" - ";
if(row == m_listViewModel->rowCount() - 1)
{
str1 = QString::number((m_curFilesInfo.m_fileRect.right() - m_curFilesInfo.m_fileRect.left())/(int)M_IDPMM);
}
else
{
str1 = QString::number(m_curFilesInfo.m_selectBlockNum*BLOCK_MM);
}
}
else
{
QPoint p;
p.setX(-1);
p.setY(-1);
m_preView->reflushBlockView(p);
ui->listView_blockList->clearSelection();
m_curBlockRow = -1;
m_curFilesInfo.m_selectBlockNum = 0;
str1 = QString::number(m_curFilesInfo.m_selectBlockNum*BLOCK_MM);
}
ui->label_selectBlockNumVal->setText(QString::number(m_curFilesInfo.m_selectBlockNum)+"("+str+str1+"mm)");
}
void PrintInfoDialog::reflushFileInfo()
{
//刷新块数列表和文件信息
QStringList strList;
strList.clear();
int totalBlocks = m_curFilesInfo.m_totalBlocks;
for(int i = 1; i <= totalBlocks; i++)
{
QString str = QString::number(i) + " " + tr("piece");//块
strList.append(str);
}
m_listViewModel->setStringList(strList);
ui->label_fileNameVal->setText(m_curFilesInfo.m_fileName);
int length = (m_curFilesInfo.m_fileRect.right() - m_curFilesInfo.m_fileRect.left())/M_IDPMM;
int height = (m_curFilesInfo.m_fileRect.bottom() - m_curFilesInfo.m_fileRect.top())/M_IDPMM;
QString WH = QString::number(length) + "x" + QString::number(height)+ "mm";
ui->label_drawWHVal->setText(WH);
ui->label_printNumVal->setText(QString::number(m_curFilesInfo.m_printNum));
ui->label_startPointVal->setText(QString::number(m_curFilesInfo.m_startPoint)+"mm");
ui->label_fileBlockNumVal->setText(QString::number(m_curFilesInfo.m_totalBlocks));
ui->label_currentBlockVal->setText(QString::number(m_curFilesInfo.m_curPrintBlock)+"("+QString::number(m_curFilesInfo.m_curPrintBlock*BLOCK_MM)+"mm)");
ui->label_printedBlockNumVal->setText(QString::number(m_curFilesInfo.m_printedBlockNum)+"("+QString::number(m_curFilesInfo.m_printedBlockNum*BLOCK_MM)+"mm)");
int leaveLength = length - m_curFilesInfo.m_printedBlockNum*BLOCK_MM;
ui->label_leaveBlockNumVal->setText(QString::number(m_curFilesInfo.m_leaveBlockNum)+"("+QString::number(leaveLength)+"mm)");
ui->label_selectBlockNumVal->setText(QString::number(m_curFilesInfo.m_selectBlockNum)+"("+"0 - "+QString::number(m_curFilesInfo.m_selectBlockNum*BLOCK_MM)+"mm)");
}
void PrintInfoDialog::setFilesInfo(McFilesInfo info)
{
m_curFilesInfo = info;
m_preView->cleanView();
if(m_curFilesInfo.m_fileType == TYPE_FILE)
{
m_preView->creatViewPathAndPic(m_curFilesInfo.m_drawPath,m_curFilesInfo.m_pic);//刷新显示
}
else if(m_curFilesInfo.m_fileType == TYPE_IMAGE)
{
m_preView->swithViewByPic(m_curFilesInfo.m_pic);//刷新显示
}
reflushFileInfo();
QDialog::exec();
}
void PrintInfoDialog::on_pushButton_back_clicked()
{
done(0);
}