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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user