0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-23 16:22:58 +03:00
LimeReport/limereport/items/lrimageitemeditor.cpp
Андрей Лухнов 0fca7169d3 Define code style and format all source file using clang-format-14
except those placed in 3rdparty directories.
2024-09-19 21:09:38 +03:00

73 lines
1.8 KiB
C++

#include "lrimageitemeditor.h"
#include "ui_lrimageitemeditor.h"
#include "lrimageitem.h"
#include <QFileDialog>
#include <QFileInfo>
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();
}