]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Plugins/IO/DicomSeriesReader.cxx
Merge branch 'master' of ssh://git.creatis.insa-lyon.fr/cpPlugins
[cpPlugins.git] / lib / cpPlugins / Plugins / IO / DicomSeriesReader.cxx
index 913190f1f5f73b288650026c4c0d1c5e1e8fa2ca..e2aeb31b51f2bacb8faf5602d77e0f96d5a4265f 100644 (file)
@@ -6,6 +6,7 @@
 #include <sstream>
 #include <vector>
 
+#include <QApplication>
 #include <QDialogButtonBox>
 #include <QDir>
 #include <QFileDialog>
 #include <itkGDCMSeriesFileNames.h>
 
 // -------------------------------------------------------------------------
-bool cpPlugins::IO::DicomSeriesReader::
+cpPlugins::IO::DicomSeriesReader::
+DialogResult cpPlugins::IO::DicomSeriesReader::
 ExecConfigurationDialog( QWidget* parent )
 {
-  bool r = false;
+  DialogResult r = Self::DialogResult_Cancel;
 
 #ifdef cpPlugins_Interface_QT4
 
@@ -36,9 +38,13 @@ ExecConfigurationDialog( QWidget* parent )
   dialog.setFileMode( QFileDialog::DirectoryOnly );
   dialog.setDirectory( QFileDialog::tr( "." ) );
   if( !dialog.exec( ) )
-    return( false );
+    return( Self::DialogResult_Cancel );
 
   // Prepare dialog
+  QApplication::setOverrideCursor( Qt::WaitCursor );
+  if( parent != NULL )
+    parent->setEnabled( false );
+
   QDialog* tree_dialog = new QDialog( parent );
   QTreeWidget* tree_widget = new QTreeWidget( tree_dialog );
   QList< QTreeWidgetItem* > tree_items;
@@ -114,7 +120,7 @@ ExecConfigurationDialog( QWidget* parent )
   {
     delete tree_widget;
     delete tree_dialog;
-    return( false );
+    return( Self::DialogResult_Cancel );
 
   } // fi
 
@@ -139,8 +145,12 @@ ExecConfigurationDialog( QWidget* parent )
     );
   toolsLayout->addWidget( bb );
 
+  QApplication::restoreOverrideCursor( );
+  if( parent != NULL )
+    parent->setEnabled( true );
+
   if( tree_dialog->exec( ) == 0 )
-    return( false );
+    return( Self::DialogResult_Cancel );
 
   QTreeWidgetItem* item = tree_widget->currentItem( );
   if( item != NULL )
@@ -148,6 +158,10 @@ ExecConfigurationDialog( QWidget* parent )
     QTreeWidgetItem* item_parent = item->parent( );
     if( item_parent != NULL )
     {
+      QApplication::setOverrideCursor( Qt::WaitCursor );
+      if( parent != NULL )
+        parent->setEnabled( false );
+
       std::string serie_dir = item_parent->text( 0 ).toStdString( );
       std::string serie_id = item->text( 0 ).toStdString( );
       serie_id = serie_id.substr( serie_id.find_first_of( " " ) + 1 );
@@ -156,7 +170,11 @@ ExecConfigurationDialog( QWidget* parent )
       for( unsigned int f = 0; f < names.size( ); ++f )
         this->m_Parameters->AddToStringList( "FileNames", names[ f ] );
 
-      r = true;
+      r = Self::DialogResult_NoModal;
+
+      QApplication::restoreOverrideCursor( );
+      if( parent != NULL )
+        parent->setEnabled( true );
 
     } // fi