V6.7.4 release

This commit is contained in:
2026-07-16 15:35:29 +08:00
parent 808a38628e
commit 6425b11a96
15 changed files with 3734 additions and 3068 deletions
+8 -76
View File
@@ -16,6 +16,7 @@
#include <QPalette>
#include "scene/PicScheduleShiftItem.h"
#include "scene/PicCounterItem.h"
#include "scene/PicSceneLoader.h"
#include "Printsetting.h"
#pragma execution_character_set("utf-8")
@@ -48,7 +49,6 @@ TestPrintWidget::TestPrintWidget(QWidget* parent)
dialogFileOperation = new DialogFileOperation(0);
connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
connect(dialogFileOperation,SIGNAL(createSceneImage(QString)),this,SLOT(onCreateSceneImage(QString)));
m_CreateImageFlag = false;
m_pSavePicScene = new QGraphicsScene();
@@ -421,67 +421,14 @@ void TestPrintWidget::on_saveButton_pressed()
}
}
void TestPrintWidget::saveFile(){
QFile file(xmlfileName);
if (!file.open(QFile::WriteOnly | QFile::Text)) { // 只写模式打开文件
qDebug() << QString("Cannot write file %1(%2).").arg(xmlfileName).arg(file.errorString());
return;
}
QXmlStreamWriter writer(&file);
writer.setAutoFormatting(true); // 自动格式化
writer.writeStartDocument("1.0", true); // 开始文档(XML 声明)
writer.writeComment(QString::fromLocal8Bit("Vernon Bach graphic scene file")); // 注释
writer.writeDTD(QString::fromLocal8Bit("<!DOCTYPE VBfiles [ <!ELEMENT VBfiles (VBfile) > <!ELEMENT VBfile (pointer_x,pointer_y,html_src)> <!ELEMENT pointer_x (#PCDATA)><!ELEMENT pointer_y (#PCDATA)><!ELEMENT html_src (#PCDATA)> ]>"));
writer.writeStartElement("VBfiles"); // 开始根元素 <picscene>
writer.writeAttribute("Version", "1.0"); // 属性
QList<QGraphicsItem *> items = pPicScene->items();
int index=0;
foreach (QGraphicsItem *item, items) {
PicTextItem *picText = qgraphicsitem_cast<PicTextItem*>(item);
if (picText == nullptr) continue;
writer.writeStartElement("VBfile"); // 开始子元素 <picscene>
writer.writeTextElement(QString::fromLocal8Bit("pointer_x"), QString::fromLocal8Bit("%1").arg(picText->pos().x()));
writer.writeTextElement(QString::fromLocal8Bit("pointer_y"), QString::fromLocal8Bit("%1").arg(picText->pos().y()));
writer.writeTextElement(QString::fromLocal8Bit("Condition"), QString::fromLocal8Bit("%1").arg(picText->SpecialConditions? 1:0));
writer.writeTextElement(QString::fromLocal8Bit("CatchStartValue"), QString::fromLocal8Bit("%1").arg(picText->CatchCnt1StartValue));
writer.writeTextElement(QString::fromLocal8Bit("CatchValue"), QString::fromLocal8Bit("%1").arg(picText->CatchCnt1CurrValue));
QXmlStreamAttributes attrs;
attrs.append("sourceType", QString::number(picText->sourceType()));
if(picText->sourceType() != SourceType::UNKNOWN) {
picText->saveAttrs(attrs);
}
writer.writeStartElement("itemAttrs");
writer.writeAttributes(attrs);
writer.writeEndElement();
writer.writeTextElement(QString::fromLocal8Bit("html_src"), QString::fromLocal8Bit("my_src"));
//Scene Test 内容用pPicScene2 Item的html 其他的位置信息用pPicScene Item
if(index<items.size()){
PicTextItem *picText = (PicTextItem *)items.at(index);
writer.writeCDATA((picText->toHtml()));
}
index++;
// writer.writeCDATA((picText->toHtml()));
writer.writeEndElement(); // 结束子元素 </picscene>
}
void TestPrintWidget::saveFile()
{
if (m_printSetting) {
writer.writeEmptyElement("PrintSettings");
if(m_printSetting)
PrintSettingModel::saveToXml(m_printSetting->model(), writer);
auto model = m_printSetting->model();
PicSceneLoader::saveSceneToXmlFile(xmlfileName, pPicScene, &model);
} else {
PicSceneLoader::saveSceneToXmlFile(xmlfileName, pPicScene, nullptr);
}
writer.writeEndElement(); // 结束根元素 </picscenes>
writer.writeEndDocument(); // 结束文档
fsync(file.handle());
file.close(); // 关闭文件
}
void TestPrintWidget::onSaveASFile(QString filename,bool Flag){// use for dialogSaveFile class
@@ -963,21 +910,6 @@ void TestPrintWidget::pasteCopiedLayer()
pasteTime++;
}
void TestPrintWidget::onCreateSceneImage(QString filePath)
{
m_CreateImageFlag = true;
m_pSavePicScene->clear();
onFileOpen(filePath,false);
m_pSavePicScene->clearSelection();
QSize size(m_pSavePicScene->itemsBoundingRect().width(),m_pSavePicScene->itemsBoundingRect().height());
QImage image(size,QImage::Format_ARGB32);
image.fill(0x00ffffff);//填充白色
QPainter painter(&image);
m_pSavePicScene->render(&painter,QRectF(),m_pSavePicScene->itemsBoundingRect());
image.save("./printSceneView.png");//图片
m_CreateImageFlag = false;
}
void TestPrintWidget::on_KeyUp_clicked()
{
moveSelectedItem(Qt::Key_Up);
@@ -1544,4 +1476,4 @@ void TestPrintWidget::on_btn_copy_clicked()
void TestPrintWidget::on_btn_paste_clicked()
{
pasteCopiedLayer();
}
}