Browse Source

ctkThumbnailWidget now returns 0 for a null pixmap

Julien Finet 13 years ago
parent
commit
1a2ddc6c92

+ 12 - 1
Libs/Widgets/Testing/Cpp/ctkThumbnailWidgetTest1.cpp

@@ -20,6 +20,7 @@
 
 // Qt includes
 #include <QApplication>
+#include <QStyle>
 #include <QTimer>
 
 // ctkDICOMCore includes
@@ -44,7 +45,17 @@ int ctkThumbnailWidgetTest1( int argc, char * argv [] )
     }
 
   widget.setPixmap(QPixmap());
-  if (widget.pixmap())
+  if (widget.pixmap() != 0)
+    {
+    std::cerr << "ctkThumbnailWidget::setPixmap failed:"
+              << widget.pixmap() << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  QPixmap standardPixmap = widget.style()->standardPixmap(QStyle::SP_DriveNetIcon);
+  
+  widget.setPixmap(standardPixmap);
+  if (widget.pixmap() == 0)
     {
     std::cerr << "ctkThumbnailWidget::setPixmap failed:"
               << widget.pixmap() << std::endl;

+ 4 - 2
Libs/Widgets/ctkThumbnailWidget.cpp

@@ -64,7 +64,9 @@ ctkThumbnailWidgetPrivate::ctkThumbnailWidgetPrivate(ctkThumbnailWidget* parent)
 
 //----------------------------------------------------------------------------
 void ctkThumbnailWidgetPrivate::updateThumbnail(){
-    this->PixmapLabel->setPixmap(this->OriginalThumbnail.scaledToWidth(this->PixmapLabel->width()));
+    this->PixmapLabel->setPixmap(
+        this->OriginalThumbnail.isNull() ? QPixmap() :
+            this->OriginalThumbnail.scaledToWidth(this->PixmapLabel->width()));
 }
 
 //----------------------------------------------------------------------------
@@ -114,7 +116,7 @@ const QPixmap* ctkThumbnailWidget::pixmap()const
 {
   Q_D(const ctkThumbnailWidget);
 
-  return &(d->OriginalThumbnail);
+  return d->OriginalThumbnail.isNull() ? 0 : &(d->OriginalThumbnail);
 }
 
 //----------------------------------------------------------------------------