Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/visu.git] / src / VISUGUI / VisuGUI_BuildProgressDlg.cxx
index 7705f32dcb5685727a68606d4095aa19715e9255..0d8cf8c361b06dede12b4d7a17ca49f01ac65a0d 100644 (file)
  * Constructor
  */
 VisuGUI_BuildProgressDlg::VisuGUI_BuildProgressDlg( QWidget* theParent ):
-  QDialog( theParent, "VisuGUI_BuildProgressBar", false ),
+  QDialog( theParent, 
+          "VisuGUI_BuildProgressBar", 
+          false,
+          WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose),
   myIsRaiseColor( false )
 {
   setCaption( tr( "DLG_BUILD_PROGRESS_TITLE" ) );
@@ -205,7 +208,7 @@ VisuGUI_BuildProgressDlg::~VisuGUI_BuildProgressDlg()
 
 void VisuGUI_BuildProgressDlg::show()
 {
-  if( onBrowseFile() )
+  if( !myFileName.isNull() || onBrowseFile() )
     QWidget::show();
 }
 
@@ -214,37 +217,44 @@ void VisuGUI_BuildProgressDlg::onStart()
   if( myFileName.isNull() )
     return;
 
-  bool aBuildAll = myBuildAllCheckBox->isChecked();
-  bool aBuildAtOnce = myBuildAtOnceCheckBox->isChecked();
-
   myResult = myGenerator->CreateResult( myFileName );
 
-  myResult->SetBuildFields( myBuildFieldsCheckBox->isChecked(), myBuildMinMaxCheckBox->isChecked() );
-  myResult->SetBuildGroups( myBuildGroupsCheckBox->isChecked() );
-
-  //setModal( false );
-  myFileNameLineEdit->setReadOnly( true );
-  /*
-  myBuildAllCheckBox->setNoChange();
-  myBuildAtOnceCheckBox->setNoChange();
-  myBuildEntitiesCheckBox->setNoChange();
-  myBuildFieldsCheckBox->setNoChange();
-  myBuildMinMaxCheckBox->setNoChange();
-  myBuildGroupsCheckBox->setNoChange();
-  */
-
-  myStartButton->setEnabled( false );
+  if (CORBA::is_nil(myResult.in())) {
+    SUIT_MessageBox::warn1(this,
+                          tr("WRN_VISU"),
+                          tr("ERR_ERROR_IN_THE_FILE"),
+                          tr("BUT_OK"));
+    onClose();
+  }else{
+    myResult->SetBuildFields( myBuildFieldsCheckBox->isChecked(), myBuildMinMaxCheckBox->isChecked() );
+    myResult->SetBuildGroups( myBuildGroupsCheckBox->isChecked() );
+    
+    //setModal( false );
+    myFileNameLineEdit->setReadOnly( true );
+    /*
+      myBuildAllCheckBox->setNoChange();
+      myBuildAtOnceCheckBox->setNoChange();
+      myBuildEntitiesCheckBox->setNoChange();
+      myBuildFieldsCheckBox->setNoChange();
+      myBuildMinMaxCheckBox->setNoChange();
+      myBuildGroupsCheckBox->setNoChange();
+    */
+
+    myStartButton->setEnabled( false );
+    
+    bool aBuildAtOnce = myBuildAtOnceCheckBox->isChecked();
+    if( aBuildAtOnce )
+    {
+      QApplication::setOverrideCursor( Qt::waitCursor );
+      myCurrentTime = vtkTimerLog::GetCurrentTime();
+    }
 
-  if( aBuildAtOnce )
-  {
-    QApplication::setOverrideCursor( Qt::waitCursor );
-    myCurrentTime = vtkTimerLog::GetCurrentTime();
+    myTime.setHMS( 0, 0, 0 );
+    myTimer->start( 100 );
+    
+    bool aBuildAll = myBuildAllCheckBox->isChecked();
+    myResult->Build( aBuildAll, aBuildAtOnce );
   }
-
-  myTime.setHMS( 0, 0, 0 );
-  myTimer->start( 100 );
-
-  myResult->Build( aBuildAll, aBuildAtOnce );
 }
 
 void VisuGUI_BuildProgressDlg::onClose()
@@ -390,3 +400,12 @@ void VisuGUI_BuildProgressDlg::onBuildCheckBoxClicked()
     myBuildGroupsButton->setPaletteBackgroundColor( aColor );
 
 }
+
+void VisuGUI_BuildProgressDlg::setFileName( const QString& theFileName )
+{
+  if ( !theFileName.isNull() )
+    {
+      myFileName = theFileName;
+      myFileNameLineEdit->setText( myFileName.section( '/', -1 ) );
+    }
+}