Prechádzať zdrojové kódy

Rename ctkThumbnailWidget into ctkThumbnailLabel

ctkThumbnailWidget is indeed a "label". It is more specific than a "widget".
Julien Finet 13 rokov pred
rodič
commit
bcdf75621d

+ 5 - 5
Libs/DICOM/Widgets/ctkDICOMAppWidget.cpp

@@ -50,7 +50,7 @@
 #include "ctkDICOMAppWidget.h"
 #include "ctkDICOMImportWidget.h"
 #include "ctkDICOMThumbnailGenerator.h"
-#include "ctkThumbnailWidget.h"
+#include "ctkThumbnailLabel.h"
 #include "ctkDICOMQueryResultsTabWidget.h"
 #include "ctkDICOMQueryRetrieveWidget.h"
 #include "ctkDICOMQueryWidget.h"
@@ -168,8 +168,8 @@ ctkDICOMAppWidget::ctkDICOMAppWidget(QWidget* _parent):Superclass(_parent),
   connect(d->TreeView, SIGNAL(clicked(QModelIndex)), d->ImagePreview, SLOT(onModelSelected(QModelIndex)));
   connect(d->TreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(onModelSelected(QModelIndex)));
 
-  connect(d->ThumbnailsWidget, SIGNAL(selected(ctkThumbnailWidget)), this, SLOT(onThumbnailSelected(ctkThumbnailWidget)));
-  connect(d->ThumbnailsWidget, SIGNAL(doubleClicked(ctkThumbnailWidget)), this, SLOT(onThumbnailDoubleClicked(ctkThumbnailWidget)));
+  connect(d->ThumbnailsWidget, SIGNAL(selected(ctkThumbnailLabel)), this, SLOT(onThumbnailSelected(ctkThumbnailLabel)));
+  connect(d->ThumbnailsWidget, SIGNAL(doubleClicked(ctkThumbnailLabel)), this, SLOT(onThumbnailDoubleClicked(ctkThumbnailLabel)));
   connect(d->ImportDialog, SIGNAL(fileSelected(QString)),this,SLOT(onImportDirectory(QString)));
 
   connect(d->QueryRetrieveWidget, SIGNAL(canceled()), d->QueryRetrieveWidget, SLOT(hide()) );
@@ -329,7 +329,7 @@ void ctkDICOMAppWidget::resetModel()
 }
 
 //----------------------------------------------------------------------------
-void ctkDICOMAppWidget::onThumbnailSelected(const ctkThumbnailWidget& widget)
+void ctkDICOMAppWidget::onThumbnailSelected(const ctkThumbnailLabel& widget)
 {
     Q_D(ctkDICOMAppWidget);
 
@@ -341,7 +341,7 @@ void ctkDICOMAppWidget::onThumbnailSelected(const ctkThumbnailWidget& widget)
 }
 
 //----------------------------------------------------------------------------
-void ctkDICOMAppWidget::onThumbnailDoubleClicked(const ctkThumbnailWidget& widget)
+void ctkDICOMAppWidget::onThumbnailDoubleClicked(const ctkThumbnailLabel& widget)
 {
     Q_D(ctkDICOMAppWidget);
 

+ 3 - 3
Libs/DICOM/Widgets/ctkDICOMAppWidget.h

@@ -27,7 +27,7 @@
 #include "ctkDICOMWidgetsExport.h"
 
 class ctkDICOMAppWidgetPrivate;
-class ctkThumbnailWidget;
+class ctkThumbnailLabel;
 class QModelIndex;
 
 class CTK_DICOM_WIDGETS_EXPORT ctkDICOMAppWidget : public QWidget
@@ -72,10 +72,10 @@ protected slots:
     void onModelSelected(const QModelIndex& index);
 
     /// To be called when a thumbnail in thumbnail list widget is selected
-    void onThumbnailSelected(const ctkThumbnailWidget& widget);
+    void onThumbnailSelected(const ctkThumbnailLabel& widget);
 
     /// To be called when a thumbnail in thumbnail list widget is double-clicked
-    void onThumbnailDoubleClicked(const ctkThumbnailWidget& widget);
+    void onThumbnailDoubleClicked(const ctkThumbnailLabel& widget);
 
     /// To be called when previous and next buttons are clicked
     void onNextImage();

+ 6 - 6
Libs/DICOM/Widgets/ctkDICOMThumbnailListWidget.cpp

@@ -45,7 +45,7 @@
 
 // ctkDICOMWidgets includes
 #include "ctkDICOMThumbnailListWidget.h"
-#include "ctkThumbnailWidget.h"
+#include "ctkThumbnailLabel.h"
 
 // STD includes
 #include <iostream>
@@ -193,7 +193,7 @@ void ctkDICOMThumbnailListWidgetPrivate::addThumbnailWidget(const QModelIndex& i
                                 model->data(seriesIndex ,ctkDICOMModel::UIDRole).toString() + "/" +
                                 model->data(imageIndex, ctkDICOMModel::UIDRole).toString() + ".png";
 
-        ctkThumbnailWidget* widget = new ctkThumbnailWidget(this->ScrollAreaContentWidget);
+        ctkThumbnailLabel* widget = new ctkThumbnailLabel(this->ScrollAreaContentWidget);
 
         QString widgetLabel = text;
         widget->setText( widgetLabel );
@@ -209,9 +209,9 @@ void ctkDICOMThumbnailListWidgetPrivate::addThumbnailWidget(const QModelIndex& i
         widget->setProperty("sourceIndex", var);
         this->ScrollAreaContentWidget->layout()->addWidget(widget);
 
-        q->connect(widget, SIGNAL(selected(ctkThumbnailWidget)), q, SLOT(onThumbnailSelected(ctkThumbnailWidget)));
-        q->connect(widget, SIGNAL(selected(ctkThumbnailWidget)), q, SIGNAL(selected(ctkThumbnailWidget)));
-        q->connect(widget, SIGNAL(doubleClicked(ctkThumbnailWidget)), q, SIGNAL(doubleClicked(ctkThumbnailWidget)));
+        q->connect(widget, SIGNAL(selected(ctkThumbnailLabel)), q, SLOT(onThumbnailSelected(ctkThumbnailLabel)));
+        q->connect(widget, SIGNAL(selected(ctkThumbnailLabel)), q, SIGNAL(selected(ctkThumbnailLabel)));
+        q->connect(widget, SIGNAL(doubleClicked(ctkThumbnailLabel)), q, SIGNAL(doubleClicked(ctkThumbnailLabel)));
 
     }
 }
@@ -260,7 +260,7 @@ void ctkDICOMThumbnailListWidget::selectThumbnailFromIndex(const QModelIndex &in
 
         for(int i=0; i<count; i++)
         {
-            ctkThumbnailWidget* thumbnailWidget = qobject_cast<ctkThumbnailWidget*>(d->ScrollAreaContentWidget->layout()->itemAt(i)->widget());
+            ctkThumbnailLabel* thumbnailWidget = qobject_cast<ctkThumbnailLabel*>(d->ScrollAreaContentWidget->layout()->itemAt(i)->widget());
             if(thumbnailWidget->property("sourceIndex").value<QPersistentModelIndex>() == index){
                 thumbnailWidget->setSelected(true);
                 d->ScrollArea->ensureWidgetVisible(thumbnailWidget);

+ 4 - 4
Libs/Widgets/CMakeLists.txt

@@ -122,11 +122,11 @@ SET(KIT_SRCS
   ctkSliderWidget.h
   ctkTestApplication.cpp
   ctkTestApplication.h
+  ctkThumbnailLabel.cpp
+  ctkThumbnailLabel.h
   ctkThumbnailListWidget.cpp
   ctkThumbnailListWidget.h
   ctkThumbnailListWidget_p.h
-  ctkThumbnailWidget.cpp
-  ctkThumbnailWidget.h
   ctkToolTipTrapper.cpp
   ctkToolTipTrapper.h
   ctkTransferFunctionBarsItem.cpp
@@ -222,8 +222,8 @@ SET(KIT_MOC_SRCS
   ctkSimpleLayoutManager.h
   ctkSliderWidget.h
   ctkTestApplication.h
+  ctkThumbnailLabel.h
   ctkThumbnailListWidget.h
-  ctkThumbnailWidget.h
   ctkToolTipTrapper.h
   ctkTransferFunctionBarsItem.h
   ctkTransferFunctionControlPointsItem.h
@@ -253,8 +253,8 @@ SET(KIT_UI_FORMS
   Resources/UI/ctkScreenshotDialog.ui
   Resources/UI/ctkSettingsDialog.ui
   Resources/UI/ctkSliderWidget.ui
+  Resources/UI/ctkThumbnailLabel.ui
   Resources/UI/ctkThumbnailListWidget.ui
-  Resources/UI/ctkThumbnailWidget.ui
   Resources/UI/ctkWorkflowGroupBox.ui
   )
 

+ 3 - 3
Libs/Widgets/Plugins/CMakeLists.txt

@@ -64,8 +64,8 @@ SET(PLUGIN_SRCS
   ctkRangeSliderPlugin.h
   ctkRangeWidgetPlugin.cpp
   ctkRangeWidgetPlugin.h
-  ctkThumbnailWidgetPlugin.cpp
-  ctkThumbnailWidgetPlugin.h
+  ctkThumbnailLabelPlugin.cpp
+  ctkThumbnailLabelPlugin.h
   ctkTransferFunctionViewPlugin.cpp
   ctkTransferFunctionViewPlugin.h
   ctkTreeComboBoxPlugin.cpp
@@ -114,7 +114,7 @@ SET(PLUGIN_MOC_SRCS
   ctkPopupWidgetPlugin.h
   ctkRangeSliderPlugin.h
   ctkRangeWidgetPlugin.h
-  ctkThumbnailWidgetPlugin.h
+  ctkThumbnailLabelPlugin.h
   ctkTransferFunctionViewPlugin.h
   ctkTreeComboBoxPlugin.h
   ctkSearchBoxPlugin.h

+ 13 - 13
Libs/Widgets/Plugins/ctkThumbnailWidgetPlugin.cpp

@@ -19,49 +19,49 @@
 =========================================================================*/
 
 // CTK includes
-#include "ctkThumbnailWidgetPlugin.h"
-#include "ctkThumbnailWidget.h"
+#include "ctkThumbnailLabelPlugin.h"
+#include "ctkThumbnailLabel.h"
 
 //-----------------------------------------------------------------------------
-ctkThumbnailWidgetPlugin::ctkThumbnailWidgetPlugin(QObject* parentObject)
+ctkThumbnailLabelPlugin::ctkThumbnailLabelPlugin(QObject* parentObject)
   : QObject(parentObject)
 {
 }
 
 //-----------------------------------------------------------------------------
-QWidget *ctkThumbnailWidgetPlugin::createWidget(QWidget* parentWidget)
+QWidget *ctkThumbnailLabelPlugin::createWidget(QWidget* parentWidget)
 {
-  ctkThumbnailWidget* newWidget = new ctkThumbnailWidget(parentWidget);
+  ctkThumbnailLabel* newWidget = new ctkThumbnailLabel(parentWidget);
   return newWidget;
 }
 
 //-----------------------------------------------------------------------------
-QString ctkThumbnailWidgetPlugin::domXml() const
+QString ctkThumbnailLabelPlugin::domXml() const
 {
-  return "<widget class=\"ctkThumbnailWidget\" name=\"ThumbnailWidget\">\n"
+  return "<widget class=\"ctkThumbnailLabel\" name=\"Thumbnail\">\n"
           "</widget>\n";
 }
 
 // --------------------------------------------------------------------------
-QIcon ctkThumbnailWidgetPlugin::icon() const
+QIcon ctkThumbnailLabelPlugin::icon() const
 {
   return QIcon(":/Icons/widget.png");
 }
 
 //-----------------------------------------------------------------------------
-QString ctkThumbnailWidgetPlugin::includeFile() const
+QString ctkThumbnailLabelPlugin::includeFile() const
 {
-  return "ctkThumbnailWidget.h";
+  return "ctkThumbnailLabel.h";
 }
 
 //-----------------------------------------------------------------------------
-bool ctkThumbnailWidgetPlugin::isContainer() const
+bool ctkThumbnailLabelPlugin::isContainer() const
 {
   return false;
 }
 
 //-----------------------------------------------------------------------------
-QString ctkThumbnailWidgetPlugin::name() const
+QString ctkThumbnailLabelPlugin::name() const
 {
-  return "ctkThumbnailWidget";
+  return "ctkThumbnailLabel";
 }

+ 4 - 4
Libs/Widgets/Plugins/ctkThumbnailWidgetPlugin.h

@@ -18,20 +18,20 @@
 
 =========================================================================*/
 
-#ifndef __ctkThumbnailWidgetPlugin_h
-#define __ctkThumbnailWidgetPlugin_h
+#ifndef __ctkThumbnailLabelPlugin_h
+#define __ctkThumbnailLabelPlugin_h
 
 // CTK includes
 #include "ctkWidgetsAbstractPlugin.h"
 
-class CTK_WIDGETS_PLUGINS_EXPORT ctkThumbnailWidgetPlugin :
+class CTK_WIDGETS_PLUGINS_EXPORT ctkThumbnailLabelPlugin :
   public QObject,
   public ctkWidgetsAbstractPlugin
 {
   Q_OBJECT
 
 public:
-  ctkThumbnailWidgetPlugin(QObject *_parent = 0);
+  ctkThumbnailLabelPlugin(QObject *_parent = 0);
 
   QWidget *createWidget(QWidget *_parent);
   QString  domXml() const;

+ 2 - 2
Libs/Widgets/Plugins/ctkWidgetsPlugins.h

@@ -54,7 +54,7 @@
 #include "ctkSettingsPanelPlugin.h"
 #include "ctkSettingsDialogPlugin.h"
 #include "ctkSliderWidgetPlugin.h"
-#include "ctkThumbnailWidgetPlugin.h"
+#include "ctkThumbnailLabelPlugin.h"
 #include "ctkTransferFunctionViewPlugin.h"
 #include "ctkTreeComboBoxPlugin.h"
 #include "ctkWorkflowButtonBoxWidgetPlugin.h"
@@ -99,7 +99,7 @@ public:
             << new ctkSettingsPanelPlugin
             << new ctkSettingsDialogPlugin
             << new ctkSliderWidgetPlugin
-            << new ctkThumbnailWidgetPlugin
+            << new ctkThumbnailLabelPlugin
             << new ctkTransferFunctionViewPlugin
             << new ctkTreeComboBoxPlugin
             << new ctkWorkflowButtonBoxWidgetPlugin

+ 2 - 2
Libs/Widgets/Resources/UI/ctkThumbnailWidget.ui

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
- <class>ctkThumbnailWidget</class>
- <widget class="QWidget" name="ctkThumbnailWidget">
+ <class>ctkThumbnailLabel</class>
+ <widget class="QWidget" name="ctkThumbnailLabel">
   <property name="geometry">
    <rect>
     <x>0</x>

+ 2 - 2
Libs/Widgets/Testing/Cpp/CMakeLists.txt

@@ -64,7 +64,7 @@ SET(TEST_SOURCES
   ctkSliderWidgetTest1.cpp
   ctkSliderWidgetTest2.cpp
   ctkThumbnailListWidgetTest1.cpp
-  ctkThumbnailWidgetTest1.cpp
+  ctkThumbnailLabelTest1.cpp
   ctkToolTipTrapperTest1.cpp
   ctkTreeComboBoxTest1.cpp
   ctkWidgetsUtilsTest1.cpp
@@ -193,7 +193,7 @@ SIMPLE_TEST( ctkSignalMapperTest1 )
 SIMPLE_TEST( ctkSliderWidgetTest1 )
 SIMPLE_TEST( ctkSliderWidgetTest2 )
 SIMPLE_TEST( ctkThumbnailListWidgetTest1 )
-SIMPLE_TEST( ctkThumbnailWidgetTest1 )
+SIMPLE_TEST( ctkThumbnailLabelTest1 )
 SIMPLE_TEST( ctkToolTipTrapperTest1 )
 SIMPLE_TEST( ctkTreeComboBoxTest1 )
 SIMPLE_TEST( ctkWidgetsUtilsTest1 )

+ 6 - 6
Libs/Widgets/Testing/Cpp/ctkThumbnailWidgetTest1.cpp

@@ -24,21 +24,21 @@
 #include <QTimer>
 
 // ctkDICOMCore includes
-#include "ctkThumbnailWidget.h"
+#include "ctkThumbnailLabel.h"
 
 // STD includes
 #include <iostream>
 
-int ctkThumbnailWidgetTest1( int argc, char * argv [] )
+int ctkThumbnailLabelTest1( int argc, char * argv [] )
 {
   QApplication app(argc, argv);
 
-  ctkThumbnailWidget widget;
+  ctkThumbnailLabel widget;
 
   widget.setText("Test");
   if (widget.text() != "Test")
     {
-    std::cerr << "ctkThumbnailWidget::setText failed."
+    std::cerr << "ctkThumbnailLabel::setText failed."
               << " text: " << qPrintable(widget.text())
               << " expected: Test" << std::endl;
     return EXIT_FAILURE;
@@ -47,7 +47,7 @@ int ctkThumbnailWidgetTest1( int argc, char * argv [] )
   widget.setPixmap(QPixmap());
   if (widget.pixmap() != 0)
     {
-    std::cerr << "ctkThumbnailWidget::setPixmap failed:"
+    std::cerr << "ctkThumbnailLabel::setPixmap failed:"
               << widget.pixmap() << std::endl;
     return EXIT_FAILURE;
     }
@@ -57,7 +57,7 @@ int ctkThumbnailWidgetTest1( int argc, char * argv [] )
   widget.setPixmap(standardPixmap);
   if (widget.pixmap() == 0)
     {
-    std::cerr << "ctkThumbnailWidget::setPixmap failed:"
+    std::cerr << "ctkThumbnailLabel::setPixmap failed:"
               << widget.pixmap() << std::endl;
     return EXIT_FAILURE;
     }

+ 56 - 56
Libs/Widgets/ctkThumbnailWidget.cpp

@@ -25,26 +25,26 @@
 
 // ctkCore includes
 #include "ctkLogger.h"
-static ctkLogger logger("org.commontk.Widgets.ctkThumbnailWidget");
+static ctkLogger logger("org.commontk.Widgets.ctkThumbnailLabel");
 
 // ctkWidgets includes
-#include "ctkThumbnailWidget.h"
-#include "ui_ctkThumbnailWidget.h"
+#include "ctkThumbnailLabel.h"
+#include "ui_ctkThumbnailLabel.h"
 
 // STD includes
 #include <iostream>
 
 //----------------------------------------------------------------------------
-class ctkThumbnailWidgetPrivate: public Ui_ctkThumbnailWidget
+class ctkThumbnailLabelPrivate: public Ui_ctkThumbnailLabel
 {
-  Q_DECLARE_PUBLIC(ctkThumbnailWidget);
+  Q_DECLARE_PUBLIC(ctkThumbnailLabel);
 protected:
-  ctkThumbnailWidget* const q_ptr;
+  ctkThumbnailLabel* const q_ptr;
 public:
-  typedef Ui_ctkThumbnailWidget Superclass;
+  typedef Ui_ctkThumbnailLabel Superclass;
 
   // Constructor
-  ctkThumbnailWidgetPrivate(ctkThumbnailWidget* parent);
+  ctkThumbnailLabelPrivate(ctkThumbnailLabel* parent);
 
   virtual void setupUi(QWidget* widget);
 
@@ -60,13 +60,13 @@ public:
 };
 
 //----------------------------------------------------------------------------
-// ctkThumbnailWidgetPrivate methods
+// ctkThumbnailLabelPrivate methods
 
 //----------------------------------------------------------------------------
-ctkThumbnailWidgetPrivate::ctkThumbnailWidgetPrivate(ctkThumbnailWidget* parent)
+ctkThumbnailLabelPrivate::ctkThumbnailLabelPrivate(ctkThumbnailLabel* parent)
   : q_ptr(parent)
 {
-  Q_Q(ctkThumbnailWidget);
+  Q_Q(ctkThumbnailLabel);
 
   this->SelectedFlag = false;
   this->SelectedColor = q->palette().color(QPalette::Highlight);
@@ -75,9 +75,9 @@ ctkThumbnailWidgetPrivate::ctkThumbnailWidgetPrivate(ctkThumbnailWidget* parent)
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidgetPrivate::setupUi(QWidget* widget)
+void ctkThumbnailLabelPrivate::setupUi(QWidget* widget)
 {
-  Q_Q(ctkThumbnailWidget);
+  Q_Q(ctkThumbnailLabel);
   this->Superclass::setupUi(widget);
   q->layout()->setSizeConstraint(QLayout::SetNoConstraint);
   // no text by default
@@ -85,7 +85,7 @@ void ctkThumbnailWidgetPrivate::setupUi(QWidget* widget)
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidgetPrivate::updateThumbnail()
+void ctkThumbnailLabelPrivate::updateThumbnail()
 {
   this->PixmapLabel->setPixmap(
     this->OriginalThumbnail.isNull() ? QPixmap() :
@@ -95,27 +95,27 @@ void ctkThumbnailWidgetPrivate::updateThumbnail()
 }
 
 //----------------------------------------------------------------------------
-// ctkThumbnailWidget methods
+// ctkThumbnailLabel methods
 
 //----------------------------------------------------------------------------
-ctkThumbnailWidget::ctkThumbnailWidget(QWidget* parentWidget)
+ctkThumbnailLabel::ctkThumbnailLabel(QWidget* parentWidget)
   : Superclass(parentWidget)
-  , d_ptr(new ctkThumbnailWidgetPrivate(this))
+  , d_ptr(new ctkThumbnailLabelPrivate(this))
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
 
   d->setupUi(this);
 }
 
 //----------------------------------------------------------------------------
-ctkThumbnailWidget::~ctkThumbnailWidget()
+ctkThumbnailLabel::~ctkThumbnailLabel()
 {
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::setText(const QString &text)
+void ctkThumbnailLabel::setText(const QString &text)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
 
   d->TextLabel->setText(text);
   d->TextLabel->setVisible(!text.isEmpty() &&
@@ -124,16 +124,16 @@ void ctkThumbnailWidget::setText(const QString &text)
 }
 
 //----------------------------------------------------------------------------
-QString ctkThumbnailWidget::text()const
+QString ctkThumbnailLabel::text()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   return d->TextLabel->text();
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::setTextPosition(const Qt::Alignment& position)
+void ctkThumbnailLabel::setTextPosition(const Qt::Alignment& position)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
   d->TextPosition = position;
   int textIndex = -1;
   for (textIndex = 0; textIndex < this->layout()->count(); ++textIndex)
@@ -185,48 +185,48 @@ void ctkThumbnailWidget::setTextPosition(const Qt::Alignment& position)
 }
 
 //----------------------------------------------------------------------------
-Qt::Alignment ctkThumbnailWidget::textPosition()const
+Qt::Alignment ctkThumbnailLabel::textPosition()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   return d->TextPosition;
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::setPixmap(const QPixmap &pixmap)
+void ctkThumbnailLabel::setPixmap(const QPixmap &pixmap)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
 
   d->OriginalThumbnail = pixmap;
   d->updateThumbnail();
 }
 
 //----------------------------------------------------------------------------
-const QPixmap* ctkThumbnailWidget::pixmap()const
+const QPixmap* ctkThumbnailLabel::pixmap()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
 
   return d->OriginalThumbnail.isNull() ? 0 : &(d->OriginalThumbnail);
 }
 
 //----------------------------------------------------------------------------
-Qt::TransformationMode ctkThumbnailWidget::transformationMode()const
+Qt::TransformationMode ctkThumbnailLabel::transformationMode()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   return d->TransformationMode;
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::setTransformationMode(Qt::TransformationMode mode)
+void ctkThumbnailLabel::setTransformationMode(Qt::TransformationMode mode)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
   d->TransformationMode = mode;
   d->updateThumbnail();
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::paintEvent(QPaintEvent* event)
+void ctkThumbnailLabel::paintEvent(QPaintEvent* event)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
   this->Superclass::paintEvent(event);
   if (d->SelectedFlag && d->SelectedColor.isValid())
     {
@@ -239,40 +239,40 @@ void ctkThumbnailWidget::paintEvent(QPaintEvent* event)
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::setSelected(bool flag)
+void ctkThumbnailLabel::setSelected(bool flag)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
   d->SelectedFlag = flag;
   this->update();
 }
 
 //----------------------------------------------------------------------------
-bool ctkThumbnailWidget::isSelected()const
+bool ctkThumbnailLabel::isSelected()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   return d->SelectedFlag;
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::setSelectedColor(const QColor& color)
+void ctkThumbnailLabel::setSelectedColor(const QColor& color)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
   d->SelectedColor = color;
   this->update();
 }
 
 //----------------------------------------------------------------------------
-QColor ctkThumbnailWidget::selectedColor()const
+QColor ctkThumbnailLabel::selectedColor()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   return d->SelectedColor;
 }
 
 //----------------------------------------------------------------------------
-QSize ctkThumbnailWidget::minimumSizeHint()const
+QSize ctkThumbnailLabel::minimumSizeHint()const
 {
-  Q_D(const ctkThumbnailWidget);
-  if (d->TextLabel->isVisibleTo(const_cast<ctkThumbnailWidget*>(this)) &&
+  Q_D(const ctkThumbnailLabel);
+  if (d->TextLabel->isVisibleTo(const_cast<ctkThumbnailLabel*>(this)) &&
       !d->TextLabel->text().isEmpty())
     {
     return d->TextLabel->minimumSizeHint();
@@ -281,18 +281,18 @@ QSize ctkThumbnailWidget::minimumSizeHint()const
 }
 
 //----------------------------------------------------------------------------
-QSize ctkThumbnailWidget::sizeHint()const
+QSize ctkThumbnailLabel::sizeHint()const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   return d->OriginalThumbnail.isNull() ?
     this->Superclass::sizeHint() :
     d->OriginalThumbnail.size().expandedTo(QApplication::globalStrut());
 }
 
 //----------------------------------------------------------------------------
-int ctkThumbnailWidget::heightForWidth(int width)const
+int ctkThumbnailLabel::heightForWidth(int width)const
 {
-  Q_D(const ctkThumbnailWidget);
+  Q_D(const ctkThumbnailLabel);
   if (d->OriginalThumbnail.isNull() ||
       d->OriginalThumbnail.width() == 0)
     {
@@ -304,7 +304,7 @@ int ctkThumbnailWidget::heightForWidth(int width)const
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::mousePressEvent(QMouseEvent* event)
+void ctkThumbnailLabel::mousePressEvent(QMouseEvent* event)
 {
   this->Superclass::mousePressEvent(event);
   this->setSelected(true);
@@ -312,16 +312,16 @@ void ctkThumbnailWidget::mousePressEvent(QMouseEvent* event)
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::mouseDoubleClickEvent(QMouseEvent *event)
+void ctkThumbnailLabel::mouseDoubleClickEvent(QMouseEvent *event)
 {
   this->Superclass::mouseDoubleClickEvent(event);
   emit doubleClicked(*this);
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailWidget::resizeEvent(QResizeEvent *event)
+void ctkThumbnailLabel::resizeEvent(QResizeEvent *event)
 {
-  Q_D(ctkThumbnailWidget);
+  Q_D(ctkThumbnailLabel);
   this->Superclass::resizeEvent(event);
   d->updateThumbnail();
 }

+ 24 - 12
Libs/Widgets/ctkThumbnailWidget.h

@@ -18,8 +18,8 @@
 
 =========================================================================*/
 
-#ifndef __ctkThumbnailWidget_h
-#define __ctkThumbnailWidget_h
+#ifndef __ctkThumbnailLabel_h
+#define __ctkThumbnailLabel_h
 
 // Qt includes 
 #include <QWidget>
@@ -27,9 +27,14 @@
 
 #include "ctkWidgetsExport.h"
 
-class ctkThumbnailWidgetPrivate;
+class ctkThumbnailLabelPrivate;
 
-class CTK_WIDGETS_EXPORT ctkThumbnailWidget : public QWidget
+/// ctkThumbnailLabel is an advanced label that gives control over
+/// the pixmap size and text location.
+/// If a pixmap is set, it is resized to fit the available space but its
+/// original width/height ratio is always respected.
+/// The widget can be selected or not (a rectangle is drawn around)
+class CTK_WIDGETS_EXPORT ctkThumbnailLabel : public QWidget
 {
   Q_OBJECT
   /// If the text is empty, the space allocated for the text is hidden
@@ -37,19 +42,26 @@ class CTK_WIDGETS_EXPORT ctkThumbnailWidget : public QWidget
   Q_PROPERTY(QString text READ text WRITE setText)
   /// Position of the text relative to the pixmap.
   /// Qt::AlignTop | Qt::AlignHCenter by default.
-  /// For now, if the alignment is HCenter|VCenter, no text is shown.
+  /// For now, if the alignment is HCenter|VCenter (same location than the
+  /// pixmap), no text is shown.
   Q_PROPERTY(Qt::Alignment textPosition READ textPosition WRITE setTextPosition)
+  /// Optional pixmap for the label.
+  /// No pixmap by default
   Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
+  /// Controls the quality of the resizing of the pixmap.
   /// Qt::FastTransformation by default
   Q_PROPERTY(Qt::TransformationMode transformationMode READ transformationMode WRITE setTransformationMode)
+  /// Control whether or not the label is selected. When selected, a rectangle
+  /// is drawn around the widget with the \a selectedColor color.
   /// Not selected by default
   Q_PROPERTY(bool selected READ isSelected WRITE setSelected)
+  /// Color of the selected rectangle.
   /// Palette highlight color by default
   Q_PROPERTY(QColor selectedColor READ selectedColor WRITE setSelectedColor)
 public:
   typedef QWidget Superclass;
-  explicit ctkThumbnailWidget(QWidget* parent=0);
-  virtual ~ctkThumbnailWidget();
+  explicit ctkThumbnailLabel(QWidget* parent=0);
+  virtual ~ctkThumbnailLabel();
 
   void setText(const QString& text);
   QString text()const;
@@ -74,7 +86,7 @@ public:
   virtual int heightForWidth(int width)const;
 
 protected:
-  QScopedPointer<ctkThumbnailWidgetPrivate> d_ptr;
+  QScopedPointer<ctkThumbnailLabelPrivate> d_ptr;
 
   virtual void paintEvent(QPaintEvent* event);
   virtual void mousePressEvent(QMouseEvent* event);
@@ -83,12 +95,12 @@ protected:
   virtual void resizeEvent(QResizeEvent* event);
 
 private:
-  Q_DECLARE_PRIVATE(ctkThumbnailWidget);
-  Q_DISABLE_COPY(ctkThumbnailWidget);
+  Q_DECLARE_PRIVATE(ctkThumbnailLabel);
+  Q_DISABLE_COPY(ctkThumbnailLabel);
 
 signals:
-  void selected(const ctkThumbnailWidget& widget);
-  void doubleClicked(const ctkThumbnailWidget& widget);
+  void selected(const ctkThumbnailLabel& widget);
+  void doubleClicked(const ctkThumbnailLabel& widget);
 };
 
 #endif

+ 14 - 14
Libs/Widgets/ctkThumbnailListWidget.cpp

@@ -35,9 +35,9 @@
 #include "ctkFlowLayout.h"
 
 // ctkDICOMWidgets includes
+#include "ctkThumbnailLabel.h"
 #include "ctkThumbnailListWidget.h"
 #include "ctkThumbnailListWidget_p.h"
-#include "ctkThumbnailWidget.h"
 
 // STD includes
 #include <iostream>
@@ -72,12 +72,12 @@ void ctkThumbnailListWidgetPrivate::clearAllThumbnails(){
     QLayoutItem* item;
     while((item = this->ScrollAreaContentWidget->layout()->takeAt(0)))
     {
-        ctkThumbnailWidget* thumbnailWidget = qobject_cast<ctkThumbnailWidget*>(item->widget());
+        ctkThumbnailLabel* thumbnailWidget = qobject_cast<ctkThumbnailLabel*>(item->widget());
         if(thumbnailWidget)
         {
-            q->disconnect(thumbnailWidget, SIGNAL(selected(ctkThumbnailWidget)), q, SLOT(onThumbnailSelected(ctkThumbnailWidget)));
-            q->disconnect(thumbnailWidget, SIGNAL(selected(ctkThumbnailWidget)), q, SIGNAL(selected(ctkThumbnailWidget)));
-            q->disconnect(thumbnailWidget, SIGNAL(doubleClicked(ctkThumbnailWidget)), q, SIGNAL(doubleClicked(ctkThumbnailWidget)));
+            q->disconnect(thumbnailWidget, SIGNAL(selected(ctkThumbnailLabel)), q, SLOT(onThumbnailSelected(ctkThumbnailLabel)));
+            q->disconnect(thumbnailWidget, SIGNAL(selected(ctkThumbnailLabel)), q, SIGNAL(selected(ctkThumbnailLabel)));
+            q->disconnect(thumbnailWidget, SIGNAL(doubleClicked(ctkThumbnailLabel)), q, SIGNAL(doubleClicked(ctkThumbnailLabel)));
         }
         item->widget()->deleteLater();
     }
@@ -122,7 +122,7 @@ void ctkThumbnailListWidget::addThumbnails(QList<QPixmap> thumbnails)
   Q_D(ctkThumbnailListWidget);
   for(int i=0; i<thumbnails.count(); i++)
     {
-      ctkThumbnailWidget* widget = new ctkThumbnailWidget(d->ScrollAreaContentWidget);
+      ctkThumbnailLabel* widget = new ctkThumbnailLabel(d->ScrollAreaContentWidget);
       widget->setText("");
       if(d->ThumbnailSize.isValid()){
         widget->setFixedSize(d->ThumbnailSize);
@@ -130,9 +130,9 @@ void ctkThumbnailListWidget::addThumbnails(QList<QPixmap> thumbnails)
       widget->setPixmap(thumbnails[i]);
       d->ScrollAreaContentWidget->layout()->addWidget(widget);
 
-      this->connect(widget, SIGNAL(selected(ctkThumbnailWidget)), this, SLOT(onThumbnailSelected(ctkThumbnailWidget)));
-      this->connect(widget, SIGNAL(selected(ctkThumbnailWidget)), this, SIGNAL(selected(ctkThumbnailWidget)));
-      this->connect(widget, SIGNAL(doubleClicked(ctkThumbnailWidget)), this, SIGNAL(doubleClicked(ctkThumbnailWidget)));
+      this->connect(widget, SIGNAL(selected(ctkThumbnailLabel)), this, SLOT(onThumbnailSelected(ctkThumbnailLabel)));
+      this->connect(widget, SIGNAL(selected(ctkThumbnailLabel)), this, SIGNAL(selected(ctkThumbnailLabel)));
+      this->connect(widget, SIGNAL(doubleClicked(ctkThumbnailLabel)), this, SIGNAL(doubleClicked(ctkThumbnailLabel)));
     }
 }
 
@@ -148,7 +148,7 @@ void ctkThumbnailListWidget::setCurrentThumbnail(int index){
 
   for(int i=0; i<count; i++)
     {
-    ctkThumbnailWidget* thumbnailWidget = qobject_cast<ctkThumbnailWidget*>(d->ScrollAreaContentWidget->layout()->itemAt(i)->widget());
+    ctkThumbnailLabel* thumbnailWidget = qobject_cast<ctkThumbnailLabel*>(d->ScrollAreaContentWidget->layout()->itemAt(i)->widget());
     if(i == index)
       {
       thumbnailWidget->setSelected(true);
@@ -171,11 +171,11 @@ int ctkThumbnailListWidget::currentThumbnail(){
 }
 
 //----------------------------------------------------------------------------
-void ctkThumbnailListWidget::onThumbnailSelected(const ctkThumbnailWidget &widget){
+void ctkThumbnailListWidget::onThumbnailSelected(const ctkThumbnailLabel &widget){
   Q_D(ctkThumbnailListWidget);
   for(int i=0; i<d->ScrollAreaContentWidget->layout()->count(); i++)
     {
-    ctkThumbnailWidget* thumbnailWidget = qobject_cast<ctkThumbnailWidget*>(d->ScrollAreaContentWidget->layout()->itemAt(i)->widget());
+    ctkThumbnailLabel* thumbnailWidget = qobject_cast<ctkThumbnailLabel*>(d->ScrollAreaContentWidget->layout()->itemAt(i)->widget());
     if(thumbnailWidget && (&widget != thumbnailWidget))
       {
       thumbnailWidget->setSelected(false);
@@ -188,8 +188,8 @@ void ctkThumbnailListWidget::setThumbnailSize(QSize size){
   Q_D(ctkThumbnailListWidget);
   if (size.isValid())
     {
-    foreach( ctkThumbnailWidget* thumbnail,
-             this->findChildren<ctkThumbnailWidget*>())
+    foreach( ctkThumbnailLabel* thumbnail,
+             this->findChildren<ctkThumbnailLabel*>())
       {
       thumbnail->setFixedSize(size);
       }

+ 4 - 4
Libs/Widgets/ctkThumbnailListWidget.h

@@ -28,7 +28,7 @@
 
 class QModelIndex;
 class ctkThumbnailListWidgetPrivate;
-class ctkThumbnailWidget;
+class ctkThumbnailLabel;
 
 class CTK_WIDGETS_EXPORT ctkThumbnailListWidget : public QWidget
 {
@@ -60,11 +60,11 @@ public slots:
   void setThumbnailSize(QSize size);
 
 signals:
-  void selected(const ctkThumbnailWidget& widget);
-  void doubleClicked(const ctkThumbnailWidget& widget);
+  void selected(const ctkThumbnailLabel& widget);
+  void doubleClicked(const ctkThumbnailLabel& widget);
 
 protected slots:
-  void onThumbnailSelected(const ctkThumbnailWidget& widget);
+  void onThumbnailSelected(const ctkThumbnailLabel& widget);
 
 protected:
   explicit ctkThumbnailListWidget(ctkThumbnailListWidgetPrivate* ptr, QWidget* parent=0);