0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-10-01 11:31:10 +03:00

Load image from variable has been added

This commit is contained in:
Arin Alexander
2018-03-16 19:12:14 +03:00
parent d79aec5faf
commit 3bbc02507a
2 changed files with 42 additions and 20 deletions

View File

@@ -54,6 +54,28 @@ BaseDesignIntf *ImageItem::createSameTypeItem(QObject *owner, QGraphicsItem *par
return new ImageItem(owner,parent);
}
void ImageItem::loadPictureFromVariant(QVariant& data){
if (data.isValid()){
if (data.type()==QVariant::Image){
m_picture = data.value<QImage>();
} else {
switch (m_format) {
default:
case Binary:
m_picture.loadFromData(data.toByteArray());
break;
case Hex:
m_picture.loadFromData(QByteArray::fromHex(data.toByteArray()));
break;
case Base64:
m_picture.loadFromData(QByteArray::fromBase64(data.toByteArray()));
break;
}
}
}
}
void ImageItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass, int maxHeight)
{
@@ -62,28 +84,13 @@ void ImageItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass,
IDataSource* ds = dataManager->dataSource(m_datasource);
if (ds) {
QVariant data = ds->data(m_field);
if (data.isValid()){
if (data.type()==QVariant::Image){
m_picture = data.value<QImage>();
} else {
switch (m_format) {
default:
case Binary:
m_picture.loadFromData(data.toByteArray());
break;
case Hex:
m_picture.loadFromData(QByteArray::fromHex(data.toByteArray()));
break;
case Base64:
m_picture.loadFromData(QByteArray::fromBase64(data.toByteArray()));
break;
}
}
}
loadPictureFromVariant(data);
}
} else if (!m_resourcePath.isEmpty()){
m_picture = QImage(m_resourcePath);
} else if (!m_variable.isEmpty()){
QVariant data = dataManager->variable(m_variable);
loadPictureFromVariant(data);
}
}
if (m_autoSize){
@@ -112,6 +119,16 @@ qreal ImageItem::minHeight() const{
}
}
void ImageItem::setVariable(const QString& content)
{
if (m_variable!=content){
QString oldValue = m_variable;
m_variable=content;
update();
notify("content", oldValue, m_variable);
}
}
bool ImageItem::center() const
{
return m_center;