Преглед изворни кода

Merge pull request #797 from lassoan/dicom-import-from-dot-folder

BUG: Allow DICOM import from hidden folders
Steve Pieper пре 7 година
родитељ
комит
9dd4deb975
2 измењених фајлова са 13 додато и 3 уклоњено
  1. 8 2
      Libs/DICOM/Core/ctkDICOMIndexer.cpp
  2. 5 1
      Libs/DICOM/Core/ctkDICOMIndexer.h

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

@@ -103,7 +103,8 @@ void ctkDICOMIndexer::addFile(ctkDICOMDatabase& database,
 //------------------------------------------------------------------------------
 void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& ctkDICOMDatabase,
                                    const QString& directoryName,
-                                   const QString& destinationDirectoryName)
+                                   const QString& destinationDirectoryName,
+                                   bool includeHidden/*=true*/)
 {
   QStringList listOfFiles;
   QDir directory(directoryName);
@@ -114,7 +115,12 @@ void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& ctkDICOMDatabase,
   }
   else
   {
-    QDirIterator it(directoryName,QDir::Files,QDirIterator::Subdirectories);
+    QDir::Filters filters = QDir::Files;
+    if (includeHidden)
+    {
+      filters |= QDir::Hidden;
+    }
+    QDirIterator it(directoryName, filters, QDirIterator::Subdirectories);
     while(it.hasNext())
     {
       listOfFiles << it.next();

+ 5 - 1
Libs/DICOM/Core/ctkDICOMIndexer.h

@@ -48,8 +48,12 @@ public:
   /// Scan the directory using Dcmtk and populate the database with all the
   /// DICOM images accordingly.
   ///
+  /// If includeHidden is set to false then hidden files and folders are not added.
+  /// DICOM folders may be created based on series or study name, which sometimes start
+  /// with a . character, therefore it is advisable to include hidden files and folders.
+  ///
   Q_INVOKABLE void addDirectory(ctkDICOMDatabase& database, const QString& directoryName,
-                    const QString& destinationDirectoryName = "");
+                    const QString& destinationDirectoryName = "", bool includeHidden = true);
 
   ///
   /// \brief Adds directory to database by using DICOMDIR and optionally copies files to