Salome HOME
latests developments debug and porting Python3
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImportSinusXOp.cxx
index 4f30e80256c3ee52da222e821eadd0570ff4b6b4..73125df6a68e8fe99247229ba4f374dbe31d81ec 100644 (file)
@@ -40,6 +40,7 @@
 #include <QMessageBox>
 
 #include <HYDROData_SinusX.h>
+#include <HYDROGUI_ImportSinusXDlg.h>
 
 
 HYDROGUI_ImportSinusXOp::HYDROGUI_ImportSinusXOp( HYDROGUI_Module* theModule )
@@ -59,7 +60,7 @@ void HYDROGUI_ImportSinusXOp::startOperation()
   myFileDlg = new SUIT_FileDlg( module()->getApp()->desktop(), true );
   myFileDlg->setWindowTitle( getName() );
   myFileDlg->setFileMode( SUIT_FileDlg::ExistingFiles );
-  myFileDlg->setFilter( tr("SINUSX_FILTER") );
+  myFileDlg->setNameFilter( tr("SINUSX_FILTER") );
 
   connect( myFileDlg, SIGNAL( accepted() ), this, SLOT( onApply() ) );
   connect( myFileDlg, SIGNAL( rejected() ), this, SLOT( onCancel() ) );
@@ -77,8 +78,7 @@ void HYDROGUI_ImportSinusXOp::onApply()
 
   QStringList aFileNames = myFileDlg->selectedFiles();
   bool IsImported = false;
-  
-  QApplication::setOverrideCursor( Qt::WaitCursor );  
+
   startDocOperation();
 
   foreach (QString aFileName, aFileNames) 
@@ -91,11 +91,34 @@ void HYDROGUI_ImportSinusXOp::onApply()
     if (anExt == "sx")
     {
       HYDROData_SinusX aSinusXImporter;
-      NCollection_Sequence<Handle_HYDROData_Entity> anEntities;
-      if (aSinusXImporter.Import(aFileName, doc(), anEntities)) 
+      NCollection_Sequence<Handle(HYDROData_Entity)> anEntities;
+      QApplication::setOverrideCursor( Qt::WaitCursor );  
+      bool ParseStat = aSinusXImporter.OpenAndParse(aFileName);
+      QApplication::restoreOverrideCursor();
+      if (ParseStat)
       {
-        UpdateView(anEntities);
-        IsImported = true;
+        std::vector<HYDROGUI_CurveBlock> aCurveBlocks = aSinusXImporter.GetCurveBlocks();
+        QStringList names;
+        std::vector<int> types;
+        for (int i=0;i<aCurveBlocks.size();i++)
+        {
+          HYDROGUI_CurveBlock CurveBlock = aCurveBlocks[i];
+          types.push_back(CurveBlock.myType);
+          names << CurveBlock.myName;
+        }
+        HYDROGUI_ImportSinusXDlg* aDLG = new HYDROGUI_ImportSinusXDlg( module()->getApp()->desktop(), names, types );
+        aDLG->setModal( true );
+        aDLG->setWindowTitle(tr("ENTITIES_TO_IMPORT_FROM_SX"));
+        //QApplication::restoreOverrideCursor();
+        if( aDLG->exec()==QDialog::Accepted ) //??
+        {
+          QApplication::setOverrideCursor( Qt::WaitCursor );
+          std::vector<HYDROData_SinusX::ImportOptions> options = aDLG->GetImportOptions();
+          aSinusXImporter.Import(doc(), anEntities, &options);
+          UpdateView(anEntities);
+          QApplication::restoreOverrideCursor();
+          IsImported = true;
+        }
       }
     }
   }
@@ -112,7 +135,7 @@ void HYDROGUI_ImportSinusXOp::onApply()
   QApplication::restoreOverrideCursor();
 }
 
-void HYDROGUI_ImportSinusXOp::UpdateView( NCollection_Sequence<Handle_HYDROData_Entity>& anEntities)
+void HYDROGUI_ImportSinusXOp::UpdateView( NCollection_Sequence<Handle(HYDROData_Entity)>& anEntities)
 {
   size_t anActiveViewId = HYDROGUI_Tool::GetActiveGraphicsViewId( module() );
   if ( anActiveViewId == 0 )