957 lines
32 KiB
Plaintext
957 lines
32 KiB
Plaintext
#include "PicEdit.h"
|
|
#include "ui_picedit.h"
|
|
#include "SysPara.h"
|
|
#include <QMessageBox>
|
|
#include <QDebug>
|
|
#include "ui_InputMethod.h"
|
|
#include "InputMethod.h"
|
|
#include "Public.h"
|
|
#include "stdio.h"
|
|
#include "myinclude.h"
|
|
#include "dlgdrawinit.h"
|
|
#include <QTranslator>
|
|
|
|
PicEdit::PicEdit(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::PicEdit)
|
|
{
|
|
ui->setupUi(this);
|
|
ui->lineEditInputTxt->setMaximumWidth(1);
|
|
fileDialog = 0;
|
|
charSpace=0;
|
|
dlgdraw =0;
|
|
lineSpace=1;
|
|
openedFileName = "";
|
|
newFileAppending = false;//Qt::Key_Backspace
|
|
inserPicFile = false;
|
|
connect(ui->widgetPic,SIGNAL(picWidgetModify()),this,SLOT(enableSaveButton()));
|
|
connect(ui->widgetPic,SIGNAL(ShowKeybord()),this,SLOT(showKeybord()));
|
|
connect(ui->widgetPic,SIGNAL(rowColChanged(QString)),ui->label_ROWCOL,SLOT(setText(QString)));
|
|
connect(ui->widgetPic,SIGNAL(currXYChanged(QString)),ui->label_CURXY,SLOT(setText(QString)));
|
|
connect(ui->widgetPic,SIGNAL(ChangeFont(int)),this,SLOT(onChangeFont(int)));
|
|
#ifdef MYSAVEFILEDLG
|
|
dialogSaveFile =new DialogSaveFile(0);
|
|
#endif
|
|
textEdit=new QTextEdit;
|
|
zkEditEn=0;
|
|
dialogFileOperation = new DialogFileOperation(0);
|
|
dialogInsertVari = new DialogInsertVari(0);
|
|
dialogLineSpace = new DialogLineSpace(0);
|
|
timer = new QTimer();
|
|
connect(timer, SIGNAL(timeout()), ui->widgetPic, SLOT(cursorFlash()));
|
|
connect(timer, SIGNAL(timeout()), this, SLOT(cursorFlash()));
|
|
timer->start(500);
|
|
|
|
ui->pushButtonZKEdit->setEnabled (zkEditEn);
|
|
|
|
VarNum=0;
|
|
isInput =0;
|
|
|
|
ui->scrollArea->setAlignment ( Qt::AlignAbsolute );
|
|
ui->radioButtonCharCurrent->setChecked (1);
|
|
ui->widgetPic->charPara.CharCurrent=1;
|
|
|
|
ui->comboBoxLattice->setCurrentIndex (1);
|
|
|
|
ui->pushButtonSave->setEnabled(false);
|
|
forcePicWidgetSize = false;
|
|
ui->widgetPic->charPara.DrawGridEn=true;
|
|
ui->checkBoxDrawGridEn->setCheckState ((Qt::CheckState)ui->widgetPic->charPara.DrawGridEn );
|
|
ui->widgetPic->charPara.DrawEn=false;
|
|
|
|
ui->widgetPic->initWidget(300,ui->spinBoxHeightPoint->value());
|
|
setEnterKey(1);
|
|
openedFileName = "";
|
|
ui->widgetPic->setScale (3);
|
|
ui->widgetPic->resizeWidget (150,8);
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
memset(var,0,sizeof(var));
|
|
ui->widgetPic->picSetHome();
|
|
ui->labInserMode->setText((ui->widgetPic->charPara.insertMode)? tr("插入模式"):tr("修改模式"));
|
|
ui->label_Note->setText(tr("编辑现有的多字体文件\r\n请使用修改模式!!!"));
|
|
|
|
ui->widgetPic->charPara.DrawEn=0;
|
|
ui->widgetPic->drawPara.width = 10;
|
|
ui->widgetPic->drawPara.height = 8;
|
|
|
|
ui->checkBoxControlChar->hide();
|
|
ui->checkBoxBold->hide();
|
|
// ui->pushButtonDrawPIC->hide();
|
|
|
|
}
|
|
|
|
PicEdit::~PicEdit()
|
|
{
|
|
delete ui;
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
if(dialogInsertVari)
|
|
delete dialogInsertVari;
|
|
if(dialogLineSpace)
|
|
delete dialogLineSpace;
|
|
if(dlgdraw) delete dlgdraw;
|
|
#ifdef MYSAVEFILEDLG
|
|
if(dialogSaveFile) delete dialogSaveFile;
|
|
if(dialogFileOperation) delete dialogFileOperation;
|
|
#endif
|
|
|
|
}
|
|
void PicEdit::setEnterKey(int n)
|
|
{
|
|
// ui->pushButtonEnsure->setIcon(QIcon( n?":/icon/sure.png":":/icon/keyenter.png")); // icon().addPixmap(,0,0);
|
|
// ui->pushButtonEnsure->setText(n?"":"换行"); ///icon/sure.png
|
|
}
|
|
|
|
void PicEdit::on_pushButtonZKEdit_pressed( )
|
|
{
|
|
//qDebug ()<<"start 1"<<ui->widgetPic->charPara.CharWidth<<ui->widgetPic->charPara.CharHeight;
|
|
//qDebug ()<<"11";
|
|
if(ui->widgetPic->zkEditEn)
|
|
{
|
|
ui->widgetPic->zkEditEn=0;
|
|
ui->pushButtonNew->setEnabled (true);
|
|
ui->pushButtonInsertVari->setEnabled (true);
|
|
ui->pushButtonOpen->setEnabled (true);
|
|
ui->pushButtonSaveAs->setEnabled (true);
|
|
ui->pushButtonImport->setEnabled (true);
|
|
ui->pushButtonSave->setText (tr("保存/打印"));
|
|
ui->pushButtonSave->setText (tr("保存"));
|
|
ui->pushButtonZKEdit->setText (tr("字库编辑"));
|
|
ui->comboBoxLattice->setDisabled (0);
|
|
ui->spinBoxHeightPoint->setDisabled (0);
|
|
//ui->spinBoxWidthPoint->setDisabled (0);
|
|
ui->widgetPic->charPara.CharCurrent=1;
|
|
//ui->widgetPic->charPara.CurrentEn =1;
|
|
ui->widgetPic->charPara.DrawEn =0;
|
|
ui->widgetPic->charPara.LineSpace=1;
|
|
ui->pushButtonImport->setEnabled(true);
|
|
ui->widgetPic->initWidget (30,ui->widgetPic->charPara.LineHeight);
|
|
ui->labelNote2->setText (tr("点击光栅可打开键盘,点击空白处关闭"));// 请选择字体,打开键盘并输入要编辑的字符.
|
|
// 点击光栅可打开键盘,点击其它空白处可关闭键盘.
|
|
//qDebug ()<<"22";
|
|
emit zkEditEnStatus(tr("信息编辑"));
|
|
|
|
}
|
|
else {
|
|
//qDebug ()<<"33";
|
|
ui->widgetPic->zkEditNow();
|
|
ui->widgetPic->charPara.DrawEn =1;
|
|
ui->pushButtonNew->setDisabled(true);
|
|
ui->pushButtonInsertVari->setDisabled (true);
|
|
ui->pushButtonOpen->setDisabled (true);
|
|
ui->pushButtonSaveAs->setDisabled (true);
|
|
ui->pushButtonImport->setDisabled (true);
|
|
ui->pushButtonSave->setDisabled (true);
|
|
//ui->comboBoxLattice->setDisabled (true);
|
|
ui->spinBoxHeightPoint->setDisabled (true);
|
|
//ui->spinBoxWidthPoint->setDisabled (true);
|
|
//qDebug ()<<"441";
|
|
ui->pushButtonSave->setText (tr("字库保存"));
|
|
//qDebug ()<<"442";
|
|
ui->pushButtonZKEdit->setText (tr("返回信息编辑"));
|
|
//qDebug ()<<"443";
|
|
ui->pushButtonImport->setEnabled(false);
|
|
ui->labelNote2->setText (tr("请选择字体,打开键盘并输入要编辑的字符"));// 请选择字体,打开键盘并输入要编辑的字符.
|
|
//qDebug ()<<"44";
|
|
// 点击光栅可打开键盘,点击其它空白处可关闭键盘.
|
|
//emit zkEditEnStatus(tr("字库编辑"));
|
|
//ui->lineEditInputTxt->setFocus ();
|
|
ui->widgetPic->zkEditEn=1;
|
|
}
|
|
//qDebug ()<<"start 2"<<ui->widgetPic->charPara.CharWidth<<ui->widgetPic->charPara.CharHeight;
|
|
}
|
|
|
|
void PicEdit::checkNewFileAppending(){
|
|
if(newFileAppending){
|
|
ui->widgetPic->initWidget(300,ui->spinBoxHeightPoint->value());
|
|
openedFileName = "";
|
|
}
|
|
newFileAppending = false;
|
|
}
|
|
|
|
void PicEdit::onSave_File_reject(){
|
|
checkNewFileAppending();
|
|
}
|
|
|
|
void PicEdit::bindSysPara(SysPara *sysPara){
|
|
ui->widgetPic->bindSysPara (sysPara);
|
|
this->sysPara = sysPara;
|
|
}
|
|
|
|
bool PicEdit::maybeSave(){
|
|
if(!ui->widgetPic->isModified())
|
|
return true;
|
|
|
|
QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("图片已经改变,是否保存?"));
|
|
QPushButton *saveButton = msgBox.addButton(tr("保存"), QMessageBox::ActionRole);
|
|
QPushButton *cancleSaveButton = msgBox.addButton(tr("放弃保存"), QMessageBox::ActionRole);
|
|
QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel);
|
|
|
|
msgBox.exec();
|
|
|
|
if (msgBox.clickedButton() == saveButton) {
|
|
newFileAppending = true;
|
|
on_pushButtonSave_clicked();
|
|
|
|
|
|
return false;
|
|
}
|
|
else if (msgBox.clickedButton() == cancleSaveButton) {
|
|
return true;
|
|
}
|
|
|
|
else
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
void PicEdit::on_pushButtonNew_pressed(){
|
|
if(maybeSave())
|
|
{
|
|
|
|
ui->widgetPic->initWidget(300,ui->spinBoxHeightPoint->value()+1);
|
|
openedFileName = "";
|
|
ui->labelFileName->setText("");
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
VarNum=0;
|
|
ui->widgetPic->zkEditEn=false;
|
|
memset(var,0,sizeof(var));
|
|
ui->widgetPic->charPara.DrawEn =0;
|
|
ui->widgetPic->charPara.CharCurrent=1;
|
|
ui->widgetPic->charPara.CurrentEn =1;
|
|
ui->lineEditInputTxt->setFocus ();
|
|
}
|
|
}
|
|
|
|
void PicEdit::showKeybord( )
|
|
{
|
|
if(!ui->widgetPic->charPara.DrawEn || ui->widgetPic->zkEditEn ) ui->lineEditInputTxt->setFocus ();
|
|
}
|
|
|
|
void PicEdit::enableSaveButton(){
|
|
ui->pushButtonSave->setEnabled(true);
|
|
if(ui->widgetPic->zkEditEn) ui->comboBoxLattice->setDisabled (1);
|
|
|
|
}
|
|
|
|
void PicEdit::on_pushButtonEnlarge_pressed()
|
|
{
|
|
ui->widgetPic->enlargeDisplay();
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
|
|
}
|
|
|
|
void PicEdit::on_pushButtonReduce_pressed()
|
|
{
|
|
ui->widgetPic->reduceDisplay();
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
}
|
|
|
|
|
|
|
|
void PicEdit::on_pushButtonEnsure_pressed()
|
|
{
|
|
ui->widgetPic->ensureCurrPos();
|
|
//qDebug()<<"ENLINE2";
|
|
}
|
|
|
|
|
|
void PicEdit::on_pushButtonLeft_pressed()
|
|
{
|
|
//ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight;
|
|
ui->widgetPic->currPositionMove(ui->widgetPic->charPara.CharCurrent? (-ui->widgetPic->charPara.CharWidth):(-1),0);
|
|
}
|
|
void PicEdit::on_pushButtonRight_pressed()
|
|
{
|
|
//ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight;
|
|
ui->widgetPic->currPositionMove(ui->widgetPic->charPara.CharCurrent?ui->widgetPic->charPara.CharWidth:1,0);
|
|
|
|
}
|
|
void PicEdit::on_pushButtonUp_pressed()
|
|
{
|
|
//ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight;
|
|
ui->widgetPic->currPositionMove(0,ui->widgetPic->charPara.CharCurrent?-(ui->widgetPic->charPara.LineHeight):-1);
|
|
//qDebug()<<"TEST2014 UP";
|
|
}
|
|
void PicEdit::on_pushButtonDown_pressed()
|
|
{
|
|
//ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight;
|
|
ui->widgetPic->currPositionMove(0,ui->widgetPic->charPara.CharCurrent?ui->widgetPic->charPara.LineHeight:1);
|
|
}
|
|
void PicEdit::on_spinBoxHeightPoint_valueChanged(int height)
|
|
{
|
|
ui->widgetPic->resizeWidget (ui->widgetPic->getWidth (),height);
|
|
//qDebug ()<<"HeightPoint:"<<height;
|
|
}
|
|
|
|
#if 0 /* no use */
|
|
// pushButtonDrawPIC
|
|
void PicEdit::on_pushButtonDrawPIC_clicked()
|
|
{
|
|
ui->widgetPic->charPara.DrawEn=true;
|
|
|
|
dlgdraw = new dlgDrawInit;
|
|
//dlgdraw->setWindowTitle(tr("设置图案参数"));
|
|
dlgdraw->setFocus();
|
|
connect(dlgdraw,SIGNAL(dlgDrawOK()),this,SLOT(ondlgDrawOK()));
|
|
|
|
dlgdraw->setWidth(ui->widgetPic->drawPara.width);
|
|
dlgdraw->setHeight(ui->widgetPic->drawPara.height);
|
|
dlgdraw->show();
|
|
|
|
}
|
|
#endif
|
|
void PicEdit::ondlgDrawOK()
|
|
{
|
|
|
|
ui->widgetPic->charPara.DrawEn=true;
|
|
ui->widgetPic->drawPara.width= dlgdraw->getWidth();
|
|
ui->widgetPic->drawPara.height=dlgdraw->getHeight();
|
|
if(maybeSave())
|
|
{
|
|
DrawInit(1);
|
|
|
|
}
|
|
if(dlgdraw) delete dlgdraw;
|
|
|
|
}
|
|
void PicEdit::on_checkBoxDrawGridEn_clicked( )
|
|
{
|
|
ui->widgetPic->charPara.DrawGridEn=ui->checkBoxDrawGridEn->checkState ();
|
|
ui->widgetPic->resizeWidget (ui->widgetPic->getWidth (),ui->widgetPic->getHeight ());
|
|
ui->widgetPic->update ();
|
|
|
|
}
|
|
|
|
void PicEdit::on_checkBoxControlChar_clicked( )
|
|
{
|
|
ui->widgetPic->charPara.checkBoxControlChar=ui->checkBoxControlChar->checkState ();
|
|
}
|
|
|
|
void PicEdit::on_pushButtonSaveAs_clicked()
|
|
{
|
|
#ifdef MYSAVEFILEDLG
|
|
disconnect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),0,0);
|
|
connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool)));
|
|
dialogSaveFile->setTitleTxt(tr("文件另存为..."));
|
|
dialogSaveFile->refreshListView(1);
|
|
dialogSaveFile->setEnterFileName("");
|
|
dialogSaveFile->show();
|
|
|
|
#else
|
|
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onSaveAS_FIle_select()));
|
|
fileDialog->showFileDialog(tr("另存为"),QString(DOC_ROOT_DIR),
|
|
ui->widgetPic->charPara.DrawEn?QString("Picture files (*.jpg)"):
|
|
QString("Picture files (*.png)")
|
|
);// *.png )"));//
|
|
|
|
#endif
|
|
|
|
}
|
|
void PicEdit::onSaveASFile(QString fileName,bool Flag){// use for dialogSaveFile class
|
|
// filename= fileName ;
|
|
if( ui->widgetPic->charPara.DrawEn ){
|
|
if( !fileName.endsWith(".jpg",Qt::CaseInsensitive) )
|
|
fileName += ".jpg";
|
|
|
|
ui->widgetPic->saveImage1(fileName);
|
|
|
|
//ui->pushButtonSave->setEnabled(false);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName());
|
|
|
|
}
|
|
else {
|
|
|
|
if( !fileName.endsWith(".png",Qt::CaseInsensitive) )
|
|
fileName += ".png";
|
|
|
|
ui->widgetPic->saveImage(fileName);
|
|
|
|
//ui->pushButtonSave->setEnabled(false);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName());
|
|
|
|
QString str1 =QFileInfo( fileName).baseName()+".dpn";
|
|
if(sysPara){
|
|
|
|
sysPara->sysFile = QString( PARA_ROOT_DIR+str1);
|
|
sysPara->savePrintParaToFile();
|
|
}
|
|
printThisFileNow(fileName);
|
|
|
|
}
|
|
|
|
checkNewFileAppending();
|
|
}
|
|
|
|
void PicEdit::onSaveAS_FIle_select(){
|
|
QStringList files = fileDialog->selectedFiles();
|
|
for(int i = 0;i < files.size(); i++)
|
|
{
|
|
|
|
QString fileName = files[i];
|
|
//qDebug()<<"onSaveAS_FIle_select"<<fileName;
|
|
if( ui->widgetPic->charPara.DrawEn ){
|
|
if( !fileName.endsWith(".jpg",Qt::CaseInsensitive) )
|
|
fileName += ".jpg";
|
|
|
|
ui->widgetPic->saveImage1(fileName);
|
|
|
|
//ui->pushButtonSave->setEnabled(false);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName());
|
|
|
|
}
|
|
else {
|
|
|
|
if( !fileName.endsWith(".png",Qt::CaseInsensitive) )
|
|
fileName += ".png";
|
|
|
|
ui->widgetPic->saveImage(fileName);
|
|
|
|
//ui->pushButtonSave->setEnabled(false);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName());
|
|
|
|
QString str1 =QFileInfo( fileName).baseName()+".dpn";
|
|
if(sysPara){
|
|
|
|
sysPara->sysFile = QString( PARA_ROOT_DIR+str1);
|
|
sysPara->savePrintParaToFile();
|
|
}
|
|
}
|
|
|
|
printThisFileNow(fileName);
|
|
|
|
}
|
|
|
|
checkNewFileAppending();
|
|
|
|
}
|
|
void PicEdit::onFileOpen(QString fileName,bool forcePicWidgetSize)
|
|
{
|
|
|
|
if(inserPicFile)
|
|
{
|
|
|
|
if (fileName.endsWith(".png") )ui->widgetPic->insertImage(fileName,false);
|
|
else ui->widgetPic->insertImage1(fileName,0);
|
|
// if(openedFileName=="") openedFileName= fileName;
|
|
|
|
}
|
|
else {
|
|
if(fileName.endsWith(".png")){
|
|
ui->widgetPic->loadImage(fileName,false);
|
|
openedFileName = fileName;
|
|
}
|
|
else if(fileName.endsWith(".jpg")){
|
|
ui->widgetPic->insertImage1(fileName,1);
|
|
VarNum=0;
|
|
ui->widgetPic->zkEditEn=false;
|
|
memset(var,0,sizeof(var));
|
|
ui->widgetPic->charPara.CurrentEn =1;
|
|
ui->widgetPic->charPara.DrawEn=1;
|
|
}
|
|
ui->widgetPic->setScale (3);
|
|
ui->labelFileName->setText(tr("文件名:)")+QFileInfo( fileName).fileName());
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
VarNum=0;
|
|
}
|
|
}
|
|
void PicEdit::updateAuthorization(int auth){
|
|
// do nothing here
|
|
zkEditEn= (auth&AUTH_DISPLAY_SYSTEM_SETTING) ||(auth&AUTH_DISPLAY_SYSTEM_MANAGE);
|
|
ui->pushButtonZKEdit->setEnabled (zkEditEn);
|
|
}
|
|
|
|
void PicEdit::on_pushButtonOpen_clicked()
|
|
{
|
|
|
|
disconnect(dialogFileOperation,SIGNAL(openFile(QString,bool)),0,0);
|
|
connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
|
|
dialogFileOperation->refreshListView(1);
|
|
dialogFileOperation->exec();
|
|
inserPicFile = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
void PicEdit::onOpenFIle_select(){
|
|
QStringList files = fileDialog->selectedFiles();
|
|
for(int i = 0;i < files.size(); i++){
|
|
QString fileName = files.value(i);
|
|
ui->widgetPic->loadImage(fileName,forcePicWidgetSize);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName());
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
VarNum=0;
|
|
}
|
|
}
|
|
|
|
void PicEdit::on_pushButtonSave_clicked()
|
|
{
|
|
if(ui->widgetPic->zkEditEn && zkEditEn ) {
|
|
ui->widgetPic->zkEditSave();
|
|
ui->pushButtonOpen->setDisabled (true);
|
|
ui->pushButtonSave->setDisabled (true);
|
|
//ui->pushButtonImport->setEnabled(true);
|
|
ui->pushButtonZKEdit->setText (tr("返回信息编辑"));
|
|
ui->comboBoxLattice->setDisabled (0);
|
|
emit zkEditEnStatus(tr("字库编辑"));
|
|
return ;
|
|
}
|
|
|
|
if(!openedFileName.isEmpty()){
|
|
//qDebug()<<"on_pushButtonSave_clicked"<<openedFileName;
|
|
if(ui->widgetPic->charPara.DrawEn) {
|
|
//if(openedFileName.endsWith("html"))
|
|
openedFileName =DOC_ROOT_DIR+ QFileInfo(openedFileName).baseName()+".jpg";
|
|
ui->widgetPic->saveImage1(openedFileName);
|
|
}
|
|
else {
|
|
//if(openedFileName.endsWith("html"))
|
|
openedFileName = DOC_ROOT_DIR+QFileInfo(openedFileName).baseName()+".png";
|
|
|
|
ui->widgetPic->saveImage(openedFileName);
|
|
// qDebug()<<"on_pushButtonSave_clicked"<<openedFileName;
|
|
}
|
|
ui->pushButtonSave->setEnabled(true);
|
|
printThisFileNow(openedFileName);
|
|
|
|
}
|
|
else {
|
|
#ifdef MYSAVEFILEDLG
|
|
disconnect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),0,0);
|
|
connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool)));
|
|
dialogSaveFile->refreshListView(1);
|
|
dialogSaveFile->setTitleTxt(tr("文件保存为..."));
|
|
dialogSaveFile->setEnterFileName("");
|
|
dialogSaveFile->show();
|
|
#else
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(rejected()),this,SLOT(onSave_File_reject()));
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onSaveAS_FIle_select()));
|
|
fileDialog->showFileDialog(tr("保存"),tr(DOC_ROOT_DIR),
|
|
ui->widgetPic->charPara.DrawEn?QString("Picture files (*.jpg)"):
|
|
QString("Picture files (*.png)")
|
|
|
|
);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
void PicEdit::on_pushButtonImport_clicked()
|
|
{ //insert pic 插入图片 pushButtonImport
|
|
inserPicFile =true;
|
|
disconnect(dialogFileOperation,SIGNAL(openFile(QString,bool)),0,0);
|
|
connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
|
|
dialogFileOperation->refreshListView(1);
|
|
dialogFileOperation->exec();
|
|
}
|
|
void PicEdit::on_pushButtonEnd_pressed(){
|
|
ui->widgetPic->picSetEnd ();
|
|
}
|
|
void PicEdit::on_pushButtonHome_pressed(){
|
|
ui->widgetPic->picSetHome();
|
|
}
|
|
void PicEdit::keyPressEvent(QKeyEvent *e)
|
|
{ ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight;
|
|
switch(e->key())
|
|
{
|
|
case Qt::Key_Return1:on_pushButtonEnsure_pressed();
|
|
//qDebug()<<"TEST2014 ENTER";
|
|
break;
|
|
case Qt::Key_Up1: on_pushButtonUp_pressed();
|
|
//qDebug()<<"TEST2014 UP2";
|
|
break;
|
|
case Qt::Key_Left1: on_pushButtonLeft_pressed();break;
|
|
case Qt::Key_Right1:on_pushButtonRight_pressed();break;
|
|
case Qt::Key_Down1:on_pushButtonDown_pressed();break;
|
|
case Qt::Key_Enter1:
|
|
//qDebug()<<"ENLINE";
|
|
break;
|
|
case Qt::Key_Home1:ui->widgetPic->picSetHome(); break;
|
|
case Qt::Key_End1:ui->widgetPic->picSetEnd (); break;
|
|
case Qt::Key_Clear1: break;
|
|
case Qt::Key_Backspace1:
|
|
ui->widgetPic->picDelOneChar (); break;
|
|
case Qt::Key_Delete1:
|
|
ui->widgetPic->picDelNextChar ();
|
|
break;
|
|
}
|
|
//if(e->key())qDebug()<<"TES"<<e->key();
|
|
}
|
|
|
|
|
|
void PicEdit::on_comboBoxLattice_currentIndexChanged(int index)
|
|
{ //字体选择
|
|
int font[]={5,7,9,12,16,16,24,24,32};
|
|
int fontWidth[]= {5,5,6,8,8,12,24,24,24 };
|
|
ui->widgetPic->charPara.Font=(PFONTNAME)index;
|
|
ui->widgetPic->charPara.CharHeight =font[index];
|
|
ui->widgetPic->charPara.LineHeight = ui->widgetPic->charPara.CharHeight+ui->widgetPic->charPara.LineSpace;
|
|
ui->widgetPic->charPara.CharWidth =fontWidth[index] ;
|
|
if( ui->widgetPic->getHeight ()<font[index])
|
|
ui->spinBoxHeightPoint->setValue (font[index]);
|
|
if( ui->widgetPic->currYpos+ ui->widgetPic->charPara.LineHeight > ui->widgetPic->getHeight() ){
|
|
ui->widgetPic->resizeWidget( ui->widgetPic->getWidth(),ui->widgetPic->currYpos+ ui->widgetPic->charPara.LineHeight);
|
|
}
|
|
|
|
ui->widgetPic->update ();
|
|
ui->lineEditInputTxt->setFocus ();
|
|
}
|
|
|
|
void PicEdit::on_lineEditInputTxt_textEdited (QString txt)
|
|
{
|
|
var[0]=0;var[1]=0;
|
|
#ifdef VARBOLD
|
|
ui->widgetPic->charPara.Bold=ui->comboBoxBoldMul->currentIndex();
|
|
if(ui->widgetPic->charPara.Bold>2)ui->widgetPic->charPara.Bold=2;
|
|
#else
|
|
ui->widgetPic->charPara.Bold = ui->checkBoxBold->isChecked();
|
|
#endif
|
|
|
|
emit ui->widgetPic->inputTxtDot (txt,var);
|
|
ui->lineEditInputTxt->clear ();
|
|
// QTime t1;t1.start();// qDebug ()<<t1.elapsed ();
|
|
}
|
|
void PicEdit::on_pushButtonStartInput_clicked()
|
|
{
|
|
ui->lineEditInputTxt->setFocus ();
|
|
}
|
|
void PicEdit::on_pushButtonDeleteChar_clicked()
|
|
{
|
|
|
|
ui->widgetPic->picDelOneChar ();
|
|
}
|
|
void PicEdit::on_radioButtonCharCurrent_clicked()
|
|
{
|
|
ui->widgetPic->charPara.CharCurrent=ui->radioButtonCharCurrent->isChecked ();
|
|
}
|
|
|
|
void PicEdit::on_radioButtonDotCurrent_clicked()
|
|
{
|
|
ui->widgetPic->charPara.CharCurrent=ui->radioButtonCharCurrent->isChecked ();
|
|
}
|
|
|
|
void PicEdit::on_pushButtonInsertVari_pressed()
|
|
{
|
|
|
|
|
|
if(dialogInsertVari->exec() == QDialog::Accepted ){
|
|
int pixelSize =ui->widgetPic->charPara.CharHeight;// ui->comboBoxLattice->currentIndex ();
|
|
QFont font;
|
|
font.setFamily(Public::getFontFamily(pixelSize));
|
|
font.setPixelSize(pixelSize);
|
|
font.setWeight(ui->checkBoxBold->isChecked()?QFont::Bold:QFont::Normal);
|
|
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing,ui->widgetPic->charPara.FontGap); // sysPara->para.textEditCharSpace
|
|
QFontMetrics fontMetrics(font);
|
|
ui->widgetPic->charPara.Bold = ui->checkBoxBold->isChecked();
|
|
|
|
|
|
int width = (fontMetrics.width("0123456789"))/10 ;
|
|
int height = fontMetrics.ascent () + fontMetrics.descent();//pixelSize;
|
|
int digitalNum;
|
|
int varType;
|
|
unsigned char splitMode;
|
|
dialogInsertVari->getValue(&varType,&digitalNum,&splitMode);
|
|
QString txt;
|
|
|
|
//================
|
|
int val = 0;
|
|
QTime t = QTime::currentTime();
|
|
QDate d = QDate::currentDate();
|
|
switch(varType){
|
|
case 0:val = d.year(); digitalNum=digitalNum>2?4:2; break;
|
|
case 1:val = d.month();digitalNum=2;break;
|
|
case 2:val = d.day();digitalNum=2;break;
|
|
//case 3:val = d.dayOfWeek();digitalNum=2;break; //weekNumber
|
|
case 3:val = d.weekNumber();digitalNum=2;break;
|
|
case 4:val = t.hour(); digitalNum=2;break;
|
|
case 5:val = t.minute();digitalNum=2;break;
|
|
case 6:val = t.second();digitalNum=2;break;
|
|
case 7:val = QString::number(sysPara->status.calandar_and_dat.cnt1CurrValue,16).toInt(); break;
|
|
case 8:val = QString::number(sysPara->status.calandar_and_dat.cnt2CurrValue,16).toInt();break;
|
|
case 13:val = QString::number(sysPara->status.Status_Counter3.cnt3CurrValue,16).toInt();break;
|
|
case 14:val = d.dayOfYear();digitalNum=3;break;
|
|
default:val=0;
|
|
}
|
|
// qDebug()<<val<<"val";
|
|
|
|
if(digitalNum==1)
|
|
{
|
|
txt.sprintf("%01d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else if(digitalNum==2)
|
|
{
|
|
txt.sprintf("%02d",val );
|
|
txt = txt.right(digitalNum);
|
|
|
|
}
|
|
else if(digitalNum==3)
|
|
{
|
|
txt.sprintf("%03d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else if(digitalNum==4)
|
|
{
|
|
txt.sprintf("%04d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else if(digitalNum==5)
|
|
{
|
|
txt.sprintf("%05d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else if(digitalNum==6)
|
|
{
|
|
txt.sprintf("%06d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else if(digitalNum==7)
|
|
{
|
|
txt.sprintf("%07d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else if(digitalNum==8)
|
|
{
|
|
txt.sprintf("%08d",val );
|
|
txt = txt.right(digitalNum);
|
|
}
|
|
else
|
|
{
|
|
txt.sprintf("%04d",val );
|
|
txt = txt.right(4);
|
|
}
|
|
|
|
|
|
//======================
|
|
|
|
|
|
for(int i=0;i<40;i++) var[i]=FVAR;
|
|
if(VarNum<15)VarNum++;
|
|
else {
|
|
//VarNum=0;
|
|
QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("本条信息的变量超过规定数量!"));
|
|
msgBox.exec();
|
|
}
|
|
var[1]=varType; //0
|
|
var[2]=digitalNum;//1
|
|
var[3]=width;//2
|
|
var[4]=height;//3
|
|
var[5]=ui->widgetPic->charPara.FontGap;//4
|
|
//sysPara
|
|
|
|
#ifdef VARBOLD
|
|
ui->widgetPic->charPara.Bold=ui->comboBoxBoldMul->currentIndex();
|
|
if(ui->widgetPic->charPara.Bold>2)ui->widgetPic->charPara.Bold=2;
|
|
#else
|
|
ui->widgetPic->charPara.Bold = ui->checkBoxBold->isChecked();
|
|
#endif
|
|
if(digitalNum) ui->widgetPic->inputTxtDot (txt,var);
|
|
}
|
|
ui->lineEditInputTxt->setFocus ();
|
|
|
|
}
|
|
|
|
void PicEdit::ChinaProview(QString txt)
|
|
{
|
|
int mCol = (int)textEdit->document()->size().width();
|
|
bool MaxCol4000;
|
|
if(!sysPara->status.flagOfNo67FPGA && sysPara->status.FPGAVersionType == 0 && sysPara->status.FPGAChipType != 1)
|
|
MaxCol4000 = false;
|
|
else
|
|
MaxCol4000 = true;
|
|
if(mCol > (MaxCol4000?MAX_PRINT_COL_NUM_Normal:MAX_PRINT_COL_NUM_Wide))
|
|
mCol= MaxCol4000?MAX_PRINT_COL_NUM_Normal:MAX_PRINT_COL_NUM_Wide;
|
|
int maxPicHeight = MAX_PRINT_ROW_NUM + 12;
|
|
//qDebug ()<<QString("w:%1,H:%2").arg (mCol).arg (maxPicHeight);
|
|
QSize size(mCol,maxPicHeight);
|
|
QImage image(size,QImage::Format_ARGB32);
|
|
image.fill(0x00ffffff);
|
|
QPainter painter(&image);
|
|
textEdit->document()->drawContents (&painter, image.rect()); /*将text写到pic*/
|
|
|
|
//image.save("printImage.jpg");
|
|
|
|
unsigned char mDat[mCol*maxPicHeight];
|
|
memset(mDat,0,sizeof(mDat));
|
|
int firstRow = maxPicHeight;
|
|
/*--------------------------------------------------------------------------*/
|
|
for(int j = 0; j < maxPicHeight; j++){ //计算首行位置
|
|
for(int i = 0; i < mCol; i++){
|
|
QRgb rgb = image.pixel(i,j);
|
|
if(rgb&0xff000000){
|
|
firstRow = j;
|
|
break;
|
|
}
|
|
}
|
|
if(firstRow != maxPicHeight)
|
|
break;
|
|
}
|
|
/*--------------------------------------------------------------------------*/
|
|
int lastRow = firstRow + MAX_PRINT_ROW_NUM;
|
|
lastRow = (lastRow>maxPicHeight)?maxPicHeight:lastRow;
|
|
for(int j = 0; j < lastRow - firstRow; j++){
|
|
for(int i = 0; i < mCol; i++){
|
|
QRgb rgb = image.pixel(i,j + firstRow);
|
|
if((rgb&0x80000000)){ //判断alpha
|
|
if((rgb & 0xffffff) == 0xff0000){
|
|
mDat[ i* j + firstRow]=0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void PicEdit::on_pushButtonCharSpace_pressed ()
|
|
{ //QScrollBar mScrollBar;
|
|
dialogLineSpace->setValue (ui->widgetPic->charPara.LineSpace,ui->widgetPic->charPara.FontGap);
|
|
if(dialogLineSpace->exec() == QDialog::Accepted ){
|
|
dialogLineSpace->getValue (&lineSpace,&charSpace);
|
|
if(charSpace<1)charSpace=1;
|
|
ui->widgetPic->charPara.FontGap=charSpace;
|
|
ui->widgetPic->charPara.LineSpace= lineSpace;
|
|
ui->widgetPic->charPara.LineHeight = ui->widgetPic->charPara.CharHeight +ui->widgetPic->charPara.LineSpace;
|
|
}
|
|
}
|
|
void PicEdit::DrawInit(bool mode)
|
|
{
|
|
if( mode)
|
|
{
|
|
ui->widgetPic->initWidget(ui->widgetPic->drawPara.width,ui->widgetPic->drawPara.height);
|
|
openedFileName = "";
|
|
ui->labelFileName->setText("");
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
VarNum=0;
|
|
ui->widgetPic->zkEditEn=false;
|
|
memset(var,0,sizeof(var));
|
|
ui->widgetPic->charPara.CurrentEn =1;
|
|
//ui->spinBoxWidth->show();
|
|
//ui->labWidth->show();
|
|
//ui->pushButtonInsertVari->hide();
|
|
ui->widgetPic->charPara.DrawEn=1;
|
|
}
|
|
else
|
|
{
|
|
|
|
ui->pushButtonInsertVari->show();
|
|
ui->widgetPic->charPara.DrawEn=0;
|
|
emit on_pushButtonNew_pressed();
|
|
}
|
|
}
|
|
|
|
void PicEdit::printThisFileNow(QString fileName)
|
|
{
|
|
if( ui->widgetPic->charPara.DrawEn)
|
|
{
|
|
DrawInit(0);
|
|
return ;
|
|
}
|
|
|
|
QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("是否立即喷印当前的文件?"));
|
|
QPushButton *saveButton = msgBox.addButton(tr("是"), QMessageBox::ActionRole);
|
|
QPushButton *cancleSaveButton = msgBox.addButton(tr("否"), QMessageBox::ActionRole);
|
|
QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel);
|
|
|
|
msgBox.exec();
|
|
|
|
if (msgBox.clickedButton() == saveButton) {
|
|
|
|
emit openCurrentFile(fileName,false);
|
|
emit setMainTabNow(0);
|
|
|
|
}
|
|
}
|
|
|
|
void PicEdit::EditCurrFile(QString fileName)
|
|
{
|
|
ui->widgetPic->loadImage(fileName,forcePicWidgetSize);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName());
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
ui->pushButtonSave->setEnabled(true);
|
|
VarNum=0;
|
|
}
|
|
|
|
void PicEdit::onChangeFont(int n)
|
|
{//
|
|
//char font[]={5,7,9,12,16,24,24,32};
|
|
int i=0;
|
|
if(n>24) i=6;
|
|
else if(n>16) i=5;
|
|
else if(n>12) i=4;
|
|
else if(n>9) i=3;
|
|
else if(n>7) i=2;
|
|
else if(n>5) i=1;
|
|
else i=0;
|
|
ui->comboBoxLattice->setCurrentIndex(i);
|
|
//qDebug()<<i<<" EDIT";
|
|
//emit on_comboBoxLattice_currentIndexChanged(i);
|
|
//
|
|
}
|
|
|
|
void PicEdit::on_pushButtonInsertMode_pressed()
|
|
{
|
|
ui->widgetPic->charPara.insertMode =!ui->widgetPic->charPara.insertMode;
|
|
ui->labInserMode->setText((ui->widgetPic->charPara.insertMode)?tr("插入模式"):tr("修改模式"));
|
|
}
|
|
|
|
|
|
|
|
void PicEdit::cursorFlash()
|
|
{
|
|
static int n=0;
|
|
static int m=0;
|
|
// static bool r_DrawEn=0;
|
|
if(sysPara==NULL) return;
|
|
if(sysPara->para.EditMode==TXTFILE){
|
|
ui->widgetPic->pEditMode=0;
|
|
return;
|
|
}
|
|
else if(sysPara->para.EditMode==PICFILE)
|
|
ui->widgetPic->pEditMode=1;
|
|
// r_DrawEn = char
|
|
|
|
|
|
if(isActiveWindow()){
|
|
if(n<31)n++;else n=0;
|
|
if(n==10){
|
|
ui->label_Note->setText(tr("按回车键(Enter)可增加新行. 选择字体,光栅会自动调整"));
|
|
ui->labelNote2->setText((m%2)?tr("选择[字体]可改变光标大小."):tr("选择[绘图]方式,可以绘制任意图形"));
|
|
// qDebug()<<"n:"<<n;
|
|
}
|
|
else if(n==20){
|
|
ui->label_Note->setText(tr("光标不匹配时,不能输入或删除."));
|
|
ui->labelNote2->setText((m%2)?tr("点击空白处可关闭键盘."):tr("通过[字库编辑]功能,用户可以自定义新字符"));
|
|
m++;m=m&0xff;
|
|
// qDebug()<<"n:"<<n;
|
|
}
|
|
else if(n==30){
|
|
ui->label_Note->setText(tr("选择[文本模式]可切换到主界面编辑方式."));
|
|
ui->labelNote2->setText((m%2)?tr("点击光栅可打开键盘,点击空白处关闭键盘"):tr("使用[字库编辑]功能,用户可自己修改字形"));
|
|
// q
|
|
}
|
|
//qDebug()<<"n:"<<n;
|
|
}
|
|
|
|
}
|
|
|
|
|