1587 lines
60 KiB
Plaintext
1587 lines
60 KiB
Plaintext
#include "TextEditOption.h"
|
|
#include "ui_texteditoption.h"
|
|
#include "PicWidget.h"
|
|
#include "scene/picscene.h"
|
|
|
|
#include <QFileDialog>
|
|
#include <QDebug>
|
|
#include <QInputDialog>
|
|
#include <QDir>
|
|
#include <QDesktopServices>
|
|
#include <QUrl>
|
|
#include <QFile>
|
|
#include <QIODevice>
|
|
#include <QTextDocumentWriter>
|
|
#include <QFontDatabase>
|
|
#include <QSize>
|
|
#include <QPainter>
|
|
//#include <QPaintEngine>
|
|
#include <stdlib.h>
|
|
#include <QFontMetrics>
|
|
#include <QChar>
|
|
#include <QFileInfo>
|
|
#include <QTextCodec>
|
|
#include <QTextBlockFormat>
|
|
#include <QTextBlock>
|
|
#include "Public.h"
|
|
#include "myinclude.h"
|
|
|
|
#include "QBarCode.h"
|
|
#include "dlgQrCode.h"
|
|
#include<string>
|
|
#include<iostream>
|
|
TextEditOption::TextEditOption(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::TextEditOption)
|
|
{
|
|
ui->setupUi(this);
|
|
fileDialog = 0;
|
|
fileName = "";
|
|
textEdit = 0;
|
|
newFileAppending = false;
|
|
dialogFileOperation = new DialogFileOperation(0);
|
|
dialogInsertVari = new DialogInsertVari(0);
|
|
dialogFontSize = new DialogFontSize(0);
|
|
dialogLineSpace = new DialogLineSpace(0);
|
|
editMode=0;
|
|
#ifdef _2DCODE_
|
|
dlgQrcode = new dlgQrCode();
|
|
barcode= new QBarCode();
|
|
connect(barcode,SIGNAL(onBarCodeClose()),this,SLOT(onBarCodeClose()));
|
|
connect(dlgQrcode,SIGNAL(onQRCodeCloseNow()),this,SLOT(onQRCodeClose()));
|
|
#endif
|
|
//textEdit->setFontFamily(Public::getFontFamily(12));
|
|
//textEdit->clear();
|
|
#ifdef MYSAVEFILEDLG
|
|
dialogSaveFile =new DialogSaveFile(0);
|
|
#endif
|
|
|
|
sceneEditItem = false;
|
|
}
|
|
|
|
TextEditOption::~TextEditOption()
|
|
{
|
|
delete ui;
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
if(dialogInsertVari)
|
|
delete dialogInsertVari;
|
|
if(dialogFontSize)
|
|
delete dialogFontSize;
|
|
if(dialogLineSpace)
|
|
delete dialogLineSpace;
|
|
#if _2DCODE_
|
|
if(dlgQrcode)
|
|
delete dlgQrcode;
|
|
#endif
|
|
//free(dlgQrCode);
|
|
#ifdef MYSAVEFILEDLG
|
|
if(dialogSaveFile) delete dialogSaveFile;
|
|
if(dialogFileOperation) delete dialogFileOperation;
|
|
#endif
|
|
}
|
|
|
|
void TextEditOption::enableButtonSave(){
|
|
if(!ui->bottonSave->isEnabled())
|
|
ui->bottonSave->setEnabled(true);
|
|
}
|
|
|
|
void TextEditOption::bindText(QTextEdit *textEdit){
|
|
this->textEdit = textEdit;
|
|
|
|
connect(textEdit,SIGNAL(textChanged ()),this,SLOT(enableButtonSave()));
|
|
|
|
ui->bottonSave->setEnabled(false);
|
|
connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
|
|
#ifdef MYSAVEFILEDLG
|
|
connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool)));
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
void TextEditOption::bindSysPara(SysPara *sysPara){
|
|
this->sysPara = sysPara;
|
|
#ifdef _2DCODE_
|
|
if(sysPara)
|
|
{
|
|
barcode->bindSysPara(sysPara);
|
|
//qDebug()<<"TextEditOption bind by TextEdit.";
|
|
}
|
|
#endif
|
|
//else qDebug()<<"TextEditOption bind by TextEdit failure";
|
|
}
|
|
|
|
void TextEditOption::bindPicWidget(PicWidget *picwidget){
|
|
this->picwidget = picwidget;// stackedWidgetOption
|
|
|
|
// connect(textEdit,SIGNAL(textChanged ()),this,SLOT(enableButtonSave()));
|
|
// ui->bottonSave->setEnabled(false);
|
|
// connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
|
|
|
|
|
|
}
|
|
void TextEditOption::bindStackWidget(QStackedWidget *stackedWidgetOption,QStackedWidget *stackedWidgetText){
|
|
this->stackedWidgetOption = stackedWidgetOption;// stackedWidgetOption
|
|
this->stackedWidgetText = stackedWidgetText;
|
|
// connect(textEdit,SIGNAL(textChanged ()),this,SLOT(enableButtonSave()));
|
|
// ui->bottonSave->setEnabled(false);
|
|
// connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
|
|
|
|
|
|
|
|
}
|
|
void TextEditOption::showDlg(){
|
|
|
|
if(editMode==PICFILE){
|
|
|
|
disconnect(textEdit,SIGNAL(textChanged()),0,0);
|
|
|
|
connect(textEdit,SIGNAL(textChanged ()),this,SLOT(enableButtonSave()));
|
|
ui->bottonSave->setEnabled(false);
|
|
disconnect(dialogFileOperation,SIGNAL(openFile(QString,bool)),0,0);
|
|
connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool)));
|
|
on_pushButtonFile_pressed();
|
|
|
|
// dialogFileOperation->show();
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 和DialogFileOperation对接
|
|
* */
|
|
void TextEditOption::onFileOpen(QString filePath,bool insertFlag)
|
|
{
|
|
if(editMode==PICFILE){
|
|
if(filePath.endsWith(".png") )//||filePath.endsWith(".bmp") )
|
|
{
|
|
if(insertFlag){
|
|
emit PicfileNameOpen(filePath,insertFlag);
|
|
}
|
|
else {
|
|
//
|
|
emit PicfileNameOpen(filePath,0);
|
|
}
|
|
return ;
|
|
}
|
|
else{
|
|
if(stackedWidgetOption) {
|
|
stackedWidgetOption->setCurrentIndex(1);
|
|
stackedWidgetText->setCurrentIndex(1);
|
|
}
|
|
}
|
|
}
|
|
else if(editMode==TXTFILE) {
|
|
if(filePath.endsWith(".gif") || filePath.endsWith(".jpeg") || filePath.endsWith(".jpg")
|
|
|| filePath.endsWith(".bmp") || filePath.endsWith(".BMP") || filePath.endsWith(".png"))
|
|
{
|
|
QString html = "<img src='" + filePath + "'/>";
|
|
QTextCharFormat fmt = textEdit->currentCharFormat ();
|
|
if(insertFlag){
|
|
textEdit->insertHtml (html);
|
|
}
|
|
else {
|
|
textEdit->setHtml (html);
|
|
textEdit->moveCursor(QTextCursor::EndOfLine); //在插入图片的情况下,将图片至于末会导致格式还原
|
|
}
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
else if(filePath.endsWith(".xml"))
|
|
{
|
|
memset(sysPara->para.lastOpenedFileName,0,sizeof(sysPara->para.lastOpenedFileName));
|
|
return;
|
|
}
|
|
else {
|
|
QFile file(filePath);
|
|
if(!file.open(QIODevice::ReadOnly)){
|
|
QMessageBox::warning(this,tr("警告"),tr("无法打开文件") + filePath);
|
|
}
|
|
else {
|
|
QByteArray data = file.readAll();
|
|
QTextCodec *codec = Qt::codecForHtml(data);
|
|
QString str = codec->toUnicode(data);
|
|
// if (Qt::mightBeRichText(str)) {
|
|
// textEdit->setHtml(str);
|
|
// } else {
|
|
// str = QString::fromLocal8Bit(data);
|
|
// textEdit->setPlainText(str);
|
|
// }
|
|
// QTextStream in (&file);in.readAll()
|
|
if(filePath.startsWith(UDISK_DOC_ROOT_DIR)){
|
|
str.replace(DOC_ROOT_DIR,UDISK_DOC_ROOT_DIR); //做相应处理
|
|
}
|
|
|
|
if(insertFlag){
|
|
QMessageBox::StandardButton ret;
|
|
ret = QMessageBox::warning(this, tr("Application"), tr("是否确认将文件内容追加到打开的文件?"),
|
|
QMessageBox::Ok | QMessageBox::Cancel);
|
|
if (ret == QMessageBox::Ok){
|
|
textEdit->insertHtml(str);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
updateFileVariWidth(str);
|
|
textEdit->setHtml(str);
|
|
fileName = filePath;
|
|
|
|
if(sysPara){
|
|
sysPara->sysFile =fileName;
|
|
sysPara->loadParaFromFile();
|
|
//qDebug()<<"textedit txt mode onFileOpen" << sysPara->sysFile;
|
|
snprintf(sysPara->para.lastOpenedFileName,sizeof(sysPara->para.lastOpenedFileName),"%s",fileName.toAscii().constData());
|
|
}
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
textEdit->moveCursor(QTextCursor::EndOfLine);
|
|
onDialogLineSpaceAccepted();
|
|
}
|
|
}
|
|
//#if defined(__CONVERTERBOARD__)|| defined(__VX__)
|
|
#if 1
|
|
fsync(file.handle());
|
|
#endif
|
|
file.close();
|
|
}
|
|
if(insertFlag) //在打开文件的时候不设置焦点
|
|
textEdit->setFocus();
|
|
if(stackedWidgetOption) {
|
|
stackedWidgetOption->setCurrentIndex(0);
|
|
stackedWidgetText->setCurrentIndex(0);
|
|
// textEdit->setFocus();
|
|
}
|
|
}
|
|
else if(editMode==SCENE) {
|
|
//开机会调用到此,然后打开文件
|
|
if(filePath.endsWith(".xml"))
|
|
{
|
|
memset(sysPara->para.lastOpenedFileName,0,sizeof(sysPara->para.lastOpenedFileName));
|
|
emit scenefileOpen(filePath,false);//sceneeditoption 接收这个信号然后打开文件
|
|
emit fileNameChanged(QFileInfo(filePath).fileName());
|
|
}
|
|
else
|
|
{
|
|
if(sceneEditItem == true)
|
|
{
|
|
if(filePath.endsWith(".gif") || filePath.endsWith(".jpeg") || filePath.endsWith(".jpg")
|
|
|| filePath.endsWith(".bmp") || filePath.endsWith(".BMP") || filePath.endsWith(".png"))
|
|
{
|
|
QString html = "<img src='" + filePath + "'/>";
|
|
QTextCharFormat fmt = textEdit->currentCharFormat ();
|
|
if(insertFlag){
|
|
textEdit->insertHtml (html);
|
|
}
|
|
else {
|
|
textEdit->setHtml(html);
|
|
textEdit->moveCursor(QTextCursor::EndOfLine); //在插入图片的情况下,将图片至于末会导致格式还原
|
|
}
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
else {
|
|
QFile file(filePath);
|
|
if(!file.open(QIODevice::ReadOnly)){
|
|
QMessageBox::warning(this,tr("警告"),tr("无法打开文件") + filePath);
|
|
}
|
|
else {
|
|
QByteArray data = file.readAll();
|
|
QTextCodec *codec = Qt::codecForHtml(data);
|
|
QString str = codec->toUnicode(data);
|
|
if(filePath.startsWith(UDISK_DOC_ROOT_DIR)){
|
|
str.replace(DOC_ROOT_DIR,UDISK_DOC_ROOT_DIR); //做相应处理
|
|
}
|
|
|
|
if(insertFlag){
|
|
QMessageBox::StandardButton ret;
|
|
ret = QMessageBox::warning(this, tr("Application"), tr("是否确认将文件内容追加到打开的文件?"),
|
|
QMessageBox::Ok | QMessageBox::Cancel);
|
|
if (ret == QMessageBox::Ok){
|
|
textEdit->insertHtml(str);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
textEdit->setHtml(str);
|
|
fileName = filePath;
|
|
|
|
if(sysPara){
|
|
sysPara->sysFile =fileName;
|
|
sysPara->loadParaFromFile();
|
|
//qDebug()<<"onFileOpen"<<sysPara->sysFile;
|
|
snprintf(sysPara->para.lastOpenedFileName,sizeof(sysPara->para.lastOpenedFileName),"%s",fileName.toAscii().constData());
|
|
}
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
textEdit->moveCursor(QTextCursor::EndOfLine);
|
|
}
|
|
}
|
|
//#if defined(__CONVERTERBOARD__)|| defined(__VX__)
|
|
#if 1
|
|
fsync(file.handle());
|
|
#endif
|
|
file.close();
|
|
}
|
|
}
|
|
/*
|
|
if(stackedWidgetOption) {
|
|
stackedWidgetOption->setCurrentIndex(0);
|
|
stackedWidgetText->setCurrentIndex(0);
|
|
}
|
|
*/
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void TextEditOption::onbottonInsertImgclicked()
|
|
{
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onInsertImgFIle_select()));
|
|
fileDialog->showFileDialog(tr("插入图片"),QString("/"),QString("img (*.bmp *.jpg *.png *.gif)"));
|
|
}
|
|
|
|
void TextEditOption::onInsertImgFIle_select(){
|
|
QStringList files = fileDialog->selectedFiles();
|
|
|
|
for(int i = 0;i < files.size(); i++){
|
|
QString html = "<img src='" + files.value(i) + "'/>";
|
|
textEdit->insertHtml (html);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void TextEditOption::onbottonInsertTextclicked()
|
|
{
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onInsertTextFIle_select()));
|
|
fileDialog->showFileDialog(tr("插入文本"),QString(DOC_ROOT_DIR),QString("text (*.html *.txt)"));
|
|
}
|
|
|
|
void TextEditOption::onInsertTextFIle_select(){
|
|
QStringList files = fileDialog->selectedFiles();
|
|
for(int i = 0;i < files.size(); i++){
|
|
QFile file(files.value(i));
|
|
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
|
QMessageBox::warning(this,tr("警告"),tr("无法打开文件") + files.value(i));
|
|
}
|
|
else{
|
|
QTextStream in (&file);
|
|
textEdit->insertHtml(in.readAll());
|
|
}
|
|
//#if defined(__CONVERTERBOARD__)|| defined(__VX__)
|
|
#if 1
|
|
fsync(file.handle());
|
|
#endif
|
|
file.close();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void TextEditOption::onbuttonOpenclicked()
|
|
{
|
|
if(!textEdit){
|
|
QMessageBox::critical(this,tr("错误"),tr("TextEditOption 构造函数参数textEdit 不应当为空")); //
|
|
}
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onOpenFIle_select()));
|
|
fileDialog->DontUseNativeDialog;
|
|
|
|
fileDialog->showFileDialog(tr("打开文件"),QString(DOC_ROOT_DIR),QString("Text files (*.txt *.html)"));
|
|
}
|
|
|
|
|
|
void TextEditOption::openFIle(QString openFileName){
|
|
QFile file(openFileName);
|
|
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
|
|
QMessageBox::warning(this,tr("警告"),tr("无法打开文件") + openFileName);
|
|
}
|
|
else{
|
|
QTextStream in (&file);
|
|
textEdit->setText(in.readAll());
|
|
fileName = openFileName;
|
|
if(sysPara){
|
|
sysPara->sysFile =fileName;
|
|
sysPara->loadParaFromFile();
|
|
//qDebug()<<"openFIle"<<sysPara->sysFile;
|
|
snprintf(sysPara->para.lastOpenedFileName,sizeof(sysPara->para.lastOpenedFileName),"%s",fileName.toAscii().constData());
|
|
}
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
}
|
|
file.close();
|
|
}
|
|
|
|
|
|
void TextEditOption::onOpenFIle_select(){
|
|
|
|
QStringList files = fileDialog->selectedFiles();
|
|
for(int i = 0;i < files.size(); i++){
|
|
openFIle(files.value(i));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void TextEditOption::on_buttonSaveAS_clicked()
|
|
{
|
|
#ifdef MYSAVEFILEDLG
|
|
disconnect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),0,0);
|
|
connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool)));
|
|
dialogSaveFile->refreshListView(editMode);
|
|
dialogSaveFile->show();
|
|
dialogSaveFile->setEnterFileName("");
|
|
#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),QString("files (*.html *.txt)"));
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
void TextEditOption::saveFile(){
|
|
if(fileName.endsWith(".txt")){
|
|
QMessageBox::StandardButton ret;
|
|
ret = QMessageBox::warning(this, tr("警告"),
|
|
tr("以.txt保存将丢失所有格式,你是否愿意保存为.html格式?"),
|
|
QMessageBox::Ok | QMessageBox::Cancel);
|
|
if (ret == QMessageBox::Ok){
|
|
fileName += ".html";
|
|
}
|
|
}
|
|
QString html = textEdit->toHtml();
|
|
QString pattern = "<img src=\""UDISK_DOC_ROOT_DIR"([\\w.]*)";
|
|
QRegExp rx(pattern);
|
|
bool picFromUdisk = false;
|
|
int from = 0;
|
|
while(from < html.size() && from != -1){ //检查是否有图片来自U盘
|
|
from = html.indexOf(rx,from);
|
|
if(from != -1){
|
|
from ++;
|
|
picFromUdisk = true;
|
|
QMessageBox::StandardButton ret;
|
|
ret = QMessageBox::information(0,tr("提醒"),tr("检测到有图片 %1 来自U盘,是否拷贝图片到本地?").arg(rx.cap(1)),
|
|
QMessageBox::Ok | QMessageBox::Cancel);
|
|
if(ret == QMessageBox::Ok){
|
|
system((char *)((QString("cp "UDISK_DOC_ROOT_DIR"%1 "DOC_ROOT_DIR).arg(rx.cap(1))).toUtf8().data()));
|
|
}
|
|
}
|
|
}
|
|
if(picFromUdisk){
|
|
textEdit->setHtml(html.replace(UDISK_DOC_ROOT_DIR,DOC_ROOT_DIR));
|
|
}
|
|
QTextDocumentWriter writer(fileName);
|
|
|
|
//writer.setFormat("html");
|
|
bool success = writer.write(textEdit->document());
|
|
if (success){
|
|
textEdit->document()->setModified(false);
|
|
ui->bottonSave->setEnabled(false);
|
|
if(sysPara){
|
|
sysPara->sysFile =fileName;
|
|
snprintf(sysPara->para.lastOpenedFileName,sizeof(sysPara->para.lastOpenedFileName),"%s",fileName.toAscii().constData());
|
|
}
|
|
}
|
|
else {
|
|
QMessageBox::warning(this,tr("警告"),tr("无法保存文件") + fileName);
|
|
}
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
checkNewFileAppending();
|
|
}
|
|
|
|
|
|
void TextEditOption::onSaveAS_FIle_select(){
|
|
QStringList files = fileDialog->selectedFiles();
|
|
for(int i = 0;i < files.size(); i++){
|
|
fileName = files[i];
|
|
|
|
if(!fileName.endsWith(".html",Qt::CaseInsensitive) && !fileName.endsWith(".txt",Qt::CaseInsensitive))
|
|
fileName += ".html";
|
|
saveFile();
|
|
}
|
|
}
|
|
|
|
|
|
void TextEditOption::onSaveASFile(QString filename,bool Flag){// use for dialogSaveFile class
|
|
fileName = filename;
|
|
if(!fileName.endsWith(".html",Qt::CaseInsensitive) && !fileName.endsWith(".txt",Qt::CaseInsensitive))
|
|
fileName += ".html";
|
|
|
|
saveFile();
|
|
//emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
//qDebug()<<fileName;
|
|
}
|
|
|
|
void TextEditOption::checkNewFileAppending(){
|
|
if(newFileAppending){
|
|
textEdit->clear();
|
|
fileName = "";
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
setFontFormat();
|
|
onDialogLineSpaceAccepted();
|
|
}
|
|
newFileAppending = false;
|
|
}
|
|
|
|
void TextEditOption::onSave_File_reject(){
|
|
checkNewFileAppending();
|
|
}
|
|
|
|
void TextEditOption::on_bottonSave_clicked()
|
|
{
|
|
if(sysPara->para.EditMode==SCENE){
|
|
//在场景模式下,这个是确定按钮,切换到场景模式
|
|
if(sceneEditItem)
|
|
{
|
|
editItemModeDone();
|
|
emit editItemDone();
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if(fileName.isEmpty()){
|
|
#ifdef MYSAVEFILEDLG
|
|
disconnect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),0,0);
|
|
connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool)));
|
|
dialogSaveFile->refreshListView(editMode);
|
|
dialogSaveFile->show();
|
|
dialogSaveFile->setEnterFileName("");
|
|
#else
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onSaveAS_FIle_select()));
|
|
connect(fileDialog,SIGNAL(rejected()),this,SLOT(onSave_File_reject()));
|
|
fileDialog->showFileDialog(tr("保存..."),QString(DOC_ROOT_DIR),QString("HTML files (*.html)"));
|
|
#endif
|
|
}
|
|
else {
|
|
saveFile();
|
|
newFileAppending = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool TextEditOption::maybeSave(){
|
|
if (!textEdit->document()->isModified())
|
|
return true;
|
|
if (fileName.startsWith(QLatin1String(":/")))
|
|
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_bottonSave_clicked();
|
|
return false;
|
|
} else if (msgBox.clickedButton() == cancleSaveButton) {
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
void TextEditOption::on_bottonNew_pressed()
|
|
{
|
|
if (maybeSave()) {
|
|
//setFontFormat();
|
|
textEdit->clear();
|
|
fileName = "";
|
|
QFile file(fileName);
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
}
|
|
#ifdef VARCOLOR
|
|
textEdit->insertHtml(QString("<span style='background:#ffffff;color=#000000;'> <span />"));
|
|
#endif
|
|
|
|
}
|
|
|
|
void TextEditOption::onOpenNewFile()
|
|
{
|
|
//if (maybeSave())
|
|
{
|
|
//setFontFormat();
|
|
textEdit->clear();
|
|
fileName = "";
|
|
QFile file(fileName);
|
|
emit fileNameChanged(QFileInfo(fileName).fileName());
|
|
}
|
|
#ifdef VARCOLOR
|
|
textEdit->insertHtml(QString("<span style='background:#ffffff;color=#000000;'> <span />"));
|
|
#endif
|
|
|
|
}
|
|
|
|
void TextEditOption::on_buttonInsertVari_pressed()
|
|
{ QString s,fontname="";
|
|
if(sysPara)
|
|
{
|
|
|
|
//s.sprintf("%s(%02dX%02d)",sysPara->para.qrOption.text,sysPara->para.qrOption.width,sysPara->para.qrOption.height);
|
|
s= sysPara->para.qrOption.text;
|
|
if(s.length()>120)s="string to long.";
|
|
dialogInsertVari->setValue("");
|
|
}
|
|
|
|
if(dialogInsertVari->exec() == QDialog::Accepted && sysPara){
|
|
// qDebug()<< "dialogInsertVari::Accepted";
|
|
int pixelSize = ui->labelFontSize->text().toInt();
|
|
QFont font;
|
|
fontname=ui->labFontFamily->text();
|
|
//qDebug()<< "fontname:"<<fontname;
|
|
|
|
font.setFamily(
|
|
//Public::getFontFamily(pixelSize) // 20160812 未实现横向字体 以前的
|
|
fontname // 20160812
|
|
);
|
|
//qDebug()<< "font name:"<<Public::getFontFamily(pixelSize, 0);
|
|
//pixelSize==7? font.setFamily(fontname):font.setFamily(Public::getFontFamily(pixelSize, 0));
|
|
font.setPixelSize(pixelSize);
|
|
font.setWeight(ui->checkBoxBold->isChecked() && (pixelSize<=16) ?QFont::Bold:QFont::Normal);
|
|
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing,sysPara->para.textEditCharSpace);
|
|
|
|
//qDebug()<<font<<sysPara->para.textEditCharSpace<<QFont::AbsoluteSpacing;
|
|
|
|
QFontMetrics fontMetrics(font);
|
|
|
|
int width = (fontMetrics.width("0123456789"))/10;
|
|
if(sysPara->para.flagOfModuleDecimal || sysPara->para.flagOfModuleHide){
|
|
width = (fontMetrics.width("0123456789.m "))/13;
|
|
}
|
|
// if(sysPara->para.printNumPoint)
|
|
// {
|
|
// width = (fontMetrics.width("0123456789."))/11 ;
|
|
// }
|
|
// else
|
|
// {
|
|
// width = (fontMetrics.width("0123456789"))/10 ;
|
|
// }
|
|
|
|
|
|
int height = fontMetrics.ascent()+ fontMetrics.descent();
|
|
int digitalNum;
|
|
int varType;
|
|
|
|
// 调整变量占位区的大小
|
|
//qDebug()<<"leading:"<<fontMetrics.leading()<<"descent:"<<fontMetrics.descent()<<"ascent:"<<fontMetrics.ascent();
|
|
|
|
#ifndef ADJ
|
|
|
|
height = Public::getNumberHeight(font);
|
|
//if(pixelSize==12 && height<10) height =12;
|
|
//qDebug()<<"Var:"<<height;
|
|
|
|
#endif
|
|
|
|
|
|
unsigned char splitMode=sysPara->para.ExpirySplitMode;
|
|
dialogInsertVari->getValue(&varType,&digitalNum,&splitMode);
|
|
|
|
fmt = textEdit->currentCharFormat ();
|
|
|
|
if((varType<9 || varType==13 || varType==14 || varType == 15) // 普通变量;varType=13 is CNT3 var
|
|
// ||(varType>=20 && varType<29) // 横左变量
|
|
// ||(varType>=40 && varType<49) // 右横变量
|
|
)
|
|
{
|
|
int varType1= varType;
|
|
|
|
if(fontname.contains("SerifL") ||fontname.contains("serifl") )
|
|
varType1= 20+varType;
|
|
else if(fontname.contains("SerifR") ||fontname.contains("serifr") )
|
|
varType1= 20+varType;
|
|
else if(fontname.contains("bangla") )
|
|
varType1= 30+varType;
|
|
else if(fontname.contains("biyangF") )
|
|
varType1= 50+varType;
|
|
else if(fontname.contains("Roman") )
|
|
varType1= 60+varType;
|
|
// varType1= 40+varType; // 变量右横时取 40,左横时取 20
|
|
// qDebug()<<"pixelSize:"<<pixelSize;
|
|
// if(pixelSize)
|
|
// width += 1;
|
|
textEdit->insertHtml(QString("<img src=':/%1/%5/../image/digitalWidth%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType).arg(ui->checkBoxBold->isChecked() && (pixelSize<=16)?(digitalNum*100 + 75):digitalNum)
|
|
.arg(height+1).arg(width*digitalNum).arg(varType1)); //插入索引后
|
|
// qDebug()<<"vari heigh:"<<height+1;
|
|
// qDebug()<<"vari width:"<<width*digitalNum;
|
|
//textEdit->mergeCurrentCharFormat(fmt);
|
|
} // 普通变量 VarType<=8
|
|
else if(varType >=9 && varType <=11)
|
|
{ //
|
|
#ifdef _2DCODE_
|
|
s= sysPara->para.qrOption.text;
|
|
dlgQrcode->move( (this->width() - dlgQrcode->width())/2 ,10);
|
|
if(varType==9){
|
|
dlgQrcode->flagInsert=1;
|
|
sysPara->para.qrOption.AutoCount=1;
|
|
sysPara->para.qrOption.AutoRefresh=1;
|
|
sysPara->para.qrOption.type=0;
|
|
sysPara->para.qrOption.cntNum=digitalNum; //digitalNum
|
|
dlgQrcode->setWindowTitle(tr("二维码变量设置"));
|
|
dlgQrcode->SetOption(&sysPara->para.qrOption);
|
|
dlgQrcode->setCntCheckBoxHide(0);
|
|
dlgQrcode->show();
|
|
}
|
|
|
|
else if(varType==10){
|
|
dlgQrcode->flagInsert=1;
|
|
sysPara->para.qrOption.AutoCount=1;
|
|
sysPara->para.qrOption.AutoRefresh=1;
|
|
sysPara->para.qrOption.type=1;
|
|
sysPara->para.qrOption.cntNum=digitalNum;
|
|
dlgQrcode->setCntCheckBoxHide(0);
|
|
dlgQrcode->setWindowTitle("二维码变量设置");
|
|
dlgQrcode->SetOption(&sysPara->para.qrOption);
|
|
dlgQrcode->show();
|
|
}
|
|
|
|
else if(varType==11){
|
|
barcode->move(0,0);
|
|
barcode->flagInsert=1;
|
|
sysPara->para.qrOption.AutoCount=1;
|
|
sysPara->para.qrOption.AutoRefresh=1;
|
|
sysPara->para.qrOption.type=1;
|
|
sysPara->para.qrOption.cntNum=digitalNum;
|
|
barVarFont = font;
|
|
barVarHeight=height;
|
|
barVarWidth =width;
|
|
//barcode->setCntCheckBoxHide(0);
|
|
barcode->setWindowTitle("条形码变量设置");
|
|
barcode->SetOption(&sysPara->para.bcOption);
|
|
barcode->show();
|
|
|
|
}
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
#endif
|
|
}
|
|
else if(varType ==RANDOMNUM){ //12
|
|
//digitalNum=13;
|
|
//qDebug()<<"digitalNum"<<digitalNum;
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/digitalWidth%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType).arg(ui->checkBoxBold->isChecked() && (pixelSize<=16)?(digitalNum*100 + 75):digitalNum)
|
|
.arg(height+1).arg(width*digitalNum)); //插入索引后
|
|
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
else if(varType ==EXPIRYDATE){ //80 :/80/image/expiryDate8.bmp qrc:/80/image/expiryDate875.bmp
|
|
// QImage img;
|
|
// img.load("/home/student/mini2440/UP/QtUI/QRUI_SUNV54/80/image/digitalWidth8.bmp");
|
|
// img.setPixel(0,4,0xffff0Cfc);
|
|
// img.setPixel(0,5,0xffff0Cfc);
|
|
// img.save("/home/student/mini2440/UP/QtUI/QRUI_SUNV54/80/image/curDate8.bmp");
|
|
// 0xff00fc
|
|
int varType1 = varType;
|
|
if(fontname.contains("bangla") )
|
|
{
|
|
varType1= 10+varType;
|
|
}
|
|
else if(fontname.contains("biyangF") )
|
|
{
|
|
varType1= 20+varType;
|
|
}
|
|
else if(fontname.contains("Roman") )
|
|
{
|
|
varType1= 30+varType;
|
|
}
|
|
|
|
sysPara->print.ExpiryVar.splitMode=splitMode;
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing,sysPara->para.textEditCharSpace);
|
|
QFontMetrics fontMetrics(font);
|
|
QHash<int, QString> dateFormat;
|
|
dateFormat.insert(0,"yyyy-MM-dd");
|
|
dateFormat.insert(1,"yyyy/MM/dd");
|
|
dateFormat.insert(2,"yyyyMMdd");
|
|
dateFormat.insert(3,"yyyy年MM月dd日");
|
|
dateFormat.insert(4,"yyyy-MM-dd hh:mm");
|
|
dateFormat.insert(5,"yyyy/MM/dd hh:mm");
|
|
dateFormat.insert(6,"yyyyMMddhhmm");
|
|
dateFormat.insert(7,"yyyy年MM月dd日 hh:mm");
|
|
dateFormat.insert(8,"hh:mm");
|
|
dateFormat.insert(9,"ddhhmm");
|
|
dateFormat.insert(10,"dd MM yy");
|
|
dateFormat.insert(11,"dd/MM/yy");
|
|
dateFormat.insert(12,"dd/MM/yyyy");
|
|
dateFormat.insert(13,"dd-MM-yy");
|
|
dateFormat.insert(14,"dd-MM-yyyy");
|
|
//dateFormat.insert(10,"x");
|
|
QString DateTime = QDateTime::currentDateTime().toString(dateFormat.value(splitMode));
|
|
//qDebug()<<"DateTime "<<DateTime;
|
|
int dateTimeWidth = fontMetrics.width(DateTime);
|
|
// qDebug()<<" ExpiryVar height"<<height;
|
|
// qDebug()<<"splitMode="<<splitMode;
|
|
// qDebug()<<" dateTimeWidth"<<dateTimeWidth;
|
|
|
|
if(DateTime == "x")
|
|
{
|
|
qDebug()<<" x handle";
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/digitalWidth%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(175):1)
|
|
.arg(height+1).arg(dateTimeWidth+4)); //插入索引后
|
|
sysPara->print.ExpiryVar.bold = ui->checkBoxBold->checkState();
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}else
|
|
{
|
|
if(splitMode == 3 || splitMode ==7 )
|
|
{
|
|
height = fontMetrics.ascent();
|
|
}
|
|
// textEdit->insertHtml(QString("<img src=':/%1/image/expiryDate%2.bmp' height='%3' width='%4'/>")
|
|
// .arg(varType).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):8)
|
|
// .arg(height+1).arg(width*(splitMode<2?9:7)+(width>>1))); //插入索引后
|
|
//sysPara->print.ExpiryVar.bold = ui->checkBoxBold->isChecked();
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/expiryDate%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType1).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):8)
|
|
.arg(height+1).arg(dateTimeWidth+4)); //插入索引后
|
|
sysPara->print.ExpiryVar.bold = ui->checkBoxBold->checkState();
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
}
|
|
else if(varType ==CURDATE ){ //81 :/80/image/expiryDate8.bmp qrc:/80/image/curDate8.bmp
|
|
#if 0
|
|
QImage img;
|
|
img.load("/home/student/mini2440/UP/QtUI/QRUI_SUNV54/80/image/digitalWidth8.bmp");
|
|
img.setPixel(0,4,0xffff0Cfc);
|
|
img.setPixel(0,5,0xffff0Cfc);
|
|
img.save("/home/student/mini2440/UP/QtUI/QRUI_SUNV54/81/image/curDate8.bmp");
|
|
#endif
|
|
int varType1 = varType;
|
|
if(fontname.contains("bangla") )
|
|
{
|
|
varType1= 10+varType;
|
|
}
|
|
else if(fontname.contains("biyangF") )
|
|
{
|
|
varType1= 20+varType;
|
|
}
|
|
else if(fontname.contains("biyangF") )
|
|
{
|
|
varType1= 30+varType;
|
|
}
|
|
|
|
// 0xff00fc
|
|
//qDebug()<<"CurDateVar height"<<height;
|
|
sysPara->print.CurDateVar.splitMode = splitMode;
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing, sysPara->para.textEditCharSpace);
|
|
QFontMetrics fontMetrics(font);
|
|
QHash<int, QString> dateFormat;
|
|
dateFormat.insert(0,"yyyy-MM-dd");
|
|
dateFormat.insert(1,"yyyy/MM/dd");
|
|
dateFormat.insert(2,"yyyyMMdd");
|
|
dateFormat.insert(3,"yyyy年MM月dd日");
|
|
dateFormat.insert(4,"yyyy-MM-dd hh:mm");
|
|
dateFormat.insert(5,"yyyy/MM/dd hh:mm");
|
|
dateFormat.insert(6,"yyyyMMddhhmm");
|
|
dateFormat.insert(7,"yyyy年MM月dd日 hh:mm");
|
|
dateFormat.insert(8,"hh:mm");
|
|
dateFormat.insert(9,"ddhhmm");
|
|
dateFormat.insert(10,"dd MM yy");
|
|
dateFormat.insert(11,"dd/MM/yy");
|
|
dateFormat.insert(12,"dd/MM/yyyy");
|
|
dateFormat.insert(13,"dd-MM-yy");
|
|
dateFormat.insert(14,"dd-MM-yyyy");
|
|
//dateFormat.insert(10,"x");
|
|
// dateFormat.insert(10,"A dd MM yy");
|
|
QString DateTime = QDateTime::currentDateTime().toString(dateFormat.value(splitMode));
|
|
int dateTimeWidth = fontMetrics.width(DateTime) ;
|
|
qDebug()<<"insert splitMode="<<splitMode;
|
|
#if 0
|
|
if(DateTime != "x")
|
|
{
|
|
// textEdit->insertHtml(QString("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4'/>")
|
|
// .arg(varType).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):8)
|
|
// .arg(height+1).arg(width*(splitMode<2?9:7)+(width>>1))); //插入索引后
|
|
// sysPara->print.CurDateVar.bold = ui->checkBoxBold->checkState();
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):8)
|
|
.arg(height+1).arg(dateTimeWidth+2)); //插入索引后
|
|
sysPara->print.CurDateVar.bold = ui->checkBoxBold->checkState();
|
|
//qDebug()<<"sysPara->print.CurDateVar.bold:"<<sysPara->print.CurDateVar.bold;
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
#endif
|
|
if(DateTime == "x")
|
|
{
|
|
qDebug()<<" x handle";
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):1)
|
|
.arg(height+1).arg(dateTimeWidth+4)); //插入索引后
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}else
|
|
{
|
|
if(splitMode == 3 || splitMode ==7 )
|
|
{
|
|
height = fontMetrics.ascent();//fontMetrics.ascent()+ fontMetrics.descent();
|
|
}
|
|
// textEdit->insertHtml(QString("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4'/>")
|
|
// .arg(varType).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):8)
|
|
// .arg(height+1).arg(width*(splitMode<2?9:7)+(width>>1))); //插入索引后
|
|
// sysPara->print.CurDateVar.bold = ui->checkBoxBold->checkState();
|
|
qDebug()<<"height:"<<height;
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType1).arg(ui->checkBoxBold->checkState() && (pixelSize<=16)?(875):8)
|
|
.arg(height+1).arg(dateTimeWidth+4)); //插入索引后
|
|
//sysPara->print.CurDateVar.bold = ui->checkBoxBold->checkState();
|
|
//qDebug()<<"sysPara->print.CurDateVar.bold:"<<sysPara->print.CurDateVar.bold;
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
}
|
|
else if(varType == CURCLASS) { //82 :/82/image/curDate1.bmp
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing,sysPara->para.textEditCharSpace);
|
|
QFontMetrics fontMetrics(font);
|
|
int dateTimeWidth = fontMetrics.width("A") ;
|
|
int pixBmpSize = 1;
|
|
if (ui->checkBoxBold->checkState() && (pixelSize<=16)) {
|
|
pixBmpSize = 875;
|
|
}
|
|
else {
|
|
if(pixelSize >= 9) {
|
|
pixBmpSize = 91;
|
|
}
|
|
else {
|
|
pixBmpSize = 1;
|
|
}
|
|
}
|
|
qDebug()<<"height:"<<height<<"pixBmpSize:"<<pixBmpSize;
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/class%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType).arg(pixBmpSize)
|
|
.arg(height+1).arg(dateTimeWidth+2)); //插入索引后
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
textEdit->setFocus();
|
|
}
|
|
}
|
|
|
|
|
|
void TextEditOption::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
|
|
{
|
|
|
|
QTextCursor cursor = textEdit->textCursor();
|
|
//if (!cursor.hasSelection())
|
|
// cursor.select(QTextCursor::WordUnderCursor);
|
|
//cursor.mergeCharFormat(format);
|
|
//textEdit->setTextCursor(cursor);
|
|
//qDebug()<<"mergeFormatOnWordOrSelection"<<format;
|
|
//qDebug()<<cursor;
|
|
textEdit->mergeCurrentCharFormat(format);
|
|
}
|
|
|
|
void TextEditOption::updateSysParaToUI() //重载
|
|
{
|
|
if(sysPara){
|
|
/*务必先设置行距*/
|
|
dialogLineSpace->setValue(sysPara->para.textEditLineSpace,sysPara->para.textEditCharSpace);
|
|
onDialogLineSpaceAccepted();
|
|
/*将文件打开*/
|
|
QString file = QString(sysPara->para.lastOpenedFileName);
|
|
if(QFile::exists(file)){
|
|
sysPara->sysFile =file;
|
|
onFileOpen(file,false);
|
|
}
|
|
dialogFontSize->setValue(sysPara->para.fontPixelSize);
|
|
}
|
|
}
|
|
|
|
void TextEditOption::onMbSetLineAndChar(int line_space, int char_space)
|
|
{
|
|
sysPara->para.textEditLineSpace = line_space;
|
|
sysPara->para.textEditCharSpace = char_space;
|
|
dialogLineSpace->setValue(sysPara->para.textEditLineSpace,sysPara->para.textEditCharSpace);
|
|
onDialogLineSpaceAccepted();
|
|
}
|
|
|
|
QLabel *TextEditOption::getLabelFontSize(){
|
|
return ui->labelFontSize;
|
|
}
|
|
|
|
QLabel *TextEditOption::getLabelFontFamily(){
|
|
return ui->labFontFamily;
|
|
}
|
|
|
|
void TextEditOption::setFontFormat(){
|
|
if(sysPara){
|
|
|
|
qreal pixelSize = ui->labelFontSize->text().toFloat();
|
|
if(pixelSize < Public::getMinFontPixelSize())
|
|
pixelSize = sysPara->para.fontPixelSize;
|
|
|
|
if(pixelSize < Public::getMinFontPixelSize()){
|
|
pixelSize = Public::getMinFontPixelSize();
|
|
}
|
|
|
|
if (pixelSize >= 0) {
|
|
QTextCharFormat fmt;
|
|
int DPI = textEdit->logicalDpiX();
|
|
DPI = DPI?DPI:1;
|
|
qreal pointSize = pixelSize*72/DPI; //Pixel = DPI * Point / 72
|
|
fmt.setFontPointSize(pointSize);
|
|
#ifdef VNLGXX
|
|
QString fontFamily = dialogFontSize->getFontFamily();
|
|
|
|
#else
|
|
QString fontFamily = // Public::getFontFamily((int)pixelSize);
|
|
ui->labFontFamily->text();
|
|
ui->labFontFamily->setText(fontFamily);
|
|
#endif
|
|
fmt.setFontFamily(fontFamily);
|
|
fmt.setFontWeight(ui->checkBoxBold->isChecked() && (pixelSize<=16)? QFont::Bold:QFont::Normal);
|
|
//fmt.setUnderlineStyle();
|
|
//fmt.setVerticalAlignment(QTextCharFormat::AlignBottom);
|
|
//QfontMetrics.bottom
|
|
//fmt.setUnderlineStyle(QTextCharFormat::NoUnderline);
|
|
//qDebug() << "logicalDpiX:" << textEdit->logicalDpiX() << "logicalDpiY:" << textEdit->logicalDpiY();
|
|
//qDebug() << "physicalDpiX:" << textEdit->physicalDpiX() << "physicalDpiX:" << textEdit->physicalDpiX();
|
|
mergeFormatOnWordOrSelection(fmt);
|
|
// QFont font = textEdit->document()->defaultFont();
|
|
// font.setPointSizeF(pointSize);
|
|
// textEdit->document()->setDefaultFont(font);
|
|
|
|
//qDebug()<<"Font:"<<fontFamily<<pixelSize;
|
|
}
|
|
}
|
|
}
|
|
|
|
void TextEditOption::currentCharFormatChanged(const QTextCharFormat &format){
|
|
QFont font = format.font();
|
|
//qDebug()<<"pixelSize:"<<font.pixelSize();
|
|
//qDebug()<<"pixelSize:"<<font.pointSize();
|
|
sysPara->para.fontPixelSize = font.pointSize();
|
|
dialogFontSize->setValue(sysPara->para.fontPixelSize);
|
|
ui->checkBoxBold->setChecked(font.bold());
|
|
}
|
|
|
|
QPushButton * TextEditOption::getPushButtonPreview(){
|
|
return ui->pushButtonPreview;
|
|
}
|
|
QCheckBox *TextEditOption::getCheckBoxBold(){
|
|
return ui->checkBoxBold;
|
|
}
|
|
|
|
void TextEditOption::on_pushButtonFile_pressed()
|
|
{
|
|
if(sceneEditItem)
|
|
{
|
|
dialogFileOperation->refreshListView(TXTFILE);
|
|
dialogFileOperation->exec();
|
|
}
|
|
else
|
|
{
|
|
dialogFileOperation->refreshListView(editMode);
|
|
dialogFileOperation->exec();
|
|
}
|
|
}
|
|
|
|
|
|
void TextEditOption::on_buttonSelectFont_pressed()
|
|
{
|
|
if(dialogFontSize->exec() == QDialog::Accepted){
|
|
int fontSize;
|
|
QString fontFamily;
|
|
dialogFontSize->getValue(&fontSize);
|
|
fontFamily = dialogFontSize->getFontFamily();
|
|
ui->labFontFamily->setText(fontFamily);
|
|
#ifdef EnableArabic
|
|
bool switchArabicFlag=false;
|
|
bool arabicSelect=fontFamily.contains("arabic");
|
|
if((fontFamily=="biyang" || fontFamily=="wenquanyi")&&(fontSize==7 || fontSize==9)){
|
|
switchArabicFlag=true;
|
|
emit EnableSwitchArabicFlag(switchArabicFlag);
|
|
}else {
|
|
emit EnableSwitchArabicFlag(switchArabicFlag);
|
|
}
|
|
dialogSaveFile->setFileNameEnglishOrArabic(false);
|
|
emit fontSizeArabicSelect(arabicSelect);
|
|
#endif
|
|
if(sysPara){
|
|
sysPara->para.fontPixelSize = fontSize;
|
|
}
|
|
ui->labelFontSize->setText(QString::number(fontSize));
|
|
setFontFormat();
|
|
textEdit->setFocus();
|
|
emit fontSizeChange(fontSize);
|
|
bool flagBangal=false;
|
|
if(dialogFontSize->getFontFamily() == "bangla")
|
|
flagBangal = true;
|
|
emit switchBengalLanguage(flagBangal);
|
|
}
|
|
|
|
}
|
|
|
|
void TextEditOption::on_checkBoxBold_released()
|
|
{
|
|
setFontFormat();
|
|
textEdit->setFocus();
|
|
}
|
|
|
|
|
|
void TextEditOption::onDialogLineSpaceAccepted(){
|
|
dialogLineSpace->getValue(&sysPara->para.textEditLineSpace,&sysPara->para.textEditCharSpace);
|
|
// QString str = textEdit->toHtml();
|
|
// updateFileVariWidth(str);
|
|
// textEdit->setHtml(str);
|
|
for(QTextBlock textBlock = textEdit->document()->begin();textBlock != textEdit->document()->end(); textBlock = textBlock.next()){
|
|
QTextBlockFormat textBlockFormat = textBlock.blockFormat();
|
|
textBlockFormat.setAlignment(Qt::AlignBottom);
|
|
textBlockFormat.setTopMargin(-1);
|
|
textBlockFormat.setBottomMargin(sysPara->para.textEditLineSpace-1);
|
|
QTextCursor textCursor = textEdit->textCursor();
|
|
textCursor.setPosition(textBlock.position());
|
|
textCursor.setBlockFormat(textBlockFormat);
|
|
textEdit->setTextCursor(textCursor);
|
|
}
|
|
|
|
// QString str = textEdit->toHtml();
|
|
// updateFileVariWidth(str);
|
|
// textEdit->setHtml(str);
|
|
|
|
QFont font = textEdit->font();
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing,sysPara->para.textEditCharSpace);
|
|
textEdit->setFont(font);
|
|
}
|
|
void TextEditOption::on_buttonLineSpace_clicked()
|
|
{
|
|
if(dialogLineSpace->exec() == QDialog::Accepted){
|
|
onDialogLineSpaceAccepted();
|
|
sysPara->saveParaToFile();
|
|
textEdit->setFocus();
|
|
sysPara->para.alterPrint.lineSpace = sysPara->para.textEditLineSpace;
|
|
}
|
|
}
|
|
|
|
void TextEditOption::InsertQRCodeToEdit(QString barCodeName,int width,int height ,int enSave){
|
|
#ifdef _2DCODE_
|
|
textEdit->setText("");
|
|
InsertQRCodeToEdit(barCodeName, width, height);
|
|
fileName = DOC_ROOT_DIR +QFileInfo(barCodeName).baseName() +".html";
|
|
if(enSave) saveFile();
|
|
#endif
|
|
}
|
|
void TextEditOption::InsertBarCodeToEdit(QString barCodeName,int width,int height ,int enSave){
|
|
#ifdef _2DCODE_
|
|
textEdit->setText("");
|
|
InsertBarCodeToEdit(barCodeName, width, height);
|
|
fileName = DOC_ROOT_DIR +QFileInfo(barCodeName).baseName() +".html";
|
|
if(enSave) saveFile();
|
|
#endif
|
|
}
|
|
void TextEditOption::InsertBarCodeToEdit(QString barCodeName,int width,int height )
|
|
{
|
|
#ifdef _2DCODE_
|
|
//dialogInsertVari->getValue(&varType,&digitalNum);
|
|
QTextCharFormat fmt = textEdit->currentCharFormat ();
|
|
textEdit->insertHtml(QString("<img src='%1' height='%2' width='%3'/>")
|
|
.arg(barCodeName)
|
|
.arg(height).arg(width)); //插入索引后
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
//textEdit->setFocus();
|
|
//qDebug()<<"TEOption:"<<barCodeName<<width<<height;
|
|
#endif
|
|
}
|
|
|
|
void TextEditOption::InsertQRCodeToEdit(QString barCodeName,int width,int height )
|
|
{
|
|
#ifdef _2DCODE_
|
|
//dialogInsertVari->getValue(&varType,&digitalNum);
|
|
QTextCharFormat fmt = textEdit->currentCharFormat ();
|
|
textEdit->insertHtml(QString("<img src='%1' height='%2' width='%3'/>")
|
|
.arg(barCodeName)//QFileInfo(barCodeName).
|
|
.arg(width).arg(height)); //插入索引后
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
//textEdit->setFocus();
|
|
//qDebug()<<"TEOption:"<<barCodeName<<width<<height;
|
|
#endif
|
|
}
|
|
|
|
void TextEditOption::onQRCodeClose(){
|
|
#ifdef _2DCODE_
|
|
if(dlgQrcode->flagInsert ) {
|
|
dlgQrcode->GetOption((qrOption_t*)&sysPara->para.qrOption);
|
|
dlgQrcode->flagInsert=0;
|
|
if(sysPara->para.EditMode==PICFILE){
|
|
|
|
}
|
|
else {
|
|
|
|
if(sysPara->para.qrOption.type==0){
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/DMTV%2.bmp' height='%2' width='%3' />")
|
|
.arg(9).arg(sysPara->para.qrOption.height).arg(sysPara->para.qrOption.width)); //插入索引后
|
|
}
|
|
else if(sysPara->para.qrOption.type==1){
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/QRV%2.bmp' height='%2' width='%3' />")
|
|
.arg(10).arg(sysPara->para.qrOption.height).arg(sysPara->para.qrOption.width)); //插入索引后
|
|
}
|
|
else if(sysPara->para.qrOption.type==2){
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/BARV%2.bmp' height='%2' width='%3' />")
|
|
.arg(11).arg(sysPara->para.qrOption.height).arg(sysPara->para.qrOption.width)); //插入索引后
|
|
}
|
|
}
|
|
}
|
|
sysPara->saveParaToFile();
|
|
#endif
|
|
}
|
|
void TextEditOption::onBarCodeClose(){
|
|
#ifdef _2DCODE_
|
|
bcPara_t bcoption;
|
|
if(barcode->flagInsert ) {
|
|
barcode->GetOption((bcOption_t*)&sysPara->para.bcOption);
|
|
//qDebug()<<"onBarCodeClose"<<sysPara->para.bcOption.barType<<sysPara->para.bcOption.height;
|
|
barcode->GetOption2((bcPara_t*)&bcoption);
|
|
//qDebug()<<"onBarCodeClose"<<bcoption.type;
|
|
sysPara->para.bcOption.barType = bcoption.type;
|
|
barcode->flagInsert=0;
|
|
if(sysPara->para.EditMode==PICFILE){
|
|
|
|
}
|
|
else
|
|
{
|
|
fmt = textEdit->currentCharFormat ();
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/BARV%4.bmp' height='%2' width='%3' />")
|
|
.arg(11).arg(bcoption.height).arg(bcoption.width).arg(bcoption.type*100+bcoption.height));
|
|
|
|
//插入索引后
|
|
//qDebug()<<QString("<img src=':/%1/image/BARV%4.bmp' height='%2' width='%3' />")
|
|
// .arg(11).arg(bcoption.height).arg(bcoption.width).arg(bcoption.type*100+bcoption.height);
|
|
|
|
int varType1= 7;//CNT1:7, CNT2:8
|
|
int digitalNum;
|
|
if(sysPara->para.bcOption.var1En){
|
|
digitalNum=sysPara->para.bcOption.var1Num;
|
|
textEdit->insertHtml(QString("%1%2").arg(sysPara->para.bcOption.TxtModule).arg(sysPara->para.bcOption.TxtLine));
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/digitalWidth%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType1).arg(ui->checkBoxBold->isChecked() && (barVarHeight<=16)?(digitalNum*100 + 75):digitalNum)
|
|
.arg(barVarHeight+1).arg( barVarWidth*digitalNum)); //插入索引后
|
|
}
|
|
if(sysPara->para.bcOption.var2En)
|
|
{
|
|
digitalNum=sysPara->para.bcOption.var2Num;
|
|
textEdit->insertHtml(QString("<img src=':/%1/image/digitalWidth%2.bmp' height='%3' width='%4'/>")
|
|
.arg(varType1+1).arg(ui->checkBoxBold->isChecked() && (barVarHeight<=16)?(digitalNum*100 + 75):digitalNum)
|
|
.arg(barVarHeight+1).arg( barVarWidth*digitalNum)); //插入索引后
|
|
}
|
|
|
|
textEdit->mergeCurrentCharFormat(fmt);
|
|
}
|
|
}
|
|
sysPara->saveParaToFile();
|
|
#endif
|
|
}
|
|
|
|
void TextEditOption::onEditItemMode()
|
|
{
|
|
ui->bottonNew->setDisabled(true);
|
|
ui->buttonSaveAS->setDisabled(true);
|
|
ui->pushButtonPreview->setDisabled(true);
|
|
ui->bottonSave->setText(tr("完成"));
|
|
sceneEditItem = true;
|
|
}
|
|
void TextEditOption::editItemModeDone()
|
|
{
|
|
sceneEditItem = false;
|
|
ui->bottonNew->setDisabled(false);
|
|
ui->buttonSaveAS->setDisabled(false);
|
|
ui->pushButtonPreview->setDisabled(false);
|
|
ui->bottonSave->setText(tr("保存"));
|
|
}
|
|
|
|
void TextEditOption::modbus_insert_pic(QString filename)
|
|
{
|
|
// on_pushButtonFile_pressed();
|
|
dialogFileOperation->modbus_openfile(filename);
|
|
|
|
}
|
|
|
|
void TextEditOption::updateSysParaToZero() //重载
|
|
{
|
|
if(sysPara){
|
|
dialogLineSpace->setValue(sysPara->para.textEditLineSpace,sysPara->para.textEditCharSpace);
|
|
onDialogLineSpaceAccepted();
|
|
}
|
|
}
|
|
|
|
void TextEditOption::SetHiddenValue(bool select)
|
|
{
|
|
dialogInsertVari->EnableHiddenValue(select);
|
|
}
|
|
|
|
void TextEditOption::updateFileVariWidth(QString &str)
|
|
{
|
|
QString patternVariableFormat = "<img src=\":/(\\d*)/image/digitalWidth(\\d*).bmp\" width=\"(\\d*)\" height=\"(\\d*)\" />";
|
|
updateVariableFormat(str,patternVariableFormat);
|
|
|
|
QString patternNormalVar = "<img src=\":/(\\d*)/(\\d*)/../image/digitalWidth(\\d*).bmp\" width=\"(\\d*)\" height=\"(\\d*)\" />";
|
|
updateNormalVarWidth(str,patternNormalVar);
|
|
|
|
QString patternCurDateVar = "<img src=\":/(\\d*)/image/curDate(\\d*).bmp\" width=\"(\\d*)\" height=\"(\\d*)\" />";
|
|
updateProduceDateVarWidth(str,patternCurDateVar,2);
|
|
|
|
QString patternExpiryDateVar = "<img src=\":/(\\d*)/image/expiryDate(\\d*).bmp\" width=\"(\\d*)\" height=\"(\\d*)\" />";
|
|
updateProduceDateVarWidth(str,patternExpiryDateVar,1);
|
|
|
|
}
|
|
|
|
void TextEditOption::updateVariableFormat(QString& str,const QString& pattern){
|
|
QRegExp rx(pattern);
|
|
int from = 0;
|
|
// 正常变量
|
|
while(from < str.size() && from != -1) {
|
|
from = str.indexOf(rx,from);//返回匹配到到起始地址
|
|
bool ok;
|
|
if(from != -1){//找到匹配的
|
|
int varType = rx.cap(1).toInt(&ok);
|
|
// 获取匹配的<img>标签
|
|
QString matchedTag = rx.cap(0);
|
|
// 构建新的<img>标签
|
|
QString newTag = matchedTag;
|
|
int index = newTag.indexOf(QString::number(varType));
|
|
if(varType != -1){
|
|
newTag.insert(index+1,QString("/%1/..").arg(varType)); // :/7/image... :/7/7/../image
|
|
}
|
|
// 替换原始文本中的<img>标签
|
|
str.replace(from, rx.matchedLength(), newTag);
|
|
// from ++;
|
|
from+=newTag.length();
|
|
}
|
|
}
|
|
}
|
|
|
|
void TextEditOption::updateNormalVarWidth(QString& str,const QString& pattern)
|
|
{
|
|
QRegExp rx(pattern);
|
|
int from = 0;
|
|
// 正常变量
|
|
while(from < str.size() && from != -1) {
|
|
from = str.indexOf(rx,from);//返回匹配到到起始地址
|
|
bool ok;
|
|
if(from != -1){//找到匹配的
|
|
int width = rx.cap(4).toInt(&ok)*(sysPara->status.addSpace?2:1);
|
|
int height = rx.cap(5).toInt(&ok);
|
|
int height2 = getVariableHight(height);
|
|
int digitalNum = rx.cap(3).toInt(&ok);//第二个匹配,数字到个数
|
|
if(digitalNum>100){ //加粗
|
|
digitalNum/=100;
|
|
ui->checkBoxBold->setChecked(true);
|
|
}
|
|
// 获取匹配的<img>标签
|
|
QString matchedTag = rx.cap(0);
|
|
// 构建新的<img>标签,替换width属性值
|
|
QString newTag = matchedTag;
|
|
int singlewidth = getSingleDigitWidth(height2);
|
|
int newWidth= (singlewidth + sysPara->para.textEditCharSpace) * digitalNum;
|
|
if(newWidth == width){
|
|
return;
|
|
}
|
|
newTag.replace(QString("width=\"%1\"").arg(rx.cap(4)), QString("width=\"%1\"").arg(newWidth));
|
|
// 替换原始文本中的<img>标签
|
|
str.replace(from, rx.matchedLength(), newTag);
|
|
// from ++;
|
|
from+=newTag.length();
|
|
}
|
|
}
|
|
}
|
|
|
|
void TextEditOption::updateProduceDateVarWidth(QString &str,const QString pattern,int mode){
|
|
QRegExp rx(pattern);
|
|
int from = 0;
|
|
// 正常变量
|
|
while(from < str.size() && from != -1) {
|
|
from = str.indexOf(rx,from);//返回匹配到到起始地址
|
|
bool ok;
|
|
if(from != -1){//找到匹配的
|
|
int width = rx.cap(3).toInt(&ok)*(sysPara->status.addSpace?2:1);
|
|
int height = rx.cap(4).toInt(&ok);
|
|
int digitalNum = rx.cap(2).toInt(&ok);//第二个匹配,数字到个数
|
|
if(digitalNum>100){ //加粗
|
|
digitalNum/=100;
|
|
ui->checkBoxBold->setChecked(true);
|
|
}
|
|
// 获取匹配的<img>标签
|
|
QString matchedTag = rx.cap(0);
|
|
// 构建新的<img>标签,替换width属性值
|
|
QString newTag = matchedTag;
|
|
int newWidth= getDateVarWidth(height,mode);
|
|
// std::cout<<"newWidth:"<<newWidth<<std::endl;
|
|
// std::cout<<"width:"<<width<<std::endl;
|
|
if(newWidth == width){
|
|
return;
|
|
}
|
|
newTag.replace(QString("width=\"%1\"").arg(rx.cap(3)), QString("width=\"%1\"").arg(newWidth));
|
|
// 替换原始文本中的<img>标签
|
|
str.replace(from, rx.matchedLength(), newTag);
|
|
// from ++;
|
|
from+=newTag.length();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
int TextEditOption::getDateVarWidth(int height,int mode)
|
|
{
|
|
int pixelSize = getVariableHight(height);
|
|
QFont font;
|
|
QString fontname="biyang";
|
|
if(pixelSize>=12){
|
|
fontname="wenquanyi";
|
|
}
|
|
font.setFamily(
|
|
fontname // 20160812
|
|
);
|
|
font.setPixelSize(pixelSize);
|
|
font.setWeight(ui->checkBoxBold->isChecked() && (pixelSize<=16) ?QFont::Bold:QFont::Normal);
|
|
unsigned char splitMode=sysPara->para.ExpirySplitMode;
|
|
std::cout<<"sysPara->para.ExpirySplitMode"<< static_cast<int>(sysPara->para.ExpirySplitMode)<<std::endl;
|
|
if(mode==1){
|
|
sysPara->status.flagOfAdjustWidth_1 = 1;
|
|
sysPara->status.splitMode_Adjust_1= splitMode;
|
|
}
|
|
else if(mode ==2 ){
|
|
sysPara->status.flagOfAdjustWidth_2 = 1;
|
|
sysPara->status.splitMode_Adjust_2= splitMode;
|
|
}
|
|
// std::cout<<"mode:"<<mode<<std::endl;
|
|
// std::cout<<"sysPara->print.CurDateVar.splitMode1:"<< static_cast<int>(sysPara->print.CurDateVar.splitMode)<<std::endl;
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing, sysPara->para.textEditCharSpace);
|
|
QFontMetrics fontMetrics(font);
|
|
QHash<int, QString> dateFormat;
|
|
dateFormat.insert(0,"yyyy-MM-dd");
|
|
dateFormat.insert(1,"yyyy/MM/dd");
|
|
dateFormat.insert(2,"yyyyMMdd");
|
|
dateFormat.insert(3,"yyyy年MM月dd日");
|
|
dateFormat.insert(4,"yyyy-MM-dd hh:mm");
|
|
dateFormat.insert(5,"yyyy/MM/dd hh:mm");
|
|
dateFormat.insert(6,"yyyyMMddhhmm");
|
|
dateFormat.insert(7,"yyyy年MM月dd日 hh:mm");
|
|
dateFormat.insert(8,"hh:mm");
|
|
dateFormat.insert(9,"ddhhmm");
|
|
dateFormat.insert(10,"dd MM yy");
|
|
dateFormat.insert(11,"dd/MM/yy");
|
|
dateFormat.insert(12,"dd/MM/yyyy");
|
|
dateFormat.insert(13,"dd-MM-yy");
|
|
dateFormat.insert(14,"dd-MM-yyyy");
|
|
QString DateTime = QDateTime::currentDateTime().toString(dateFormat.value(splitMode));
|
|
int dateTimeWidth = fontMetrics.width(DateTime) ;
|
|
return dateTimeWidth+4;
|
|
}
|
|
|
|
|
|
int TextEditOption::getSingleDigitWidth(int height)
|
|
{
|
|
// int pixelSize = ui->labelFontSize->text().toInt();
|
|
int pixelSize = height;
|
|
QFont font;
|
|
QString fontname="biyang";
|
|
if(height>=12){
|
|
fontname="wenquanyi";
|
|
}
|
|
font.setFamily(
|
|
fontname // 20160812
|
|
);
|
|
font.setPixelSize(pixelSize);
|
|
font.setWeight(ui->checkBoxBold->isChecked() && (pixelSize<=16) ?QFont::Bold:QFont::Normal);
|
|
font.setLetterSpacing(QFont::AbsoluteSpacing,0);
|
|
QFontMetrics fontMetrics(font);
|
|
int width = (fontMetrics.width("0"));
|
|
// int width = (fontMetrics.width("0123456789"))/10;
|
|
// if(sysPara->para.flagOfModuleDecimal || sysPara->para.flagOfModuleHide){
|
|
// width = (fontMetrics.width("0123456789.m "))/13;
|
|
// }
|
|
return width;
|
|
}
|
|
|
|
int TextEditOption::getVariableHight(int height){
|
|
if(height<7){
|
|
return 5;
|
|
}else if(height<9){
|
|
return 7;
|
|
}else if(height <12){
|
|
return 9;
|
|
}else if(height<16){
|
|
return 12;
|
|
}else if(height<22){ //24点阵变量高23
|
|
return 16;
|
|
}else if(height<30){
|
|
return 24;
|
|
}else if(height>=30){
|
|
return 32;
|
|
}
|
|
|
|
}
|
|
|
|
#ifdef EnableArabic
|
|
void TextEditOption::changeArabicPage(int page){
|
|
int fontSize;
|
|
dialogFontSize->getValue(&fontSize);
|
|
switch (page) {
|
|
case 1:
|
|
ui->labFontFamily->setText("biyangarabic");
|
|
break;
|
|
// case 2:
|
|
// ui->labFontFamily->setText("biyangarabicb");
|
|
// break;
|
|
case 3:
|
|
ui->labFontFamily->setText("biyangarabicc");
|
|
break;
|
|
default:
|
|
ui->labFontFamily->setText(dialogFontSize->getFontFamily());
|
|
break;
|
|
}
|
|
//ui->labFontFamily->setText(dialogFontSize->getFontFamily());
|
|
if(sysPara){
|
|
sysPara->para.fontPixelSize = fontSize;
|
|
}
|
|
ui->labelFontSize->setText(QString::number(fontSize));
|
|
setFontFormat();
|
|
textEdit->setFocus();
|
|
emit fontSizeChange(fontSize);
|
|
}
|
|
|
|
void TextEditOption::swithchEnglisOrArabic(bool flag){
|
|
// qDebug()<<"englistOrArabicFlag:"<<flag;
|
|
int fontSize;
|
|
dialogFontSize->getValue(&fontSize);
|
|
dialogSaveFile->setFileNameEnglishOrArabic(flag);
|
|
if(flag){
|
|
// if(fontSize==7 || fontSize==9 || fontSize==12){
|
|
if(fontSize==9 || fontSize==7){
|
|
ui->labFontFamily->setText("biyangarabic");
|
|
}else{
|
|
//fontSize=9;
|
|
//ui->labFontFamily->setText("biyangarabic");
|
|
}
|
|
}else{
|
|
if(fontSize==7 || fontSize==9){
|
|
ui->labFontFamily->setText("biyang");
|
|
}else{
|
|
ui->labFontFamily->setText("wenquanyi");
|
|
}
|
|
}
|
|
if(sysPara){
|
|
sysPara->para.fontPixelSize = fontSize;
|
|
}
|
|
ui->labelFontSize->setText(QString::number(fontSize));
|
|
setFontFormat();
|
|
textEdit->setFocus();
|
|
emit fontSizeChange(fontSize);
|
|
}
|
|
#endif
|