mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-23 16:22:58 +03:00
0fca7169d3
except those placed in 3rdparty directories.
73 lines
1.8 KiB
C++
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();
|
|
}
|