Prechádzať zdrojové kódy

Change ctkDICOMIndexer to be a QObject for wrapping

Expose the indexer in pythonqt.
Steve Pieper 14 rokov pred
rodič
commit
0542dadbd2

+ 1 - 0
Libs/DICOM/Core/CMakeLists.txt

@@ -53,6 +53,7 @@ ENDIF()
 SET(KIT_MOC_SRCS
   ctkDICOMAbstractThumbnailGenerator.h
   ctkDICOMDatabase.h
+  ctkDICOMIndexer.h
   ctkDICOMFilterProxyModel.h
   ctkDICOMModel.h
   ctkDICOMQuery.h

+ 2 - 1
Libs/DICOM/Core/ctkDICOMIndexer.cpp

@@ -82,8 +82,9 @@ ctkDICOMIndexerPrivate::~ctkDICOMIndexerPrivate()
 // ctkDICOMIndexer methods
 
 //------------------------------------------------------------------------------
-ctkDICOMIndexer::ctkDICOMIndexer():d_ptr(new ctkDICOMIndexerPrivate)
+ctkDICOMIndexer::ctkDICOMIndexer(QObject *parent):d_ptr(new ctkDICOMIndexerPrivate)
 {
+  Q_UNUSED(parent);
 }
 
 //------------------------------------------------------------------------------

+ 6 - 4
Libs/DICOM/Core/ctkDICOMIndexer.h

@@ -22,6 +22,7 @@
 #define __ctkDICOMIndexer_h
 
 // Qt includes 
+#include <QObject>
 #include <QSqlDatabase>
 
 #include "ctkDICOMCoreExport.h"
@@ -33,10 +34,11 @@ class ctkDICOMAbstractThumbnailGenerator;
 /**
     \brief Indexes DICOM images located in local directory into an Sql database
 */
-class CTK_DICOM_CORE_EXPORT ctkDICOMIndexer
+class CTK_DICOM_CORE_EXPORT ctkDICOMIndexer : public QObject
 {
+  Q_OBJECT
 public:
-  explicit ctkDICOMIndexer();
+  explicit ctkDICOMIndexer(QObject *parent = 0);
   virtual ~ctkDICOMIndexer();
   
   /**
@@ -46,10 +48,10 @@ public:
       Scan the directory using Dcmtk and populate the database with all the
       DICOM images accordingly.
   */
-  void addDirectory(ctkDICOMDatabase& database, const QString& directoryName,
+  Q_INVOKABLE void addDirectory(ctkDICOMDatabase& database, const QString& directoryName,
                     const QString& destinationDirectoryName = "",
                     bool createHierarchy = true, bool createThumbnails = true);
-  void refreshDatabase(ctkDICOMDatabase& database, const QString& directoryName);
+  Q_INVOKABLE void refreshDatabase(ctkDICOMDatabase& database, const QString& directoryName);
 
   ///
   /// set thumbnail generator object