266 lines
8.5 KiB
Plaintext
266 lines
8.5 KiB
Plaintext
#include "ZkEdit.h"
|
|
#include "ui_zkedit.h"
|
|
#include "SysPara.h"
|
|
#include <QMessageBox>
|
|
#include <QDebug>
|
|
|
|
ZkEdit::ZkEdit(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::ZkEdit)
|
|
{
|
|
ui->setupUi(this);
|
|
fileDialog = 0;
|
|
openedFileName = "";
|
|
newFileAppending = false;
|
|
connect(ui->widgetPic,SIGNAL(picWidgetModify(int ,int )),this,SLOT(enableSaveButton(int ,int )));
|
|
connect(ui->checkBoxPicExpand,SIGNAL(clicked(bool)),this,SLOT(oncheckboxExpandClicked(bool)));
|
|
connect(ui->checkBoxTrimPic,SIGNAL(clicked(bool)),this,SLOT(oncheckboxTrimPicClicked(bool)));
|
|
ui->pushButtonSave->setEnabled(false);
|
|
forcePicWidgetSize = false;
|
|
#ifdef MYSAVEFILEDLG
|
|
dialogSaveFile =new DialogSaveFile(0);
|
|
#endif
|
|
|
|
}
|
|
|
|
ZkEdit::~ZkEdit()
|
|
{
|
|
delete ui;
|
|
#ifdef MYSAVEFILEDLG
|
|
if(dialogSaveFile) delete dialogSaveFile;
|
|
#endif
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
|
|
}
|
|
|
|
void ZkEdit::oncheckboxExpandClicked(bool)
|
|
{
|
|
ui->checkBoxTrimPic->setCheckState(Qt::Unchecked);
|
|
}
|
|
|
|
void ZkEdit::oncheckboxTrimPicClicked(bool)
|
|
{
|
|
ui->checkBoxPicExpand->setCheckState(Qt::Unchecked);
|
|
}
|
|
|
|
void ZkEdit::checkNewFileAppending(){
|
|
if(newFileAppending){
|
|
ui->widgetPic->initWidget(ui->spinBoxWidthPoint->value(),ui->spinBoxHeightPoint->value());
|
|
openedFileName = "";
|
|
}
|
|
newFileAppending = false;
|
|
}
|
|
|
|
void ZkEdit::onSave_File_reject(){
|
|
checkNewFileAppending();
|
|
}
|
|
|
|
bool ZkEdit::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 ZkEdit::on_pushButtonNew_pressed(){
|
|
if(maybeSave()){
|
|
ui->widgetPic->initWidget(ui->spinBoxWidthPoint->value(),ui->spinBoxHeightPoint->value());
|
|
openedFileName = "";
|
|
}
|
|
}
|
|
|
|
void ZkEdit::enableSaveButton(int w,int h){
|
|
ui->pushButtonSave->setEnabled(true);
|
|
ui->spinBoxHeightPoint->setValue(h);
|
|
ui->spinBoxWidthPoint->setValue(w);
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonEnlarge_pressed()
|
|
{
|
|
ui->widgetPic->enlargeDisplay();
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonReduce_pressed()
|
|
{
|
|
ui->widgetPic->reduceDisplay();
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonUp_pressed()
|
|
{
|
|
//ui->widgetPic->currPositionMove(0,-1);
|
|
ui->widgetPic->currPositionMove(0,-1,0,ui->checkBoxTrimPic->isChecked(),ui->checkBoxPicExpand->isChecked());
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonLeft_pressed()
|
|
{
|
|
//ui->widgetPic->currPositionMove(-1,0);
|
|
ui->widgetPic->currPositionMove(-1,0,0,ui->checkBoxTrimPic->isChecked(),ui->checkBoxPicExpand->isChecked());
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonEnsure_pressed()
|
|
{
|
|
ui->widgetPic->ensureCurrPos();
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonRight_pressed()
|
|
{
|
|
//ui->widgetPic->currPositionMove(1,0);
|
|
ui->widgetPic->currPositionMove(1,0,0,ui->checkBoxTrimPic->isChecked(),ui->checkBoxPicExpand->isChecked());
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonDown_pressed()
|
|
{
|
|
//ui->widgetPic->currPositionMove(0,1);
|
|
ui->widgetPic->currPositionMove(0,1,0,ui->checkBoxTrimPic->isChecked(),ui->checkBoxPicExpand->isChecked());
|
|
}
|
|
|
|
void ZkEdit::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(2);
|
|
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),QString("Picture files (*.jpg )"));
|
|
#endif
|
|
|
|
}
|
|
void ZkEdit::onSaveASFile(QString fileName,bool Flag){// use for dialogSaveFile class
|
|
// filename= fileName ;
|
|
if( !fileName.endsWith(".jpg",Qt::CaseInsensitive) )
|
|
fileName = QFileInfo(fileName).baseName()+ ".jpg";
|
|
|
|
ui->widgetPic->saveImage(fileName);
|
|
ui->pushButtonSave->setEnabled(false);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(fileName);
|
|
|
|
checkNewFileAppending();
|
|
|
|
}
|
|
|
|
void ZkEdit::onSaveAS_FIle_select(){
|
|
QStringList files = fileDialog->selectedFiles();
|
|
for(int i = 0;i < files.size(); i++){
|
|
QString fileName = files[i];
|
|
if( // !fileName.endsWith(".gif",Qt::CaseInsensitive)
|
|
//&& !fileName.endsWith(".jpeg",Qt::CaseInsensitive)
|
|
// &&
|
|
!fileName.endsWith(".jpg",Qt::CaseInsensitive)
|
|
//&& !fileName.endsWith(".png",Qt::CaseInsensitive)
|
|
//&& !fileName.endsWith(".bmp",Qt::CaseInsensitive)
|
|
)
|
|
fileName += ".jpg";
|
|
|
|
ui->widgetPic->saveImage(fileName);
|
|
ui->pushButtonSave->setEnabled(false);
|
|
openedFileName = fileName;
|
|
ui->labelFileName->setText(fileName);
|
|
}
|
|
checkNewFileAppending();
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonOpen_clicked()
|
|
{
|
|
forcePicWidgetSize = false;
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onOpenFIle_select()));
|
|
fileDialog->showFileDialog(tr("打开文件"),QString(DOC_ROOT_DIR),
|
|
QString("Picture files ( *.jpeg *.bmp *.gif *.png *jpg)"));
|
|
}
|
|
|
|
|
|
void ZkEdit::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(fileName);
|
|
ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue()));
|
|
ui->spinBoxHeightPoint->setValue(ui->widgetPic->getHeight());
|
|
ui->spinBoxWidthPoint->setValue(ui->widgetPic->getWidth());
|
|
}
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonSave_clicked()
|
|
{
|
|
if(!openedFileName.isEmpty()){
|
|
ui->widgetPic->saveImage(openedFileName);
|
|
ui->pushButtonSave->setEnabled(false);
|
|
}
|
|
else {
|
|
#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(2);
|
|
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("保存"),QString(DOC_ROOT_DIR),QString("Picture files ( *.jpg )"));
|
|
#endif
|
|
}
|
|
}
|
|
|
|
void ZkEdit::on_pushButtonImport_clicked()
|
|
{
|
|
forcePicWidgetSize = true;
|
|
if(fileDialog)
|
|
delete fileDialog;
|
|
fileDialog = new MyFileDialog(0);
|
|
disconnect(fileDialog,SIGNAL(accepted()),0,0);
|
|
connect(fileDialog,SIGNAL(accepted()),this,SLOT(onOpenFIle_select()));
|
|
fileDialog->showFileDialog(tr("导入文件"),QString(DOC_ROOT_DIR),QString("Picture files (*.png *.jpeg *.jpg *.gif *.bmp)"));
|
|
}
|
|
|
|
void ZkEdit::keyPressEvent(QKeyEvent *e)
|
|
{
|
|
switch(e->key())
|
|
{
|
|
case Qt::Key_Return:on_pushButtonEnsure_pressed();break;
|
|
case Qt::Key_Up: on_pushButtonUp_pressed();break;
|
|
case Qt::Key_Left: on_pushButtonLeft_pressed();break;
|
|
case Qt::Key_Right:on_pushButtonRight_pressed();break;
|
|
case Qt::Key_Down:on_pushButtonDown_pressed();break;
|
|
}
|
|
}
|
|
|