Salome HOME
Update GUI documentation for bugs 16559
[modules/geom.git] / src / GEOMToolsGUI / GEOMToolsGUI.cxx
index 1e9479c1c0a83c23d6dac747c495086c619f78cb..8ee1a8648eb5e394a0421d340f84eaa6e559d59d 100644 (file)
@@ -46,6 +46,7 @@
 #include <SalomeApp_Application.h>
 #include <SalomeApp_Study.h>
 #include <LightApp_SelectionMgr.h>
+#include <GEOMImpl_Types.hxx>
 
 #include <SALOME_ListIteratorOfListIO.hxx>
 #include <SALOME_Prs.h>
@@ -71,14 +72,21 @@ typedef QMap<QString, QString> FilterMap;
 static QString getFileName( QWidget*           parent,
                            const QString&     initial,
                            const FilterMap&   filterMap,
+                            const QStringList  filters,
                            const QString&     caption,
                            bool               open,
                            QString&           format )
 {
   static QString lastUsedFilter;
-  QStringList filters;
-  for ( FilterMap::const_iterator it = filterMap.begin(); it != filterMap.end(); ++it )
-    filters.push_back( it.key() );
+  //QStringList filters;
+  QString aBrepFilter;
+  for ( FilterMap::const_iterator it = filterMap.begin(); it != filterMap.end(); ++it ) {
+    //filters.push_back( it.key() );
+
+    if (it.key().contains("BREP", false)) {
+      aBrepFilter = it.key();
+    }
+  }
 
   SUIT_FileDlg* fd = new SUIT_FileDlg( parent, open, true, true );
   if ( !caption.isEmpty() )
@@ -87,10 +95,15 @@ static QString getFileName( QWidget*           parent,
   if ( !initial.isEmpty() )
     fd->setSelection( initial );
 
+  fd->setFilters( filters );
+
   if ( !lastUsedFilter.isEmpty() && filterMap.contains( lastUsedFilter ) )
     fd->setSelectedFilter( lastUsedFilter );
-
-  fd->setFilters( filters );
+  else {
+    if (!aBrepFilter.isEmpty()) {
+      fd->setSelectedFilter(aBrepFilter);
+    }
+  }
 
   fd->exec();
   QString filename = fd->selectedFile();
@@ -154,6 +167,46 @@ bool GEOMToolsGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
        Export();
        break;
       }
+    case 2171: // POPUP VIEWER - SELECT ONLY - VERTEX
+      {
+       OnSelectOnly( GEOM_POINT );
+       break;
+      }
+    case 2172: // POPUP VIEWER - SELECT ONLY - EDGE
+      {
+       OnSelectOnly( GEOM_EDGE );
+       break;
+      }
+    case 2173: // POPUP VIEWER - SELECT ONLY - WIRE
+      {
+       OnSelectOnly( GEOM_WIRE );
+       break;
+      }
+    case 2174: // POPUP VIEWER - SELECT ONLY - FACE
+      {
+       OnSelectOnly( GEOM_FACE );
+       break;
+      }
+    case 2175: // POPUP VIEWER - SELECT ONLY - SHELL
+      {
+       OnSelectOnly( GEOM_SHELL );
+       break;
+      }
+    case 2176: // POPUP VIEWER - SELECT ONLY - SOLID
+      {
+       OnSelectOnly( GEOM_SOLID );
+       break;
+      }
+    case 2177: // POPUP VIEWER - SELECT ONLY - COMPOUND
+      {
+       OnSelectOnly( GEOM_COMPOUND );
+       break;
+      }
+    case 2178: // POPUP VIEWER - SELECT ONLY - SELECT ALL
+      {
+       OnSelectOnly( GEOM_ALLOBJECTS );
+       break;
+      }    
     case 411: // SETTINGS - ADD IN STUDY
       {
        // SAN -- TO BE REMOVED !!!
@@ -204,6 +257,16 @@ bool GEOMToolsGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
        OnNbIsos();
        break;
       }
+    case 8035: // AUTO COLOR - POPUP VIEWER
+      {
+       OnAutoColor();
+       break;
+      }
+    case 8036: // DISABLE AUTO COLOR - POPUP VIEWER
+      {
+       OnDisableAutoColor();
+       break;
+      }
     case 9024 : // OPEN - OBJBROSER POPUP
       {
        OnOpen();
@@ -249,7 +312,7 @@ void GEOMToolsGUI::OnEditDelete()
        // VSR 17/11/04: check if all objects selected belong to GEOM component --> start
        // modifications of ASV 01.06.05
        QString parentComp = getParentComponent( aStudy, selected );
-  CORBA::String_var geomIOR = app->orb()->object_to_string( GeometryGUI::GetGeomGen() );
+        CORBA::String_var geomIOR = app->orb()->object_to_string( GeometryGUI::GetGeomGen() );
        QString geomComp = getParentComponent( aStudy->FindObjectIOR( geomIOR.in() ) );
 
        if ( parentComp != geomComp )  {
@@ -422,15 +485,18 @@ bool GEOMToolsGUI::Import()
 
   // Obtain a list of available import formats
   FilterMap aMap;
+  QStringList filters;
   GEOM::string_array_var aFormats, aPatterns;
   aInsOp->ImportTranslators( aFormats, aPatterns );
 
-  for ( int i = 0, n = aFormats->length(); i < n; i++ )
+  for ( int i = 0, n = aFormats->length(); i < n; i++ ) {
     aMap.insert( (char*)aPatterns[i], (char*)aFormats[i] );
+    filters.push_back( (char*)aPatterns[i] );
+  }
 
   QString fileType;
 
-  QString fileName = getFileName(app->desktop(), "", aMap,
+  QString fileName = getFileName(app->desktop(), "", aMap, filters,
                                  tr("GEOM_MEN_IMPORT"), true, fileType);
 
   if (fileType.isEmpty() )
@@ -459,7 +525,6 @@ bool GEOMToolsGUI::Import()
     anObj = aInsOp->Import(fileN, fileT);
 
     if ( !anObj->_is_nil() && aInsOp->IsDone() ) {
-      anObj->SetName(GEOMBase::GetDefaultName(QObject::tr("GEOM_IMPORT")).latin1());
       QString aPublishObjName =
         GEOMBase::GetDefaultName(SUIT_Tools::file(fileName, /*withExten=*/true));
 
@@ -528,10 +593,13 @@ bool GEOMToolsGUI::Export()
 
   // Obtain a list of available export formats
   FilterMap aMap;
+  QStringList filters;
   GEOM::string_array_var aFormats, aPatterns;
   aInsOp->ExportTranslators( aFormats, aPatterns );
-  for ( int i = 0, n = aFormats->length(); i < n; i++ )
+  for ( int i = 0, n = aFormats->length(); i < n; i++ ) {
     aMap.insert( (char*)aPatterns[i], (char*)aFormats[i] );
+    filters.push_back( (char*)aPatterns[i] );
+  }
 
   // Get selected objects
   LightApp_SelectionMgr* sm = app->selectionMgr();
@@ -551,7 +619,7 @@ bool GEOMToolsGUI::Export()
       continue;
 
     QString fileType;
-    QString file = getFileName(app->desktop(), QString( IObject->getName() ), aMap,
+    QString file = getFileName(app->desktop(), QString( IObject->getName() ), aMap, filters,
                               tr("GEOM_MEN_EXPORT"), false, fileType);
 
     // User has pressed "Cancel" --> stop the operation
@@ -703,6 +771,21 @@ bool GEOMToolsGUI::CheckSubObjectInUse(_PTR(SObject) checkobj,
   return false;
 }
 
+//=================================================================================
+// function : deactivate()
+// purpose  : Called when GEOM component is deactivated
+//=================================================================================
+void GEOMToolsGUI::deactivate()
+{
+  SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  if ( app ) {
+    SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+    GEOM_Displayer aDisp (appStudy);
+    aDisp.GlobalSelection();
+    getGeometryGUI()->setLocalSelectionMode(GEOM_ALLOBJECTS);
+  }
+}
+
 //=====================================================================================
 // EXPORTED METHODS
 //=====================================================================================