浏览代码

ENH: Image Viewer widget renaming and application refactoring

Stephen R. Aylward 14 年之前
父节点
当前提交
3b904462ac

+ 0 - 3
Applications/ctkDICOMObjectViewer/CMakeLists.txt

@@ -6,17 +6,14 @@ PROJECT(ctkDICOMObjectViewer)
 
 SET(KIT_SRCS
   ctkDICOMObjectViewerMain.cpp
-  ctkDICOMObjectViewer.cpp
 )
 
 # Headers that should run through moc
 SET(KIT_MOC_SRCS
-  ctkDICOMObjectViewer.h
 )
 
 # UI files
 SET(KIT_UI_FORMS
-  ctkDICOMObjectViewerMainWindow.ui
 )
 
 # Resources

+ 0 - 33
Applications/ctkDICOMObjectViewer/ctkDICOMObjectViewer.cpp

@@ -1,33 +0,0 @@
-#include <iostream>
-
-#include "ctkDICOMObjectViewer.h"
-
-#include "ctkDICOMDatasetViewerWidget.h"
-
-
-/**
- *
- */
-ctkDICOMObjectViewer::ctkDICOMObjectViewer( QWidget* _parent,
-  const char* _name, bool _modal,
-  Qt::WFlags _fl )
-:QDialog(_parent)
-{
-  setupUi(this);
-}
-
-/**
- *  Destroys the object and frees any allocated resources
- */
-ctkDICOMObjectViewer::~ctkDICOMObjectViewer()
-{
-}
-
-void ctkDICOMObjectViewer::SetInputImage( const QImage * image )
-{
-  this->OpenGlWindow->show();
-  this->OpenGlWindow->addImage( image );
-  std::cout << "Adding image height = " << image->height() << std::endl;
-  std::cout << "Adding image width = " << image->width() << std::endl;
-  this->OpenGlWindow->update();
-}

+ 0 - 21
Applications/ctkDICOMObjectViewer/ctkDICOMObjectViewer.h

@@ -1,21 +0,0 @@
-#ifndef __ctkDICOMObjectViewer_h
-#define __ctkDICOMObjectViewer_h
-
-#include "ui_ctkDICOMObjectViewerMainWindow.h"
-
-#include <QDialog>
-
-class ctkDICOMObjectViewer : public QDialog, Ui::MainWindow
-{
-public:
-
-  ctkDICOMObjectViewer( QWidget* parent = 0, const char* name = 0,
-    bool modal = FALSE, Qt::WFlags fl = 0 );
-  ~ctkDICOMObjectViewer();
-
-  void DisplayPosition(int x,int y ,int z,float value);
-
-  void SetInputImage( const QImage * image );
-};
-
-#endif

+ 11 - 13
Applications/ctkDICOMObjectViewer/ctkDICOMObjectViewerMain.cpp

@@ -1,4 +1,4 @@
-/*=============================================================================
+/*==========================================================================
 
   Library: CTK
 
@@ -17,19 +17,18 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 
-=============================================================================*/
+==========================================================================*/
 
+// STD includes
 #include "iostream"
 
-#include "ctkDICOMObjectViewer.h"
-#include "ctkDICOMDatasetViewerWidget.h"
-
-#include <ui_ctkDICOMObjectViewerMainWindow.h>
+// CTK Widgets
+#include "ctkDICOMDatasetView.h"
 
+// Qt includes
 #include <QApplication>
-#include <QMainWindow>
-#include <QString>
 #include <QFileDialog>
+#include <QString>
 
 int main(int argv, char** argc)
 {
@@ -39,10 +38,6 @@ int main(int argv, char** argc)
   qApp->setOrganizationDomain("commontk.org");
   qApp->setApplicationName("ctkDICOMObjectViewer");
 
-  ctkDICOMObjectViewer mainWindow;
-
-  mainWindow.show();
-
   QString s;
   if( QApplication::argc() > 1 )
     {
@@ -59,7 +54,10 @@ int main(int argv, char** argc)
   QImage image( s );
   std::cout << "Loading image _" << s.toStdString() << "_" << std::endl;
 
-  mainWindow.SetInputImage( & image );
+  ctkDICOMDatasetView imageView;
+  imageView.addImage( & image );
+  imageView.show();
+  imageView.raise();
 
   return app.exec();
 }

+ 0 - 369
Applications/ctkDICOMObjectViewer/ctkDICOMObjectViewerMainWindow.ui

@@ -1,369 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QDialog" name="MainWindow">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>626</width>
-    <height>667</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="font">
-   <font>
-    <weight>75</weight>
-    <bold>true</bold>
-   </font>
-  </property>
-  <property name="windowTitle">
-   <string>CTK Simple Image Viewer</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>false</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout" stretch="1,0,0,0,0,0,0,0">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_5" stretch="0,0">
-     <item>
-      <widget class="ctkQImageViewerWidget" name="OpenGlWindow" native="true">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-         <horstretch>20</horstretch>
-         <verstretch>20</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>100</width>
-         <height>100</height>
-        </size>
-       </property>
-       <property name="autoFillBackground">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <layout class="QGridLayout" name="gridLayout_2">
-       <item row="0" column="0" colspan="3">
-        <widget class="QSpinBox" name="SliceNum">
-         <property name="enabled">
-          <bool>true</bool>
-         </property>
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-           <horstretch>5</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1">
-        <widget class="QSlider" name="Slice">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
-           <horstretch>10</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="layoutDirection">
-          <enum>Qt::RightToLeft</enum>
-         </property>
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>2</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="PositionX">
-       <property name="text">
-        <string>0</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="PositionY">
-       <property name="text">
-        <string>0</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="PositionZ">
-       <property name="text">
-        <string>0</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="TextLabel1">
-       <property name="text">
-        <string>=</string>
-       </property>
-       <property name="wordWrap">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="PixelValue">
-       <property name="text">
-        <string>0</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>5</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QToolButton" name="ZoomIn">
-       <property name="font">
-        <font>
-         <family>Arial</family>
-        </font>
-       </property>
-       <property name="text">
-        <string>Zoom In</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="ZoomOut">
-       <property name="font">
-        <font>
-         <family>Arial</family>
-        </font>
-       </property>
-       <property name="text">
-        <string>Zoom Out</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer_2">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>2</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1">
-     <item>
-      <widget class="QSpinBox" name="IntensityMinDisplay"/>
-     </item>
-     <item>
-      <widget class="QSlider" name="IntensityMin">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3"/>
-   </item>
-   <item>
-    <spacer name="verticalSpacer_3">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>2</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_6">
-     <property name="spacing">
-      <number>6</number>
-     </property>
-     <property name="margin">
-      <number>0</number>
-     </property>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>28</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="buttonOk">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="font">
-        <font>
-         <family>Arial</family>
-        </font>
-       </property>
-       <property name="windowTitle">
-        <string/>
-       </property>
-       <property name="text">
-        <string>&amp;Quit</string>
-       </property>
-       <property name="autoDefault">
-        <bool>true</bool>
-       </property>
-       <property name="default">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>ctkQImageViewerWidget</class>
-   <extends>QWidget</extends>
-   <header location="global">ctkQImageViewerWidget.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>buttonOk</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>Slice</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>SliceNum</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>1018</x>
-     <y>134</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>993</x>
-     <y>27</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>SliceNum</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>Slice</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>993</x>
-     <y>29</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>1018</x>
-     <y>118</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonOk</sender>
-   <signal>clicked()</signal>
-   <receiver>MainWindow</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>960</x>
-     <y>701</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>734</x>
-     <y>667</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>IntensityMinDisplay</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>IntensityMin</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>96</x>
-     <y>643</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>118</x>
-     <y>643</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>IntensityMin</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>IntensityMinDisplay</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>116</x>
-     <y>643</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>98</x>
-     <y>643</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>

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

@@ -9,8 +9,8 @@ SET(KIT_export_directive "CTK_DICOM_WIDGETS_EXPORT")
   
 # Source files
 SET(KIT_SRCS
-  ctkDICOMDatasetViewerWidget.cpp
-  ctkDICOMDatasetViewerWidget.h
+  ctkDICOMDatasetView.cpp
+  ctkDICOMDatasetView.h
   ctkDICOMDirectoryListWidget.cpp
   ctkDICOMDirectoryListWidget.h
   ctkDICOMListenerWidget.cpp
@@ -35,7 +35,7 @@ SET(KIT_SRCS
 
 # Headers that should run through moc
 SET(KIT_MOC_SRCS
-  ctkDICOMDatasetViewerWidget.h
+  ctkDICOMDatasetView.h
   ctkDICOMDirectoryListWidget.h
   ctkDICOMServerNodeWidget.h
   ctkDICOMAppWidget.h

+ 22 - 22
Libs/DICOM/Widgets/ctkDICOMDatasetViewerWidget.cpp

@@ -21,8 +21,8 @@
 #include <iostream>
 
 // CTK includes
-#include "ctkQImageViewerWidget.h"
-#include "ctkDICOMDatasetViewerWidget.h"
+#include "ctkQImageView.h"
+#include "ctkDICOMDatasetView.h"
 
 // Qt includes
 #include <QLabel>
@@ -34,34 +34,34 @@
 #include <QPainter>
 
 //--------------------------------------------------------------------------
-class ctkDICOMDatasetViewerWidgetPrivate 
+class ctkDICOMDatasetViewPrivate 
 {
 
-  Q_DECLARE_PUBLIC( ctkDICOMDatasetViewerWidget );
+  Q_DECLARE_PUBLIC( ctkDICOMDatasetView );
 
 protected:
 
-  ctkDICOMDatasetViewerWidget* const q_ptr;
+  ctkDICOMDatasetView* const q_ptr;
 
 public:
 
-  ctkDICOMDatasetViewerWidgetPrivate( ctkDICOMDatasetViewerWidget& object );
+  ctkDICOMDatasetViewPrivate( ctkDICOMDatasetView& object );
 
   void init();
 };
 
 //--------------------------------------------------------------------------
-ctkDICOMDatasetViewerWidgetPrivate::ctkDICOMDatasetViewerWidgetPrivate(
-  ctkDICOMDatasetViewerWidget& object )
+ctkDICOMDatasetViewPrivate::ctkDICOMDatasetViewPrivate(
+  ctkDICOMDatasetView& object )
   : q_ptr( & object )
 {
 }
 
 //--------------------------------------------------------------------------
-void ctkDICOMDatasetViewerWidgetPrivate::init()
+void ctkDICOMDatasetViewPrivate::init()
 {
   /*
-  Q_Q( ctkDICOMDatasetViewerWidget );
+  Q_Q( ctkDICOMDatasetView );
   this->Window->setParent(q);
   QHBoxLayout* layout = new QHBoxLayout(q);
   layout->addWidget(this->Window);
@@ -71,33 +71,33 @@ void ctkDICOMDatasetViewerWidgetPrivate::init()
 }
 
 // -------------------------------------------------------------------------
-ctkDICOMDatasetViewerWidget::ctkDICOMDatasetViewerWidget( QWidget* _parent )
+ctkDICOMDatasetView::ctkDICOMDatasetView( QWidget* _parent )
   : Superclass( _parent ),
-    d_ptr( new ctkDICOMDatasetViewerWidgetPrivate( *this ) )
+    d_ptr( new ctkDICOMDatasetViewPrivate( *this ) )
 {
-  Q_D( ctkDICOMDatasetViewerWidget );
+  Q_D( ctkDICOMDatasetView );
   d->init();
 }
 
 // -------------------------------------------------------------------------
-ctkDICOMDatasetViewerWidget::ctkDICOMDatasetViewerWidget(
-  ctkDICOMDatasetViewerWidgetPrivate& pvt,
+ctkDICOMDatasetView::ctkDICOMDatasetView(
+  ctkDICOMDatasetViewPrivate& pvt,
   QWidget* _parent)
   : Superclass(_parent), d_ptr(&pvt)
 {
-  Q_D(ctkDICOMDatasetViewerWidget);
+  Q_D(ctkDICOMDatasetView);
   d->init();
 }
 
 // -------------------------------------------------------------------------
-ctkDICOMDatasetViewerWidget::~ctkDICOMDatasetViewerWidget()
+ctkDICOMDatasetView::~ctkDICOMDatasetView()
 {
 }
 
 // -------------------------------------------------------------------------
-//void ctkDICOMDatasetViewerWidget::addImage( const QImage * image )
+//void ctkDICOMDatasetView::addImage( const QImage * image )
 //{
-  //Q_D( ctkQImageViewerWidget );
+  //Q_D( ctkQImageView );
   //d->ImageList.push_back( image );
   //d->TmpXMin = 0;
   //d->TmpXMax = image->width();
@@ -108,19 +108,19 @@ ctkDICOMDatasetViewerWidget::~ctkDICOMDatasetViewerWidget()
 //}
 
 // -------------------------------------------------------------------------
-void ctkDICOMDatasetViewerWidget::mousePressEvent( QMouseEvent * event )
+void ctkDICOMDatasetView::mousePressEvent( QMouseEvent * event )
 {
   event->ignore();
 }
 
 // -------------------------------------------------------------------------
-void ctkDICOMDatasetViewerWidget::mouseMoveEvent( QMouseEvent * event )
+void ctkDICOMDatasetView::mouseMoveEvent( QMouseEvent * event )
 {
   event->ignore();
 }
 
 // -------------------------------------------------------------------------
-void ctkDICOMDatasetViewerWidget::update( bool zoomChanged,
+void ctkDICOMDatasetView::update( bool zoomChanged,
   bool sizeChanged )
 {
   std::cout << "DICOM Updating.." << std::endl;

+ 15 - 15
Libs/DICOM/Widgets/ctkDICOMDatasetViewerWidget.h

@@ -18,24 +18,24 @@
 
 =========================================================================*/
 
-#ifndef __ctkDICOMDatasetViewerWidget_h
-#define __ctkDICOMDatasetViewerWidget_h
+#ifndef __ctkDICOMDatasetView_h
+#define __ctkDICOMDatasetView_h
 
 /// Qt includes
 #include <QWidget>
 #include <QImage>
 
 /// CTK includes
-#include "ctkQImageViewerWidget.h"
+#include "ctkQImageView.h"
 #include "ctkPimpl.h"
-#include "ctkWidgetsExport.h"
+#include "ctkDICOMWidgetsExport.h"
 
-class ctkDICOMDatasetViewerWidgetPrivate;
+class ctkDICOMDatasetViewPrivate;
 
 ///
-/// ctkDICOMDatasetViewerWidget is the base class of image viewer widgets.
-class CTK_WIDGETS_EXPORT ctkDICOMDatasetViewerWidget
-: public ctkQImageViewerWidget
+/// ctkDICOMDatasetView is the base class of image viewer widgets.
+class CTK_DICOM_WIDGETS_EXPORT ctkDICOMDatasetView
+: public ctkQImageView
 {
 
   Q_OBJECT
@@ -43,13 +43,13 @@ class CTK_WIDGETS_EXPORT ctkDICOMDatasetViewerWidget
 public:
 
   /// Superclass typedef
-  typedef ctkQImageViewerWidget Superclass;
+  typedef ctkQImageView Superclass;
 
   /// Constructor
-  ctkDICOMDatasetViewerWidget( QWidget * parent = 0 );
+  ctkDICOMDatasetView( QWidget * parent = 0 );
   
   /// Destructor
-  virtual ~ctkDICOMDatasetViewerWidget( void );
+  virtual ~ctkDICOMDatasetView( void );
 
 public slots:
 
@@ -63,16 +63,16 @@ public slots:
 protected:
 
   /// protected constructor to derive private implementations
-  ctkDICOMDatasetViewerWidget( ctkDICOMDatasetViewerWidgetPrivate & pvt,
+  ctkDICOMDatasetView( ctkDICOMDatasetViewPrivate & pvt,
     QWidget* parent=0 );
 
 private:
 
-  QScopedPointer< ctkDICOMDatasetViewerWidgetPrivate > d_ptr;
+  QScopedPointer< ctkDICOMDatasetViewPrivate > d_ptr;
 
-  Q_DECLARE_PRIVATE( ctkDICOMDatasetViewerWidget );
+  Q_DECLARE_PRIVATE( ctkDICOMDatasetView );
 
-  Q_DISABLE_COPY( ctkDICOMDatasetViewerWidget );
+  Q_DISABLE_COPY( ctkDICOMDatasetView );
 
 };
 

+ 3 - 3
Libs/Widgets/CMakeLists.txt

@@ -85,8 +85,8 @@ SET(KIT_SRCS
   ctkSettingsDialog.h
   ctkSettingsPanel.cpp
   ctkSettingsPanel.h
-  ctkQImageViewerWidget.cpp
-  ctkQImageViewerWidget.h
+  ctkQImageView.cpp
+  ctkQImageView.h
   ctkSliderWidget.cpp
   ctkSliderWidget.h
   ctkTestApplication.cpp
@@ -178,7 +178,7 @@ SET(KIT_MOC_SRCS
   ctkSettings.h
   ctkSettingsDialog.h
   ctkSettingsPanel.h
-  ctkQImageViewerWidget.h
+  ctkQImageView.h
   ctkSliderWidget.h
   ctkTestApplication.h
   ctkToolTipTrapper.h

+ 115 - 83
Libs/Widgets/ctkQImageViewerWidget.cpp

@@ -21,7 +21,7 @@
 #include <iostream>
 
 // CTK includes
-#include "ctkQImageViewerWidget.h"
+#include "ctkQImageView.h"
 
 // Qt includes
 #include <QLabel>
@@ -33,13 +33,18 @@
 #include <QPainter>
 
 //--------------------------------------------------------------------------
-class ctkQImageViewerWidgetPrivate
+class ctkQImageViewPrivate
 {
-  Q_DECLARE_PUBLIC( ctkQImageViewerWidget );
+
+  Q_DECLARE_PUBLIC( ctkQImageView );
+
 protected:
-  ctkQImageViewerWidget* const q_ptr;
+
+  ctkQImageView* const q_ptr;
+
 public:
-  ctkQImageViewerWidgetPrivate( ctkQImageViewerWidget& object );
+
+  ctkQImageViewPrivate( ctkQImageView& object );
 
   void init();
 
@@ -83,17 +88,17 @@ public:
 };
 
 //--------------------------------------------------------------------------
-ctkQImageViewerWidgetPrivate::ctkQImageViewerWidgetPrivate(
-  ctkQImageViewerWidget& object )
+ctkQImageViewPrivate::ctkQImageViewPrivate(
+  ctkQImageView& object )
   : q_ptr( &object )
 {
   this->Window = new QLabel();
 }
 
 //--------------------------------------------------------------------------
-void ctkQImageViewerWidgetPrivate::init()
+void ctkQImageViewPrivate::init()
 {
-  Q_Q( ctkQImageViewerWidget );
+  Q_Q( ctkQImageView );
 
   this->Window->setParent(q);
   QHBoxLayout* layout = new QHBoxLayout(q);
@@ -133,11 +138,11 @@ void ctkQImageViewerWidgetPrivate::init()
   this->MouseRightDragging = false;
 
   // Don't expand for no reason
-  q->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
+  q->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );
 }
 
 //--------------------------------------------------------------------------
-double ctkQImageViewerWidgetPrivate::clamp( double x, double xMin,
+double ctkQImageViewPrivate::clamp( double x, double xMin,
   double xMax )
 {
   if( x < xMin )
@@ -152,7 +157,7 @@ double ctkQImageViewerWidgetPrivate::clamp( double x, double xMin,
 }
 
 //--------------------------------------------------------------------------
-void ctkQImageViewerWidgetPrivate::fitImageRectangle( double x0,
+void ctkQImageViewPrivate::fitImageRectangle( double x0,
   double x1, double y0, double y1 )
 {
   if( this->SliceNumber >= 0 && this->SliceNumber < this->ImageList.size() )
@@ -165,6 +170,7 @@ void ctkQImageViewerWidgetPrivate::fitImageRectangle( double x0,
       this->ImageList[ this->SliceNumber ]->height() );
     this->TmpYMax = this->clamp( y1, this->TmpYMin,
       this->ImageList[ this->SliceNumber ]->height() );
+
     this->CenterX = ( this->TmpXMax + this->TmpXMin ) / 2.0;
     this->CenterY = ( this->TmpYMax + this->TmpYMin ) / 2.0;
     }
@@ -172,35 +178,35 @@ void ctkQImageViewerWidgetPrivate::fitImageRectangle( double x0,
 
 
 // -------------------------------------------------------------------------
-ctkQImageViewerWidget::ctkQImageViewerWidget( QWidget* _parent )
+ctkQImageView::ctkQImageView( QWidget* _parent )
   : Superclass( _parent ),
-    d_ptr( new ctkQImageViewerWidgetPrivate( *this ) )
+    d_ptr( new ctkQImageViewPrivate( *this ) )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   d->init();
   d->TmpXMax = this->width();
   d->TmpYMax = this->height();
 }
 
 // -------------------------------------------------------------------------
-ctkQImageViewerWidget::ctkQImageViewerWidget(
-  ctkQImageViewerWidgetPrivate& pvt,
+ctkQImageView::ctkQImageView(
+  ctkQImageViewPrivate& pvt,
   QWidget* _parent)
   : Superclass(_parent), d_ptr(&pvt)
 {
-  Q_D(ctkQImageViewerWidget);
+  Q_D(ctkQImageView);
   d->init();
 }
 
 // -------------------------------------------------------------------------
-ctkQImageViewerWidget::~ctkQImageViewerWidget()
+ctkQImageView::~ctkQImageView()
 {
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::addImage( const QImage * image )
+void ctkQImageView::addImage( const QImage * image )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   d->ImageList.push_back( image );
   d->TmpXMin = 0;
   d->TmpXMax = image->width();
@@ -211,17 +217,17 @@ void ctkQImageViewerWidget::addImage( const QImage * image )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::clearImages( void )
+void ctkQImageView::clearImages( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   d->ImageList.clear();
   this->update( true, true );
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::xSpacing( void )
+double ctkQImageView::xSpacing( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     return( 1000.0 / d->ImageList[ d->SliceNumber ]->dotsPerMeterX() );
@@ -233,9 +239,9 @@ double ctkQImageViewerWidget::xSpacing( void )
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::ySpacing( void )
+double ctkQImageView::ySpacing( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     return( 1000.0 / d->ImageList[ d->SliceNumber ]->dotsPerMeterY() );
@@ -247,36 +253,36 @@ double ctkQImageViewerWidget::ySpacing( void )
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::sliceThickness( void )
+double ctkQImageView::sliceThickness( void )
 {
   return 1;
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::xPosition( void )
+double ctkQImageView::xPosition( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   return d->PositionX;
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::yPosition( void )
+double ctkQImageView::yPosition( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   return d->PositionY;
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::slicePosition( void )
+double ctkQImageView::slicePosition( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   return d->SliceNumber;
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::positionValue( void )
+double ctkQImageView::positionValue( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     QColor vc( d->ImageList[ d->SliceNumber ]->pixel( d->PositionX,
@@ -287,23 +293,23 @@ double ctkQImageViewerWidget::positionValue( void )
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::xCenter( void )
+double ctkQImageView::xCenter( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   return d->CenterX;
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::yCenter( void )
+double ctkQImageView::yCenter( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   return d->CenterY;
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setSliceNumber( int slicenum )
+void ctkQImageView::setSliceNumber( int slicenum )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( slicenum < d->ImageList.size() && slicenum != d->SliceNumber )
     {
     d->SliceNumber = slicenum;
@@ -317,9 +323,9 @@ void ctkQImageViewerWidget::setSliceNumber( int slicenum )
 }
 //
 // -------------------------------------------------------------------------
-int ctkQImageViewerWidget::sliceNumber( void ) const
+int ctkQImageView::sliceNumber( void ) const
 {
-  Q_D( const ctkQImageViewerWidget );
+  Q_D( const ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     return d->SliceNumber;
@@ -331,9 +337,9 @@ int ctkQImageViewerWidget::sliceNumber( void ) const
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setIntensityWindow( double iwMin, double iwMax )
+void ctkQImageView::setIntensityWindow( double iwMin, double iwMax )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( iwMin != d->IntensityWindowMin )
     {
     d->IntensityWindowMin = iwMin;
@@ -345,23 +351,23 @@ void ctkQImageViewerWidget::setIntensityWindow( double iwMin, double iwMax )
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::intensityWindowMin( void ) const
+double ctkQImageView::intensityWindowMin( void ) const
 {
-  Q_D( const ctkQImageViewerWidget );
+  Q_D( const ctkQImageView );
   return d->IntensityWindowMin;
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::intensityWindowMax( void ) const
+double ctkQImageView::intensityWindowMax( void ) const
 {
-  Q_D( const ctkQImageViewerWidget );
+  Q_D( const ctkQImageView );
   return d->IntensityWindowMax;
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setFlipXAxis( bool flip )
+void ctkQImageView::setFlipXAxis( bool flip )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( flip != d->FlipXAxis )
     {
     d->FlipXAxis = flip;
@@ -371,16 +377,16 @@ void ctkQImageViewerWidget::setFlipXAxis( bool flip )
 }
 
 // -------------------------------------------------------------------------
-bool ctkQImageViewerWidget::flipXAxis( void ) const
+bool ctkQImageView::flipXAxis( void ) const
 {
-  Q_D( const ctkQImageViewerWidget );
+  Q_D( const ctkQImageView );
   return d->FlipXAxis;
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setFlipYAxis( bool flip )
+void ctkQImageView::setFlipYAxis( bool flip )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( flip != d->FlipYAxis )
     {
     d->FlipYAxis = flip;
@@ -390,17 +396,17 @@ void ctkQImageViewerWidget::setFlipYAxis( bool flip )
 }
 
 // -------------------------------------------------------------------------
-bool ctkQImageViewerWidget::flipYAxis( void ) const
+bool ctkQImageView::flipYAxis( void ) const
 {
-  Q_D( const ctkQImageViewerWidget );
+  Q_D( const ctkQImageView );
   return d->FlipYAxis;
 }
 
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setTransposeXY( bool transpose )
+void ctkQImageView::setTransposeXY( bool transpose )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( transpose != d->TransposeXY )
     {
     d->TransposeXY = transpose;
@@ -410,16 +416,16 @@ void ctkQImageViewerWidget::setTransposeXY( bool transpose )
 }
 
 // -------------------------------------------------------------------------
-bool ctkQImageViewerWidget::transposeXY( void ) const
+bool ctkQImageView::transposeXY( void ) const
 {
-  Q_D( const ctkQImageViewerWidget );
+  Q_D( const ctkQImageView );
   return d->TransposeXY;
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setCenter( double x, double y )
+void ctkQImageView::setCenter( double x, double y )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
 	  int tmpXRange = d->TmpXMax - d->TmpXMin;
@@ -465,9 +471,9 @@ void ctkQImageViewerWidget::setCenter( double x, double y )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setPosition( double x, double y )
+void ctkQImageView::setPosition( double x, double y )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     d->PositionX = x;
@@ -482,9 +488,9 @@ void ctkQImageViewerWidget::setPosition( double x, double y )
 }
 
 // -------------------------------------------------------------------------
-double ctkQImageViewerWidget::zoom( void )
+double ctkQImageView::zoom( void )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     return d->Zoom;
@@ -493,9 +499,9 @@ double ctkQImageViewerWidget::zoom( void )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::setZoom( double factor )
+void ctkQImageView::setZoom( double factor )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     const QImage * img = d->ImageList[ d->SliceNumber ];
@@ -545,9 +551,9 @@ void ctkQImageViewerWidget::setZoom( double factor )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::reset( )
+void ctkQImageView::reset( )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
 
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
@@ -557,15 +563,41 @@ void ctkQImageViewerWidget::reset( )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::keyPressEvent( QKeyEvent * event )
+void ctkQImageView::keyPressEvent( QKeyEvent * event )
 {
-  event->ignore();
+  Q_D( ctkQImageView );
+
+  if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
+    {
+    switch( event->key() )
+      {
+      case Qt::Key_R:
+        {
+        this->reset();
+        break;
+        }
+      case Qt::Key_Up:
+        {
+        this->setSliceNumber( d->SliceNumber+1 );
+        break;
+        }
+      case Qt::Key_Down:
+        {
+        this->setSliceNumber( d->SliceNumber-1 );
+        break;
+        }
+      default:
+        {
+        event->ignore();
+        }
+      };
+    }
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::mousePressEvent( QMouseEvent * event )
+void ctkQImageView::mousePressEvent( QMouseEvent * event )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     switch( event->button() )
@@ -608,9 +640,9 @@ void ctkQImageViewerWidget::mousePressEvent( QMouseEvent * event )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::mouseReleaseEvent( QMouseEvent * event )
+void ctkQImageView::mouseReleaseEvent( QMouseEvent * event )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   d->MouseLeftDragging = false;
   d->MouseMiddleDragging = false;
   d->MouseRightDragging = false;
@@ -618,9 +650,9 @@ void ctkQImageViewerWidget::mouseReleaseEvent( QMouseEvent * event )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::mouseMoveEvent( QMouseEvent * event )
+void ctkQImageView::mouseMoveEvent( QMouseEvent * event )
 {
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     if( d->MouseLeftDragging )
@@ -673,19 +705,19 @@ void ctkQImageViewerWidget::mouseMoveEvent( QMouseEvent * event )
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::resizeEvent( QResizeEvent* event )
+void ctkQImageView::resizeEvent( QResizeEvent* event )
 {
   this->Superclass::resizeEvent( event );
   this->update( false, true );
 }
 
 // -------------------------------------------------------------------------
-void ctkQImageViewerWidget::update( bool zoomChanged,
+void ctkQImageView::update( bool zoomChanged,
   bool sizeChanged )
 {
   std::cout << "Updating.." << std::endl;
 
-  Q_D( ctkQImageViewerWidget );
+  Q_D( ctkQImageView );
   if( d->SliceNumber >= 0 && d->SliceNumber < d->ImageList.size() )
     {
     const QImage * img = d->ImageList[ d->SliceNumber ];

+ 11 - 11
Libs/Widgets/ctkQImageViewerWidget.h

@@ -18,8 +18,8 @@
 
 =========================================================================*/
 
-#ifndef __ctkQImageViewerWidget_h
-#define __ctkQImageViewerWidget_h
+#ifndef __ctkQImageView_h
+#define __ctkQImageView_h
 
 /// Qt includes
 #include <QWidget>
@@ -29,11 +29,11 @@
 #include "ctkPimpl.h"
 #include "ctkWidgetsExport.h"
 
-class ctkQImageViewerWidgetPrivate;
+class ctkQImageViewPrivate;
 
 ///
-/// ctkQImageViewerWidget is the base class of image viewer widgets.
-class CTK_WIDGETS_EXPORT ctkQImageViewerWidget: public QWidget
+/// ctkQImageView is the base class of image viewer widgets.
+class CTK_WIDGETS_EXPORT ctkQImageView: public QWidget
 {
 
   Q_OBJECT
@@ -44,10 +44,10 @@ public:
   typedef QWidget Superclass;
 
   /// Constructor
-  ctkQImageViewerWidget( QWidget* parent = 0 );
+  ctkQImageView( QWidget* parent = 0 );
   
   /// Destructor
-  virtual ~ctkQImageViewerWidget( void );
+  virtual ~ctkQImageView( void );
 
   double xSpacing( void );
   double ySpacing( void );
@@ -131,16 +131,16 @@ protected:
   virtual void resizeEvent( QResizeEvent* event );
 
   /// protected constructor to derive private implementations
-  ctkQImageViewerWidget( ctkQImageViewerWidgetPrivate & pvt,
+  ctkQImageView( ctkQImageViewPrivate & pvt,
     QWidget* parent=0 );
 
 private:
 
-  QScopedPointer< ctkQImageViewerWidgetPrivate > d_ptr;
+  QScopedPointer< ctkQImageViewPrivate > d_ptr;
 
-  Q_DECLARE_PRIVATE( ctkQImageViewerWidget );
+  Q_DECLARE_PRIVATE( ctkQImageView );
 
-  Q_DISABLE_COPY( ctkQImageViewerWidget );
+  Q_DISABLE_COPY( ctkQImageView );
 
 };