--- a/ganeswidgets/src/hgwidgetitem.cpp Mon Apr 19 14:40:06 2010 +0300
+++ b/ganeswidgets/src/hgwidgetitem.cpp Mon May 03 13:32:54 2010 +0300
@@ -16,9 +16,11 @@
*/
#include "hgwidgetitem.h"
#include "hgquadrenderer.h"
+#include "trace.h"
#include <hgwidgets/hgwidgets.h>
#include <QStringList>
#include <HbIcon>
+#include "hgvgimage.h"
HgWidgetItem::HgWidgetItem(HgQuadRenderer* renderer):
mTitle(""),
@@ -48,13 +50,15 @@
delete mHgImage;
}
-void HgWidgetItem::setImage( QImage image )
+void HgWidgetItem::setImage(const QImage &image)
{
if (!mHgImage)
{
mHgImage = mRenderer->createNativeImage();
}
+
mHgImage->setImage(image);
+
if (!mVisibility)
mHgImage->setAlpha(0);
@@ -120,8 +124,11 @@
if (size.width() != 0 && size.height() != 0 ){
QPixmap pixmap = qicon.pixmap(size);
if (!pixmap.isNull()){
- setImage(pixmap.toImage());
- mValidData = true;
+ QImage tempImage = pixmap.toImage();
+ if (!tempImage.isNull()) {
+ setImage(tempImage);
+ mValidData = true;
+ }
}
break;
}
@@ -133,15 +140,25 @@
// QIcon too.
QIcon tempIcon = image.value<QIcon>();
QList<QSize> sizes = tempIcon.availableSizes();
- QSize size;
- foreach(size, sizes){
- if (size.width() != 0 && size.height() != 0 ){
- QPixmap pixmap = tempIcon.pixmap(size);
- if (!pixmap.isNull()){
- setImage(pixmap.toImage());
- mValidData = true;
+ if (sizes.count() == 0 && !(tempIcon.isNull())) {
+ QPixmap pixmap = tempIcon.pixmap(tempIcon.actualSize(QSize(250, 250)));
+ if (!pixmap.isNull()){
+ INFO("Valid image found for" << mModelIndex);
+ setImage(pixmap.toImage());
+ mValidData = true;
+ }
+ }
+ else {
+ QSize size;
+ foreach(size, sizes){
+ if (size.width() != 0 && size.height() != 0 ){
+ QPixmap pixmap = tempIcon.pixmap(size);
+ if (!pixmap.isNull()){
+ setImage(pixmap.toImage());
+ mValidData = true;
+ }
+ break;
}
- break;
}
}
}
@@ -165,6 +182,9 @@
mValidData = false;
if (mHgImage)
mHgImage->releaseImage();
+
+ delete mHgImage;
+ mHgImage = 0;
}
bool HgWidgetItem::validData() const