LimeReport/limereport/items/lrimageitemeditor.cpp
2020-03-19 20:10:56 +03:00

76 lines
1.8 KiB
C++

#include "lrimageitemeditor.h"
#include "ui_lrimageitemeditor.h"
#include "lrimageitem.h"
#include <QFileInfo>
#include <QFileDialog>
ImageItemEditor::ImageItemEditor(LimeReport::IEditableImageItem *item, QWidget *parent) :
QWidget(parent),
ui(new Ui::ImageItemEditor), m_item(item)
{
ui->setupUi(this);
m_image = item->imageAsByteArray();
ui->resourcePath->setText(m_item->resourcePath());
updateImage();
}
ImageItemEditor::~ImageItemEditor()
{
delete ui;
}
void ImageItemEditor::updateImage()
{
QPixmap image;
if (m_image.isEmpty() && !ui->resourcePath->text().isEmpty()){
image.load(ui->resourcePath->text());
} else {
image.loadFromData(m_image);
}
ui->imageViewer->setPixmap(image);
}
void ImageItemEditor::on_tbLoadImage_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select image file"), "", m_item->fileFilter());
QFile file(fileName);
if (file.open(QIODevice::ReadOnly)){
m_image = file.readAll();
}
updateImage();
}
void ImageItemEditor::on_tbClearImage_clicked()
{
m_image.clear();
updateImage();
}
void ImageItemEditor::on_buttonBox_accepted()
{
QImage image;
m_item->setImageAsByteArray(m_image);
m_item->setResourcePath(ui->resourcePath->text());
this->close();
}
void ImageItemEditor::on_buttonBox_rejected()
{
this->close();
}
void ImageItemEditor::on_toolButton_clicked()
{
ui->resourcePath->setText(QFileDialog::getOpenFileName(this, tr("Select image file")));
m_resourcePathImage = QPixmap(ui->resourcePath->text());
if (!m_resourcePathImage.isNull() && m_image.isNull())
ui->imageViewer->setPixmap(m_resourcePathImage);
}
void ImageItemEditor::on_tbResourcePath_clicked()
{
ui->resourcePath->setText("");
updateImage();
}