]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
Update from local sources
authorapo <apo@opencascade.com>
Wed, 8 Jun 2005 06:18:53 +0000 (06:18 +0000)
committerapo <apo@opencascade.com>
Wed, 8 Jun 2005 06:18:53 +0000 (06:18 +0000)
15 files changed:
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h
src/SMESHGUI/SMESHGUI_FilterDlg.cxx
src/SMESHGUI/SMESHGUI_FilterDlg.h
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h
src/SMESHGUI/SMESHGUI_FilterUtils.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.h
src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx
src/SMESHGUI/SMESHGUI_NodesDlg.cxx
src/SMESHGUI/SMESHGUI_NodesDlg.h
src/SMESHGUI/SMESHGUI_Selection.cxx
src/SMESHGUI/SMESHGUI_Selection.h

index 21faa6d72de5aa43773c36975af51dcd45defdb3..30064c21b604b455f3b4f0b36dd91ae10cde908b 100644 (file)
@@ -307,19 +307,6 @@ namespace{
            aFilename = fd->selectedFile();
            aFormat = aFilterMap[fd->selectedFilter()];
            delete fd;
-           if( !aFilename.isEmpty()
-               && (aMesh->NbPolygons()>0 or aMesh->NbPolyhedrons()>0) 
-               && aFormat==SMESH::MED_V2_1){
-             int aRet = SUIT_MessageBox::warn2(SMESHGUI::desktop(),
-                                              QObject::tr("SMESH_WRN_WARNING"),
-                                              QObject::tr("SMESH_EXPORT_MED_V2_1").arg(anIObject->getName()),
-                                              QObject::tr("SMESH_BUT_YES"),
-                                              QObject::tr("SMESH_BUT_NO"),
-                                              0,1,0);
-             if(aRet){
-               return;
-             }
-           }
          }
        if ( !aFilename.isEmpty() ) {
          // Check whether the file already exists and delete it if yes
@@ -1235,7 +1222,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       if ( vtkwnd ) {
        EmitSignalDeactivateDialog();
 
-       new SMESHGUI_NodesDlg( desktop(), "", SMESHGUI::selectionMgr() );
+       new SMESHGUI_NodesDlg(this);
       }
       else {
        SUIT_MessageBox::warn1(desktop(),
@@ -1698,7 +1685,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
 
       EmitSignalDeactivateDialog();
 
-      new SMESHGUI_DeleteGroupDlg( desktop(), SMESHGUI::selectionMgr() );
+      new SMESHGUI_DeleteGroupDlg(this);
       break;
     }
 
@@ -2169,7 +2156,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       aTypes.append( SMESH::FACE );
       aTypes.append( SMESH::VOLUME );
     }
-    new SMESHGUI_FilterLibraryDlg( desktop(), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+    new SMESHGUI_FilterLibraryDlg( this, SMESH::GetDesktop( this ), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
   }
   break;
 
@@ -2443,9 +2430,9 @@ void SMESHGUI::createPopupItem( const int id,
   if( !popupMgr()->contains( popupMgr()->actionId( action( id ) ) ) )
     popupMgr()->insert( action( id ), parentId, 0 );
 
-  QChar lc = popupMgr()->equality();
+  QChar lc = QtxPopupMgr::Selection::defEquality();
   QString rule = "(%1) and (%2) and (%3)";
-  rule = rule.arg( QString( "%1>0" ).arg( popupMgr()->selCountParam() ) );
+  rule = rule.arg( QString( "%1>0" ).arg( QtxPopupMgr::Selection::defSelCountParam() ) );
   rule = rule.arg( QString( "%1client in {%2}" ).arg( lc ).arg( clients ) );
   rule = rule.arg( QString( "%1type in {%2}" ).arg( lc ).arg( types ) );
   rule += theRule;
@@ -2499,19 +2486,19 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction(  813, "DEL_GROUP",       "ICON_DEL_GROUP" );
   createSMESHAction(  900, "ADV_INFO",        "ICON_ADV_INFO" );
   createSMESHAction(  902, "STD_INFO",        "ICON_STD_INFO" );
-  createSMESHAction( 6001, "LENGTH",          "ICON_LENGTH" );
-  createSMESHAction( 6002, "FREE_EDGE",       "ICON_FREE_EDGE" );
-  createSMESHAction( 6003, "FREE_BORDER",     "ICON_FREE_EDGE_2D" );
-  createSMESHAction( 6004, "CONNECTION",      "ICON_CONNECTION" );
-  createSMESHAction( 6011, "AREA",            "ICON_AREA" );
-  createSMESHAction( 6012, "TAPER",           "ICON_TAPER" );
-  createSMESHAction( 6013, "ASPECT",          "ICON_ASPECT" );
-  createSMESHAction( 6014, "MIN_ANG",         "ICON_ANGLE" );
-  createSMESHAction( 6015, "WRAP",            "ICON_WRAP" );
-  createSMESHAction( 6016, "SKEW",            "ICON_SKEW" );
-  createSMESHAction( 6017, "ASPECT_3D",       "ICON_ASPECT_3D" );
-  createSMESHAction( 6018, "LENGTH_2D",       "ICON_LENGTH_2D" );
-  createSMESHAction( 6019, "CONNECTION_2D",   "ICON_CONNECTION_2D" );
+  createSMESHAction( 6001, "LENGTH",          "ICON_LENGTH" ,       0, true );
+  createSMESHAction( 6002, "FREE_EDGE",       "ICON_FREE_EDGE" ,    0, true );
+  createSMESHAction( 6003, "FREE_BORDER",     "ICON_FREE_EDGE_2D" , 0, true );
+  createSMESHAction( 6004, "CONNECTION",      "ICON_CONNECTION" ,   0, true );
+  createSMESHAction( 6011, "AREA",            "ICON_AREA" ,         0, true );
+  createSMESHAction( 6012, "TAPER",           "ICON_TAPER" ,        0, true );
+  createSMESHAction( 6013, "ASPECT",          "ICON_ASPECT" ,       0, true );
+  createSMESHAction( 6014, "MIN_ANG",         "ICON_ANGLE" ,        0, true );
+  createSMESHAction( 6015, "WRAP",            "ICON_WRAP" ,         0, true );
+  createSMESHAction( 6016, "SKEW",            "ICON_SKEW",          0, true );
+  createSMESHAction( 6017, "ASPECT_3D",       "ICON_ASPECT_3D",     0, true );
+  createSMESHAction( 6018, "LENGTH_2D",       "ICON_LENGTH_2D",     0, true );
+  createSMESHAction( 6019, "CONNECTION_2D",   "ICON_CONNECTION_2D", 0, true );
   createSMESHAction(  400, "NODE",            "ICON_DLG_NODE" );
   createSMESHAction(  401, "EDGE",            "ICON_DLG_EDGE" );
   createSMESHAction( 4021, "TRIANGLE",        "ICON_DLG_TRIANGLE" );
@@ -2550,18 +2537,19 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction( 10071, "DISP_ENT", "", 0, true );
   createSMESHAction(  200, "RESET" );
   createSMESHAction(  201, "SCALAR_BAR_PROP" );
-  createSMESHAction(  211, "WIRE",           "ICON_WIRE" );
-  createSMESHAction(  212, "SHADE",          "ICON_SHADE" );
-  createSMESHAction(  213, "SHRINK",         "ICON_SHRINK" );
+  createSMESHAction(  211, "WIRE",           "ICON_WIRE", 0, true );
+  createSMESHAction(  212, "SHADE",          "ICON_SHADE", 0, true );
+  createSMESHAction(  213, "SHRINK",         "ICON_SHRINK", 0, true );
   createSMESHAction(  214, "UPDATE",         "ICON_UPDATE" );
-  createSMESHAction(  215, "NODES",          "ICON_POINTS" );
-  createSMESHAction(  217, "EDGES",          "ICON_DLG_EDGE" );
-  createSMESHAction(  218, "FACES",          "ICON_DLG_TRIANGLE" );
-  createSMESHAction(  219, "VOLUMES",        "ICON_DLG_TETRAS" );
+  createSMESHAction(  215, "NODES",          "ICON_POINTS", 0, true );
+  createSMESHAction(  217, "EDGES",          "ICON_DLG_EDGE", 0, true );
+  createSMESHAction(  218, "FACES",          "ICON_DLG_TRIANGLE", 0, true );
+  createSMESHAction(  219, "VOLUMES",        "ICON_DLG_TETRAS", 0, true );
   createSMESHAction(  220, "ALL" );
+  createSMESHAction( 1100, "EDIT_HYPO" );
   createSMESHAction( 1101, "RENAME" );
-  createSMESHAction( 9010, "NUM_NODES" );
-  createSMESHAction( 9011, "NUM_ELEMENTS" );
+  createSMESHAction( 9010, "NUM_NODES", "", 0, true );
+  createSMESHAction( 9011, "NUM_ELEMENTS", "", 0, true );
   createSMESHAction( 1131, "DISPMODE" );
   createSMESHAction( 1132, "COLORS" );
   createSMESHAction( 1133, "TRANSP" );
@@ -2847,9 +2835,9 @@ void SMESHGUI::initialize( CAM_Application* app )
     hasFaces("{'Face'} in elemTypes"),
     hasVolumes("{'Volume'} in elemTypes");
 
-  QString aSelCount = popupMgr()->selCountParam() + "= 1";
-  QString aClient = QString( popupMgr()->equality() )+ "client in {" + View + "}";
-  QString aType = QString( popupMgr()->equality() ) + "type in {" + mesh_group + "}";
+  QString aSelCount = QString( "%1 = 1" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
+  QString aClient = QString( "%1client in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( View );
+  QString aType = QString( "%1type in {%2}" ).arg( QtxPopupMgr::Selection::defEquality() ).arg( mesh_group );
   QString aMeshInVTK = aClient + "&&" + aType + "&&" + aSelCount;
   
   //-------------------------------------------------
@@ -2951,59 +2939,59 @@ void SMESHGUI::initialize( CAM_Application* app )
 
   popupMgr()->insert( action( 6003 ), anId, -1 ); // FREE_BORDER
   popupMgr()->setRule( action( 6003 ), aMeshInVtkHasEdges, true );
-  popupMgr()->setRule( action( 6003 ), "&& controlMode = 'eFreeEdges'", true );
+  popupMgr()->setRule( action( 6003 ), "controlMode = 'eFreeEdges'", false );
 
   popupMgr()->insert( action( 6001 ), anId, -1 ); // LENGTH
   popupMgr()->setRule( action( 6001 ), aMeshInVtkHasEdges, true );
-  popupMgr()->setRule( action( 6001 ), "&& controlMode = 'eLength'", true );
+  popupMgr()->setRule( action( 6001 ), "controlMode = 'eLength'", false );
 
   popupMgr()->insert( action( 6004 ), anId, -1 ); // CONNECTION
   popupMgr()->setRule( action( 6004 ), aMeshInVtkHasEdges, true );
-  popupMgr()->setRule( action( 6004 ), "&& controlMode = 'eMultiConnection'", true );
+  popupMgr()->setRule( action( 6004 ), "controlMode = 'eMultiConnection'", false );
 
   popupMgr()->insert( separator(), anId, -1 );
 
   popupMgr()->insert( action( 6002 ), anId, -1 ); // FREE_EDGE
   popupMgr()->setRule( action( 6002 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6002 ), "&& controlMode = 'eFreeBorders'", true );
+  popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeBorders'", false );
 
   popupMgr()->insert( action( 6018 ), anId, -1 ); // LENGTH_2D
   popupMgr()->setRule( action( 6018 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6018 ), "&& controlMode = 'eLength2D'", true );
+  popupMgr()->setRule( action( 6018 ), "controlMode = 'eLength2D'", false );
 
   popupMgr()->insert( action( 6019 ), anId, -1 ); // CONNECTION_2D
   popupMgr()->setRule( action( 6019 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6019 ), "&& controlMode = 'eMultiConnection2D'", true );
+  popupMgr()->setRule( action( 6019 ), "controlMode = 'eMultiConnection2D'", false );
 
   popupMgr()->insert( action( 6011 ), anId, -1 ); // AREA
   popupMgr()->setRule( action( 6011 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6011 ), "&& controlMode = 'eArea'", true );
+  popupMgr()->setRule( action( 6011 ), "controlMode = 'eArea'", false );
 
   popupMgr()->insert( action( 6012 ), anId, -1 ); // TAPER
   popupMgr()->setRule( action( 6012 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6012 ), "&& controlMode = 'eTaper'", true );
+  popupMgr()->setRule( action( 6012 ), "controlMode = 'eTaper'", false );
 
   popupMgr()->insert( action( 6013 ), anId, -1 ); // ASPECT
   popupMgr()->setRule( action( 6013 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6013 ), "&& controlMode = 'eAspectRatio'", true );
+  popupMgr()->setRule( action( 6013 ), "controlMode = 'eAspectRatio'", false );
 
   popupMgr()->insert( action( 6014 ), anId, -1 ); // MIN_ANG
   popupMgr()->setRule( action( 6014 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6014 ), "&& controlMode = 'eMinimumAngle'", true );
+  popupMgr()->setRule( action( 6014 ), "controlMode = 'eMinimumAngle'", false );
 
   popupMgr()->insert( action( 6015 ), anId, -1 ); // WRAP
   popupMgr()->setRule( action( 6015 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6015 ), "&& controlMode = 'eWarping'", true );
+  popupMgr()->setRule( action( 6015 ), "controlMode = 'eWarping'", false );
 
   popupMgr()->insert( action( 6016 ), anId, -1 ); // SKEW
   popupMgr()->setRule( action( 6016 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6016 ), "&& controlMode = 'eSkew'", true );
+  popupMgr()->setRule( action( 6016 ), "controlMode = 'eSkew'", false );
 
   popupMgr()->insert( separator(), anId, -1 );
 
   popupMgr()->insert( action( 6017 ), anId, -1 ); // ASPECT_3D
   popupMgr()->setRule( action( 6017 ), aMeshInVtkHasVolumes, true );
-  popupMgr()->setRule( action( 6017 ), "&& controlMode = 'eAspectRatio3D'", true );
+  popupMgr()->setRule( action( 6017 ), "controlMode = 'eAspectRatio3D'", false );
 
   popupMgr()->insert( separator(), anId, -1 );
 
@@ -3073,7 +3061,8 @@ QString SMESHGUI::engineIOR() const
 
 void SMESHGUI::contextMenuPopup( const QString& client, QPopupMenu* menu, QString& /*title*/ )
 {
-  SMESHGUI_Selection sel( client, selectionMgr() );
+  SMESHGUI_Selection sel;
+  sel.init( client, selectionMgr() );
   popupMgr()->updatePopup( menu, &sel );
 }
 
index b71866823d94bb66f4c53a70b73f3d233668094d..838f50877aa42c23aa8f3d9f8ddb43de2af7dc4f 100644 (file)
 #include "SalomeApp_Study.h"
 #include "SalomeApp_SelectionMgr.h"
 
-#include "SVTK_Selection.h"
 #include "SALOME_ListIO.hxx"
 #include "SALOME_ListIteratorOfListIO.hxx"
 
+#include "SVTK_Selection.h"
+#include "SVTK_ViewWindow.h"
+
 // QT Includes
 #include <qframe.h>
 #include <qlayout.h>
 // function : SMESHGUI_DeleteGroupDlg()
 // purpose  : Constructor
 //=================================================================================
-SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (QWidget*          theParent,
-                                                  SalomeApp_SelectionMgr* theSelection)
-     : QDialog(theParent, "SMESHGUI_DeleteGroupDlg", false,
-               WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule):
+  QDialog(SMESH::GetDesktop(theModule), 
+         "SMESHGUI_DeleteGroupDlg", 
+         false,
+         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
+  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
+  myViewWindow(SMESH::GetViewWindow(mySMESHGUI)),
+  mySMESHGUI(theModule)
 {
   setCaption(tr("CAPTION"));
 
@@ -85,7 +91,7 @@ SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (QWidget*          theParent,
 
   aDlgLay->setStretchFactor(aMainFrame, 1);
 
-  Init(theSelection);
+  Init();
 }
 
 //=================================================================================
@@ -147,30 +153,24 @@ SMESHGUI_DeleteGroupDlg::~SMESHGUI_DeleteGroupDlg()
 // function : Init()
 // purpose  : Init dialog fields, connect signals and slots, show dialog
 //=================================================================================
-void SMESHGUI_DeleteGroupDlg::Init (SalomeApp_SelectionMgr* theSelection)
+void SMESHGUI_DeleteGroupDlg::Init ()
 {
   myBlockSelection = false;
-  mySelectionMgr = theSelection;
-  SMESHGUI* aSMESHGUI = SMESHGUI::GetSMESHGUI();
-  aSMESHGUI->SetActiveDialogBox((QDialog*)this);
+  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
 
   // selection and SMESHGUI
   connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  connect(aSMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(aSMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
+  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
+  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
 
   int x, y;
-  aSMESHGUI->DefineDlgPosition(this, x, y);
+  mySMESHGUI->DefineDlgPosition(this, x, y);
   this->move(x, y);
   this->show();
 
   // set selection mode
-#ifdef NEW_GUI
-  mySelectionMgr->setSelectionModes(ActorSelection, true);
-#else
-  mySelectionMgr->setSelectionModes(ActorSelection);
-#endif
   mySelectionMgr->installFilter(new SMESH_TypeFilter(GROUP));
+  myViewWindow->SetSelectionMode(ActorSelection);
   onSelectionDone();
 
   return;
@@ -188,7 +188,7 @@ bool SMESHGUI_DeleteGroupDlg::isValid()
     return false;
   }
 
-  return !SMESHGUI::GetSMESHGUI()->isActiveStudyLocked();
+  return !mySMESHGUI->isActiveStudyLocked();
 }
 
 //=================================================================================
@@ -213,7 +213,7 @@ bool SMESHGUI_DeleteGroupDlg::onApply()
   myListGrp.clear();
   mySelectionMgr->clearSelected();
   SMESH::UpdateView();
-  SMESHGUI::GetSMESHGUI()->updateObjBrowser(true);
+  mySMESHGUI->updateObjBrowser(true);
 
   myBlockSelection = false;
   return true;
@@ -235,10 +235,10 @@ void SMESHGUI_DeleteGroupDlg::onOk()
 //=================================================================================
 void SMESHGUI_DeleteGroupDlg::onClose()
 {
-  mySelectionMgr->setSelectionModes(ActorSelection);
+  myViewWindow->SetSelectionMode(ActorSelection);
   disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0);
-  SMESHGUI::GetSMESHGUI()->ResetState();
+  disconnect(mySMESHGUI, 0, this, 0);
+  mySMESHGUI->ResetState();
   mySelectionMgr->clearFilters();
   reject();
 }
@@ -287,13 +287,9 @@ void SMESHGUI_DeleteGroupDlg::onDeactivate()
 //=================================================================================
 void SMESHGUI_DeleteGroupDlg::enterEvent (QEvent*)
 {
-  SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog();
+  mySMESHGUI->EmitSignalDeactivateDialog();
   setEnabled(true);
-#ifdef NEW_GUI
-  mySelectionMgr->setSelectionModes(ActorSelection, true);
-#else
-  mySelectionMgr->setSelectionModes(ActorSelection);
-#endif
+  myViewWindow->SetSelectionMode(ActorSelection);
   mySelectionMgr->installFilter(new SMESH_TypeFilter (GROUP));
 }
 
index 1d86778a7d3366c47db0fabe5ad27fce239507c4..01abc7e4acbbabf2329d144c737ff252877b1467 100644 (file)
 class QCloseEvent;
 class QFrame;
 class QPushButton;
-class SalomeApp_SelectionMgr;
 class QListBox;
 
+class SMESHGUI;
+class SVTK_ViewWindow;
+class SalomeApp_SelectionMgr;
+
 /*!
  *  Class       : SMESHGUI_DeleteGroupDlg
  *  Description : Delete groups and their contents
@@ -49,11 +52,10 @@ class SMESHGUI_DeleteGroupDlg : public QDialog
   Q_OBJECT
 
 public:
-                          SMESHGUI_DeleteGroupDlg (QWidget*,
-                                                  SalomeApp_SelectionMgr*);
+                          SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule);
   virtual                 ~SMESHGUI_DeleteGroupDlg();
 
-  void                    Init (SalomeApp_SelectionMgr*);
+  void                    Init ();
 
 private:
 
@@ -82,6 +84,9 @@ private:
   QPushButton*            myApplyBtn;
   QPushButton*            myCloseBtn;
   QListBox*               myListBox;
+
+  SMESHGUI*               mySMESHGUI;
+  SVTK_ViewWindow*        myViewWindow;
   SalomeApp_SelectionMgr* mySelectionMgr;
 
   QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
index 873c5f68816618332dd27a6699b8e9c064c6c2f9..bf2863b201db94f2dd90e7b37ab2d8584a09e2d5 100755 (executable)
@@ -396,7 +396,7 @@ void SMESHGUI_FilterTable::Table::insertRows (int row, int count)
   if (anEditRow >= 0 && anEditCol >= 0)
     endEdit(anEditRow, anEditCol, true, false);
 
-  QTable::insertRows(row, count);
+  QTable::insertRows( row, count );
 }
 
 //=======================================================================
@@ -427,9 +427,12 @@ QString SMESHGUI_FilterTable::Table::text (int row, int col) const
 // name    : SMESHGUI_FilterTable::SMESHGUI_FilterTable
 // Purpose : Constructor
 //=======================================================================
-SMESHGUI_FilterTable::SMESHGUI_FilterTable (QWidget* parent,
+SMESHGUI_FilterTable::SMESHGUI_FilterTable( SMESHGUI* theModule,
+                                           QWidget* parent,
                                             const int type)
-: QFrame(parent)
+: QFrame(parent),
+  myIsLocked( false ),
+  mySMESHGUI( theModule )
 {
   myEntityType = -1;
   Init(type);
@@ -439,9 +442,12 @@ SMESHGUI_FilterTable::SMESHGUI_FilterTable (QWidget* parent,
 // name    : SMESHGUI_FilterTable::SMESHGUI_FilterTable
 // Purpose : Constructor
 //=======================================================================
-SMESHGUI_FilterTable::SMESHGUI_FilterTable (QWidget* parent,
+SMESHGUI_FilterTable::SMESHGUI_FilterTable( SMESHGUI* theModule,
+                                           QWidget* parent,
                                             const QValueList<int>& types)
-: QFrame(parent)
+: QFrame(parent),
+  myIsLocked( false ),
+  mySMESHGUI( theModule )
 {
   myEntityType = -1;
   Init(types);
@@ -842,7 +848,7 @@ void SMESHGUI_FilterTable::SetCriterion (const int                       theRow,
     myAddWidgets[ anItem ]->SetDouble(AdditionalWidget::Tolerance, theCriterion.Tolerance);
   }
 
-  emit CretarionChanged(theRow, aType);
+  emit CriterionChanged(theRow, aType);
 
 }
 
@@ -1033,7 +1039,8 @@ void SMESHGUI_FilterTable::onClearBtn()
 //=======================================================================
 void SMESHGUI_FilterTable::onCurrentChanged (int theRow, int theCol)
 {
-  updateAdditionalWidget();
+  if( !myIsLocked )
+    updateAdditionalWidget();
   emit CurrentChanged(theRow, theCol);
 }
 
@@ -1087,7 +1094,7 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
 
   updateAdditionalWidget();
 
-  emit CretarionChanged(row, entityType);
+  emit CriterionChanged(row, entityType);
 }
 
 //=======================================================================
@@ -1125,6 +1132,7 @@ void SMESHGUI_FilterTable::addRow (Table* theTable, const int theType, const boo
   int aSelectedRow = getFirstSelectedRow();
   int aCurrCol = theTable->currentColumn();
 
+  myIsLocked = true;
   if (toTheEnd || aSelectedRow == -1)
   {
     theTable->insertRows(theTable->numRows());
@@ -1135,6 +1143,7 @@ void SMESHGUI_FilterTable::addRow (Table* theTable, const int theType, const boo
     theTable->insertRows(aSelectedRow);
     aCurrRow = aSelectedRow;
   }
+  myIsLocked = false;
 
   // Criteria
   theTable->setItem(aCurrRow, 0, getCriterionItem(theTable, theType));
@@ -1490,7 +1499,7 @@ void SMESHGUI_FilterTable::onCopyFromBtn()
 {
   if (myLibDlg == 0)
     myLibDlg = new SMESHGUI_FilterLibraryDlg(
-      this, GetType(), SMESHGUI_FilterLibraryDlg::COPY_FROM);
+      mySMESHGUI, this, GetType(), SMESHGUI_FilterLibraryDlg::COPY_FROM);
   else
     myLibDlg->Init(GetType(), SMESHGUI_FilterLibraryDlg::COPY_FROM);
 
@@ -1512,7 +1521,7 @@ void SMESHGUI_FilterTable::onAddToBtn()
     return;
   if (myLibDlg == 0)
     myLibDlg = new SMESHGUI_FilterLibraryDlg(
-      this, GetType(), SMESHGUI_FilterLibraryDlg::ADD_TO);
+      mySMESHGUI, this, GetType(), SMESHGUI_FilterLibraryDlg::ADD_TO);
   else
     myLibDlg->Init(GetType(), SMESHGUI_FilterLibraryDlg::ADD_TO);
 
@@ -1612,10 +1621,10 @@ SMESHGUI_FilterDlg::SMESHGUI_FilterDlg( SMESHGUI*   theModule,
 : QDialog( SMESH::GetDesktop( theModule ), theName, false,
            WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
      mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
-     myViewWindow( SMESH::GetViewWindow( theModule ) ),
-     mySelector( myViewWindow->GetSelector() )
+     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
 {
+  myViewWindow = SMESH::GetViewWindow( theModule );
+  mySelector = myViewWindow->GetSelector();
   QValueList<int> aTypes;
   aTypes.append(theType);
   construct(aTypes);
@@ -1656,7 +1665,7 @@ QFrame* SMESHGUI_FilterDlg::createMainFrame (QWidget* theParent)
 
   // filter frame
 
-  myTable = new SMESHGUI_FilterTable(aMainFrame, myTypes);
+  myTable = new SMESHGUI_FilterTable( mySMESHGUI, aMainFrame, myTypes );
   myTable->SetLibsEnabled(true);
 
   QFrame* aLine = new QFrame(myTable->GetTableGrp());
@@ -1668,7 +1677,7 @@ QFrame* SMESHGUI_FilterDlg::createMainFrame (QWidget* theParent)
   // other controls
   mySourceGrp = createSourceGroup(aMainFrame);
 
-  connect(myTable, SIGNAL(CretarionChanged(const int, const int)),
+  connect(myTable, SIGNAL(CriterionChanged(const int, const int)),
                     SLOT(onCriterionChanged(const int, const int)));
 
   connect(myTable, SIGNAL(CurrentChanged(int, int)),
@@ -2494,7 +2503,7 @@ void SMESHGUI_FilterDlg::updateSelection()
     if (myTable->GetCriterionType(aRow) == FT_BelongToGeom ||
         myTable->GetCriterionType(aRow) == FT_LyingOnGeom) {
 
-      mySelectionMgr->installFilter(new SMESH_NumberFilter("GEOM",TopAbs_SHAPE,0,allTypes));
+      mySelectionMgr->installFilter(new GEOM_SelectionFilter( aStudy, true ));
 
     } else if (myTable->GetCriterionType(aRow) == FT_BelongToPlane) {
       mySelectionMgr->installFilter(new GEOM_FaceFilter( aStudy, StdSelect_Plane ) );
@@ -2506,7 +2515,7 @@ void SMESHGUI_FilterDlg::updateSelection()
 
   } else {
     if (myIsSelectionChanged) {
-      mySelectionMgr->installFilter(new SMESH_NumberFilter ("This filter deactivates selection",TopAbs_SHAPE,0,allTypes));
+      mySelectionMgr->installFilter( new GEOM_TypeFilter( aStudy, -1 ) ); // This filter deactivates selection
     }
   }
 }
index cbef2c66feb0c72b981450c71843668a82ecbc21..8cb544484085a0b42049c6cf173fb4295309fd4f 100755 (executable)
@@ -81,9 +81,11 @@ class SMESHGUI_FilterTable : public QFrame
   typedef QMap<int, Table*> TableMap;
 
 public:  
-                            SMESHGUI_FilterTable (QWidget* parent, 
+                            SMESHGUI_FilterTable( SMESHGUI*,
+                                                 QWidget* parent, 
                                                   const int type);
-                            SMESHGUI_FilterTable (QWidget* parent, 
+                            SMESHGUI_FilterTable( SMESHGUI*,
+                                                 QWidget* parent, 
                                                   const QValueList<int>& type);
   virtual                   ~SMESHGUI_FilterTable();
 
@@ -136,7 +138,7 @@ signals:
   void                      AddToClicked();
   void                      EntityTypeChanged (const int);
   void                      NeedValidation();
-  void                      CretarionChanged (const int theRow, const int theEntityType);
+  void                      CriterionChanged (const int theRow, const int theEntityType);
   void                      CurrentChanged (int, int);
 
 private slots:
@@ -172,6 +174,7 @@ private:
   const QMap<int, QString>& getSupportedTypes() const;
 
 private:
+  SMESHGUI*                 mySMESHGUI;
 
   QGroupBox*                myTableGrp;
   QGroupBox*                mySwitchTableGrp;
@@ -187,6 +190,7 @@ private:
   QButtonGroup*             myEntityTypeGrp;
   int                       myEntityType;
   int                       myIsValid;
+  bool                      myIsLocked;
 
   SMESHGUI_FilterLibraryDlg* myLibDlg;
 
index e8fffa426b58d3ca126db28b26519f90bd0196c9..18eb314cfa29515cbc83de6ac503492554c34f40 100644 (file)
@@ -79,10 +79,8 @@ SMESHGUI_FilterLibraryDlg::Dialog::~Dialog()
 
 bool SMESHGUI_FilterLibraryDlg::Dialog::acceptData()
 {
-#ifdef NEW_GUI
-  if (mode() != QFileDialogP::AnyFile)
-    return SUIT_FileDlg::acceptData();
-#endif
+//  if (mode() != QFileDialogP::AnyFile)
+//    return SUIT_FileDlg::acceptData();
 
   return true;
 }
@@ -96,12 +94,14 @@ bool SMESHGUI_FilterLibraryDlg::Dialog::acceptData()
 // name    : SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg
 // Purpose : Constructor
 //=======================================================================
-SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (QWidget*               theParent,
+SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
+                                                     QWidget* parent,
                                                       const QValueList<int>& theTypes,
                                                       const int              theMode,
                                                       const char*            theName)
-     : QDialog(theParent, theName, true, WStyle_Customize |
-               WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+     : QDialog( parent, theName, true, WStyle_Customize |
+                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
+     mySMESHGUI( theModule )
 {
   construct(theTypes, theMode);
 }
@@ -110,12 +110,14 @@ SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (QWidget*               the
 // name    : SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg
 // Purpose : Constructor
 //=======================================================================
-SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (QWidget*    theParent,
+SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
+                                                     QWidget* parent,
                                                       const int   theType,
                                                       const int   theMode,
                                                       const char* theName)
-     : QDialog(theParent, theName, true, WStyle_Customize |
-               WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+     : QDialog( parent, theName, true, WStyle_Customize |
+                WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
+     mySMESHGUI( theModule )
 {
   QValueList<int> aTypes;
   aTypes.append(theType);
@@ -192,7 +194,7 @@ QFrame* SMESHGUI_FilterLibraryDlg::createMainFrame (QWidget* theParent)
 
   // table
 
-  myTable = new SMESHGUI_FilterTable(aMainFrame, myTypes);
+  myTable = new SMESHGUI_FilterTable( mySMESHGUI, aMainFrame, myTypes);
   myTable->SetEditable(myMode == EDIT);
   myTable->SetLibsEnabled(false);
 
@@ -312,10 +314,8 @@ void SMESHGUI_FilterLibraryDlg::Init (const QValueList<int>& theTypes,
   updateControlsVisibility();
   setEnabled(true);
 
-  SMESHGUI* aModeler = SMESHGUI::GetSMESHGUI();
-
-  connect(aModeler, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(aModeler, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
+  connect( mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
+  connect( mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
 
   if (myMode == ADD_TO)
   {
@@ -344,7 +344,7 @@ void SMESHGUI_FilterLibraryDlg::Init (const QValueList<int>& theTypes,
   }
 
   int x, y;
-  aModeler->DefineDlgPosition(this, x, y);
+  mySMESHGUI->DefineDlgPosition(this, x, y);
   this->move(x, y);
 
   this->show();
@@ -448,8 +448,8 @@ void SMESHGUI_FilterLibraryDlg::onOk()
 {
   if (onApply())
   {
-    disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0);
-    SMESHGUI::GetSMESHGUI()->ResetState();
+    disconnect( mySMESHGUI, 0, this, 0);
+    mySMESHGUI->ResetState();
     accept();
   }
 }
@@ -460,8 +460,8 @@ void SMESHGUI_FilterLibraryDlg::onOk()
 //=======================================================================
 void SMESHGUI_FilterLibraryDlg::onClose()
 {
-  disconnect(SMESHGUI::GetSMESHGUI(), 0, this, 0);
-  SMESHGUI::GetSMESHGUI()->ResetState();
+  disconnect( mySMESHGUI, 0, this, 0);
+  mySMESHGUI->ResetState();
   reject();
 }
 
index 88b52661c1da6222a647227d6d5f5e6daa252f3b..8fbc6f9981cc6cc7a0d5525442cd43f8c96281a5 100644 (file)
@@ -64,12 +64,14 @@ public:
     
 public:
   
-                              SMESHGUI_FilterLibraryDlg( QWidget*               parent,
+                              SMESHGUI_FilterLibraryDlg( SMESHGUI*,
+                                                        QWidget*,
                                                          const QValueList<int>& types,
                                                          const int              mode,
                                                          const char*            name = 0 );
                                                 
-                              SMESHGUI_FilterLibraryDlg( QWidget*               parent,
+                              SMESHGUI_FilterLibraryDlg( SMESHGUI*,
+                                                        QWidget*,
                                                          const int              type,
                                                          const int              mode,
                                                          const char*            name = 0 );
@@ -141,6 +143,7 @@ private:
   QPushButton*                myDeleteBtn;
   QGroupBox*                  myNameGrp;
   QLineEdit*                  myName;
+  SMESHGUI*                   mySMESHGUI;
 
   QValueList<int>             myTypes;
   int                         myMode;
index f02434220c8ccc8726cb4728fbc2bfccecd4342c..360d004869492e0f332c19b4bdfc0e5f9d02f518 100644 (file)
@@ -26,6 +26,10 @@ namespace SMESH
 {
   SMESH::FilterManager_var GetFilterManager()
   {
-    return SMESHGUI::GetSMESHGen()->CreateFilterManager(); // DumpPython
+    static SMESH::FilterManager_var aFilterManager;
+    if (CORBA::is_nil(aFilterManager)){
+      aFilterManager = SMESHGUI::GetSMESHGen()->CreateFilterManager();
+    }
+    return aFilterManager;
   }
 }
index 5f7b9da9d6ab6ff4fd177efdab650a8b2a62625f..5ec1935cdeebf2f032b04c0842aa089ae04b2db1 100644 (file)
@@ -90,7 +90,8 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
      mySMESHGUI( theModule ),
      mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
      myViewWindow( SMESH::GetViewWindow( theModule ) ),
-     mySelector( myViewWindow->GetSelector() )
+     mySelector( myViewWindow->GetSelector() ),
+     myIsBusy( false )
 {
   if (!name) setName("SMESHGUI_GroupDlg");
   initDialog(true);
@@ -120,7 +121,8 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
      mySMESHGUI( theModule ),
      mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
      myViewWindow( SMESH::GetViewWindow( theModule ) ),
-     mySelector( myViewWindow->GetSelector() )
+     mySelector( myViewWindow->GetSelector() ),
+     myIsBusy( false )
 {
   if (!name) setName("SMESHGUI_GroupDlg");
   initDialog(false);
@@ -396,6 +398,8 @@ SMESHGUI_GroupDlg::~SMESHGUI_GroupDlg()
 //=================================================================================
 void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
 {
+  mySelectionMgr->installFilter(myMeshFilter);
+
   /* init data from current selection */
   myMesh = SMESH::SMESH_Mesh::_duplicate(theMesh);
   myGroup = SMESH::SMESH_Group::_nil();
@@ -403,11 +407,14 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
   myActor = SMESH::FindActorByObject(myMesh);
   SMESH::SetPickable(myActor);
 
-  const SALOME_ListIO& aList = mySelector->StoredIObjects();
-
-  QString aName = aList.First()->getName();
-  myMeshGroupLine->setText(aName) ;
-  myMeshGroupLine->home( false );
+  SALOME_ListIO aList;
+  mySelectionMgr->selectedObjects( aList );
+  if( !aList.IsEmpty() )
+  {
+    QString aName = aList.First()->getName();
+    myMeshGroupLine->setText(aName) ;
+    myMeshGroupLine->home( false );
+  }
 
   myCurrentLineEdit = 0;
 
@@ -675,7 +682,6 @@ void SMESHGUI_GroupDlg::onOK()
     onClose();
 }
 
-static bool busy = false;
 //=================================================================================
 // function : onListSelectionChanged()
 // purpose  : Called when selection in element list is changed
@@ -683,8 +689,8 @@ static bool busy = false;
 void SMESHGUI_GroupDlg::onListSelectionChanged()
 {
   //  MESSAGE("SMESHGUI_GroupDlg::onListSelectionChanged(); myActor = " << myActor);
-  if (busy || !myActor) return;
-  busy = true;
+  if( myIsBusy || !myActor) return;
+    myIsBusy = true;
 
   if (myCurrentLineEdit == 0) {
     mySelectionMgr->clearSelected();
@@ -702,7 +708,7 @@ void SMESHGUI_GroupDlg::onListSelectionChanged()
     mySelectionMgr->setSelectedObjects(aList,false);
     myViewWindow->highlight( myActor->getIO(), true, true );
   }
-  busy = false;
+  myIsBusy = false;
 }
 
 //=================================================================================
@@ -711,11 +717,12 @@ void SMESHGUI_GroupDlg::onListSelectionChanged()
 //=================================================================================
 void SMESHGUI_GroupDlg::onObjectSelectionChanged()
 {
-  if (busy || !isEnabled()) return;
-  busy = true;
-
-  const SALOME_ListIO& aList = mySelector->StoredIObjects();
+  if ( myIsBusy || !isEnabled()) return;
+    myIsBusy = true;
 
+  SALOME_ListIO aList;
+  mySelectionMgr->selectedObjects( aList );
+  
   int aNbSel = aList.Extent();
   myElements->clearSelection();
 
@@ -737,10 +744,10 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
 
       myElements->clear();
 
-      if (aNbSel != 1) {
+      if (aNbSel == 0 ) {
         myGroup = SMESH::SMESH_Group::_nil();
         myMesh = SMESH::SMESH_Mesh::_nil();
-        busy = false;
+        myIsBusy = false;
         return;
       }
       Handle(SALOME_InteractiveObject) IO = aList.First();
@@ -749,7 +756,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
         myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
         if (myMesh->_is_nil())
        {
-         busy = false;
+         myIsBusy = false;
           return;
        }
         myGroup = SMESH::SMESH_Group::_nil();
@@ -770,25 +777,22 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
         SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
         if (aGroup->_is_nil())
        {
-         busy = false;
+         myIsBusy = false;
           return;
        }
-        busy = false;
+        myIsBusy = false;
         myCurrentLineEdit = 0;
         init(aGroup);
-        busy = true;
+        myIsBusy = true;
         mySelectSubMesh->setEnabled(true);
         mySelectGroup->setEnabled(true);
         myGeomGroupBtn->setEnabled(true);
         myGeomGroupLine->setEnabled(true);
       }
       myCurrentLineEdit = 0;
-      busy = false;
+      myIsBusy = false;
       if (!myCreate)
-      {
-        busy = false;
         return;
-      }
 
       if (myTypeId == -1)
         onTypeChanged(0);
@@ -797,13 +801,13 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
         setSelectionMode(myTypeId);
       }
 
-      busy = false;
+      myIsBusy = false;
       return;
 
     } else if (myCurrentLineEdit == myGeomGroupLine) {
-      if (aNbSel != 1) {
+      if (aNbSel == 0) {
         myGeomGroup = GEOM::GEOM_Object::_nil();
-        busy = false;
+        myIsBusy = false;
         return;
       }
 
@@ -813,7 +817,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
       // Check if the object is a geometry group
       if (!testResult || CORBA::is_nil(myGeomGroup)) {
         myGeomGroup = GEOM::GEOM_Object::_nil();
-        busy = false;
+        myIsBusy = false;
         return;
       }
       // Check if group constructed on the same shape as a mesh or on its child
@@ -835,7 +839,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
       _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
       if (!aMeshSO) {
         myGeomGroup = GEOM::GEOM_Object::_nil();
-        busy = false;
+        myIsBusy = false;
         return;
       }
       _PTR(SObject) anObj, aRef;
@@ -859,16 +863,16 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
       }
       if (!isRefOrSubShape) {
         myGeomGroup = GEOM::GEOM_Object::_nil();
-        busy = false;
+        myIsBusy = false;
         return;
       }
     }
 
-    if (aNbSel >= 1) {
-      if (aNbSel > 1) {
-       if (myCurrentLineEdit == mySubMeshLine)
+    if(aNbSel >= 1) {
+      if(aNbSel > 1) {
+       if(myCurrentLineEdit == mySubMeshLine)
          aString = tr("SMESH_SUBMESH_SELECTED").arg(aNbSel);
-       else if (myCurrentLineEdit == myGroupLine || myCurrentLineEdit == myGeomGroupLine)
+       else if(myCurrentLineEdit == myGroupLine || myCurrentLineEdit == myGeomGroupLine)
          aString = tr("SMESH_GROUP_SELECTED").arg(aNbSel);
       } else {
        aString = aList.First()->getName();
@@ -907,7 +911,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
       myActor = SMESH::FindActorByObject(myMesh);
   }
 
-  busy = false;
+  myIsBusy = false;
 }
 
 //=================================================================================
@@ -1070,12 +1074,14 @@ void SMESHGUI_GroupDlg::onFilterAccepted()
 //=================================================================================
 void SMESHGUI_GroupDlg::onAdd()
 {
-  const SALOME_ListIO& aList = mySelector->StoredIObjects();
+  SALOME_ListIO aList;
+  mySelectionMgr->selectedObjects( aList );
+
   int aNbSel = aList.Extent();
 
   if (aNbSel == 0 || !myActor || myMesh->_is_nil()) return;
 
-  busy = true;
+  myIsBusy = true;
 
   SMESH::ElementType aType = SMESH::ALL;
   switch(myTypeId) {
@@ -1086,7 +1092,7 @@ void SMESHGUI_GroupDlg::onAdd()
   }
 
   if (myCurrentLineEdit == 0) {
-    //if (aNbSel != 1) { busy = false; return; }
+    //if (aNbSel != 1) { myIsBusy = false; return; }
     QString aListStr = "";
     int aNbItems = 0;
     if (myTypeId == 0) {
@@ -1109,7 +1115,10 @@ void SMESHGUI_GroupDlg::onAdd()
     }
   } else if (myCurrentLineEdit == mySubMeshLine) {
     //SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
-    const SALOME_ListIO& aList = mySelector->StoredIObjects();
+    
+    SALOME_ListIO aList;
+    mySelectionMgr->selectedObjects( aList );
+
     SALOME_ListIteratorOfListIO anIt (aList);
     for (; anIt.More(); anIt.Next()) {
       SMESH::SMESH_subMesh_var aSubMesh =
@@ -1138,12 +1147,14 @@ void SMESHGUI_GroupDlg::onAdd()
       }
     }
     mySelectSubMesh->setChecked(false);
-    busy = false;
+    myIsBusy = false;
     onListSelectionChanged();
 
   } else if (myCurrentLineEdit == myGroupLine) {
     //SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
-    const SALOME_ListIO& aList = mySelector->StoredIObjects();
+    SALOME_ListIO aList;
+    mySelectionMgr->selectedObjects( aList );
+    
     SALOME_ListIteratorOfListIO anIt (aList);
     for (; anIt.More(); anIt.Next()) {
       SMESH::SMESH_Group_var aGroup =
@@ -1167,7 +1178,7 @@ void SMESHGUI_GroupDlg::onAdd()
       }
     }
     mySelectGroup->setChecked(false);
-    busy = false;
+    myIsBusy = false;
     onListSelectionChanged();
 
   } else if (myCurrentLineEdit == myGeomGroupLine && !CORBA::is_nil(myGeomGroup)) {
@@ -1181,7 +1192,7 @@ void SMESHGUI_GroupDlg::onAdd()
     case 6: aGroupType = SMESH::EDGE; break;
     case 4: aGroupType = SMESH::FACE; break;
     case 2: aGroupType = SMESH::VOLUME; break;
-    default: busy = false; return;
+    default: myIsBusy = false; return;
     }
 
     if (aGroupType == aType) {
@@ -1213,10 +1224,10 @@ void SMESHGUI_GroupDlg::onAdd()
     }
 
     //VSR: mySelectGeomGroup->setChecked(false);
-    busy = false;
+    myIsBusy = false;
     onListSelectionChanged();
   }
-  busy = false;
+  myIsBusy = false;
   //  mySelectionMgr->clearSelected();
   updateButtons();
 }
@@ -1227,7 +1238,7 @@ void SMESHGUI_GroupDlg::onAdd()
 //=================================================================================
 void SMESHGUI_GroupDlg::onRemove()
 {
-  busy = true;
+  myIsBusy = true;
   if (myCurrentLineEdit == 0) {
     for (int i = myElements->count(); i > 0; i--) {
       if (myElements->isSelected(i-1)) {
@@ -1235,10 +1246,12 @@ void SMESHGUI_GroupDlg::onRemove()
       }
     }
   } else {
-    const SALOME_ListIO& aList = mySelector->StoredIObjects();
+    SALOME_ListIO aList;
+    mySelectionMgr->selectedObjects( aList );
+
     int aNbSel = aList.Extent();
 
-    if (aNbSel == 0) { busy = false; return; }
+    if (aNbSel == 0) { myIsBusy = false; return; }
 
     SMESH::ElementType aType = SMESH::ALL;
     switch(myTypeId) {
@@ -1250,7 +1263,9 @@ void SMESHGUI_GroupDlg::onRemove()
 
     if (myCurrentLineEdit == mySubMeshLine) {
       //SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
-      const SALOME_ListIO& aList = mySelector->StoredIObjects();
+      SALOME_ListIO aList;
+      mySelectionMgr->selectedObjects( aList );
+
       SALOME_ListIteratorOfListIO anIt (aList);
       for (; anIt.More(); anIt.Next()) {
        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIt.Value());
@@ -1292,7 +1307,9 @@ void SMESHGUI_GroupDlg::onRemove()
     else if (myCurrentLineEdit == myGroupLine) {
       Standard_Boolean aRes;
       //SALOME_ListIteratorOfListIO anIt (mySelectionMgr->StoredIObjects());
-      const SALOME_ListIO& aList = mySelector->StoredIObjects();
+      SALOME_ListIO aList;
+      mySelectionMgr->selectedObjects( aList );
+
       SALOME_ListIteratorOfListIO anIt (aList);
       for (; anIt.More(); anIt.Next()) {
        SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(anIt.Value());
@@ -1311,7 +1328,7 @@ void SMESHGUI_GroupDlg::onRemove()
       }
     }
   }
-  busy = false;
+  myIsBusy = false;
   updateButtons();
 }
 
@@ -1326,7 +1343,7 @@ void SMESHGUI_GroupDlg::onSort()
   // myElements->update();
   int i, k = myElements->count();
   if (k > 0) {
-    busy = true;
+    myIsBusy = true;
     QStringList aSelected;
     std::vector<int> anArray(k);
     //    QMemArray<int> anArray(k);
@@ -1348,7 +1365,7 @@ void SMESHGUI_GroupDlg::onSort()
       anItem = myElements->findItem(*it, Qt::ExactMatch);
       if (anItem) myElements->setSelected(anItem, true);
     }
-    busy = false;
+    myIsBusy = false;
   }
 }
 
index 797c084cad800e5fa3c32abe6851574c7630d521..c01482e972680b1b2c076e5473112603455090b5 100644 (file)
@@ -161,7 +161,7 @@ private:
 
     SMESHGUI_FilterDlg*           myFilterDlg;
 
-    bool                          myCreate;
+    bool                          myCreate, myIsBusy;
 };
 
 #endif // DIALOGBOX_GROUP_H
index fba4f187f6718e2bb6dc3948a18232e7b27192d8..b719ffeab347965cf466f91cbe7ab57c69b28d55 100644 (file)
@@ -270,7 +270,7 @@ void SMESHGUI_MoveNodesDlg::reset()
 //=======================================================================
 bool SMESHGUI_MoveNodesDlg::onApply()
 {
-  if (SMESHGUI::GetSMESHGUI()->isActiveStudyLocked())
+  if (mySMESHGUI->isActiveStudyLocked())
     return false;
 
   if (!isValid(true))
@@ -323,7 +323,7 @@ void SMESHGUI_MoveNodesDlg::onClose()
 {
   mySelectionMgr->clearSelected();
   SMESH::SetPointRepresentation(false);
-  mySelector->SetSelectionMode(ActorSelection);
+  myViewWindow->SetSelectionMode(ActorSelection);
   disconnect(mySelectionMgr, 0, this, 0);
   disconnect(mySMESHGUI, 0, this, 0);
   mySMESHGUI->ResetState();
@@ -417,7 +417,7 @@ void SMESHGUI_MoveNodesDlg::onDeactivate()
 void SMESHGUI_MoveNodesDlg::enterEvent (QEvent*)
 {
   if (!isEnabled()) {
-    SMESHGUI::GetSMESHGUI()->EmitSignalDeactivateDialog();
+    mySMESHGUI->EmitSignalDeactivateDialog();
 
     // set selection mode
     SMESH::SetPointRepresentation(true);
index a3f0966ff07c7d98f65a89fec57077464f036332..69801bb651cb5085d8b2e7fdd6233523c1078568 100644 (file)
 #include "SUIT_ViewWindow.h"
 #include "SUIT_ViewManager.h"
 #include "SUIT_MessageBox.h"
+#include "SUIT_Desktop.h"
 
 #include "SalomeApp_Study.h"
-#include "SalomeApp_Application.h"
+#include "SalomeApp_SelectionMgr.h"
 
+#include "SVTK_Selector.h"
 #include "SVTK_ViewWindow.h"
 
 #include "SALOME_Actor.h"
 #include "SALOME_ListIO.hxx"
-#include "SVTK_Selection.h"
 
 #include "utilities.h"
 
@@ -113,23 +114,16 @@ namespace SMESH {
   }
 
   class TNodeSimulation {
-    SalomeApp_Application* myApplication;
-    SUIT_ViewWindow* myViewWindow;
-    SVTK_ViewWindow* myVTKViewWindow;
+    SVTK_ViewWindow* myViewWindow;
 
     SALOME_Actor *myPreviewActor;
     vtkDataSetMapper* myMapper;
     vtkPoints* myPoints;
 
   public:
-    TNodeSimulation (SalomeApp_Application* theApplication)
+    TNodeSimulation(SVTK_ViewWindow* theViewWindow):
+      myViewWindow(theViewWindow)
     {
-      myApplication = theApplication;
-      SUIT_ViewManager* mgr = theApplication->activeViewManager();
-      if (!mgr) return;
-      myViewWindow = mgr->getActiveView();
-      myVTKViewWindow = GetVtkViewWindow(myViewWindow);
-
       vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New();
 
       // Create points
@@ -195,7 +189,7 @@ namespace SMESH {
       myPreviewActor->SetProperty(aProp);
       aProp->Delete();
 
-      myVTKViewWindow->AddActor(myPreviewActor);
+      myViewWindow->AddActor(myPreviewActor);
     }
 
     void SetPosition (float x, float y, float z)
@@ -213,9 +207,7 @@ namespace SMESH {
 
     ~TNodeSimulation()
     {
-      if (FindVtkViewWindow(myApplication->activeViewManager(), myViewWindow)) {
-       myVTKViewWindow->RemoveActor(myPreviewActor);
-      }
+      myViewWindow->RemoveActor(myPreviewActor);
       myPreviewActor->Delete();
 
       myMapper->RemoveAllInputs();
@@ -230,17 +222,20 @@ namespace SMESH {
 // class    : SMESHGUI_NodesDlg()
 // purpose  :
 //=================================================================================
-SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (QWidget* parent,
+SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
                                      const char* name,
-                                     SalomeApp_SelectionMgr* Sel,
                                      bool modal,
-                                     WFlags fl)
-  : QDialog(parent, name, modal, WStyle_Customize | WStyle_NormalBorder |
-            WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose)
+                                     WFlags fl): 
+  QDialog(SMESH::GetDesktop(theModule), 
+         name, 
+         modal, 
+         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
+  mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
+  mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
+  myViewWindow(SMESH::GetViewWindow(theModule)),
+  mySMESHGUI(theModule)
 {
-  SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
-    (SUIT_Session::session()->activeApplication());
-  mySimulation = new SMESH::TNodeSimulation (anApp);
+  mySimulation = new SMESH::TNodeSimulation(myViewWindow);
 
   QPixmap image0 (SMESHGUI::resourceMgr()->loadPixmap("SMESH", tr("ICON_DLG_NODE")));
   if (!name)
@@ -333,7 +328,7 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (QWidget* parent,
   SMESHGUI_NodesDlgLayout->addWidget(GroupCoordinates, 1, 0);
 
   /* Initialisation and display */
-  Init(Sel);
+  Init();
 }
 
 //=======================================================================
@@ -349,7 +344,7 @@ SMESHGUI_NodesDlg::~SMESHGUI_NodesDlg()
 // function : Init()
 // purpose  :
 //=================================================================================
-void SMESHGUI_NodesDlg::Init (SalomeApp_SelectionMgr* Sel)
+void SMESHGUI_NodesDlg::Init ()
 {
   /* Get setting of step value from file configuration */
   double step;
@@ -365,9 +360,7 @@ void SMESHGUI_NodesDlg::Init (SalomeApp_SelectionMgr* Sel)
   SpinBox_Y->SetValue(0.0);
   SpinBox_Z->SetValue(0.0);
 
-  mySelectionMgr = Sel;
-  myMeshGUI = SMESHGUI::GetSMESHGUI();
-  myMeshGUI->SetActiveDialogBox((QDialog*)this);
+  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
 
   /* signals and slots connections */
   connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
@@ -379,23 +372,19 @@ void SMESHGUI_NodesDlg::Init (SalomeApp_SelectionMgr* Sel)
   connect(SpinBox_Z, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
 
   connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
-  connect(myMeshGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
+  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
   /* to close dialog if study frame change */
-  connect(myMeshGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
+  connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
 
   /* Move widget on the botton right corner of main widget */
   int x, y;
-  myMeshGUI->DefineDlgPosition(this, x, y);
+  mySMESHGUI->DefineDlgPosition(this, x, y);
   this->move(x, y);
   this->show();
 
   // set selection mode
   SMESH::SetPointRepresentation(true);
-#ifdef NEW_GUI
-  mySelectionMgr->setSelectionModes(NodeSelection, true);
-#else
-  mySelectionMgr->setSelectionModes(NodeSelection);
-#endif
+  myViewWindow->SetSelectionMode(NodeSelection);
 
   SelectionIntoArgument();
 }
@@ -431,7 +420,7 @@ void SMESHGUI_NodesDlg::ClickOnOk()
 //=================================================================================
 bool SMESHGUI_NodesDlg::ClickOnApply()
 {
-  if (myMeshGUI->isActiveStudyLocked())
+  if (mySMESHGUI->isActiveStudyLocked())
     return false;
 
   if (myMesh->_is_nil()) {
@@ -460,14 +449,9 @@ bool SMESHGUI_NodesDlg::ClickOnApply()
           if (anActor->hasIO()) {
             if (SMESH_MeshObj *aMeshObj = dynamic_cast<SMESH_MeshObj*>(anActor->GetObject().get())) {
               if (myMesh->_is_equivalent(aMeshObj->GetMeshServer())) {
-#ifdef NEW_GUI
-                mySelectionMgr->clearSelected();
-                mySelectionMgr->AddIObject(anActor->getIO(), false);
-#else
                 aList.Clear();
                 aList.Append(anActor->getIO());
                 mySelectionMgr->setSelectedObjects(aList, false);
-#endif
                 break;
               }
             }
@@ -485,18 +469,14 @@ bool SMESHGUI_NodesDlg::ClickOnApply()
 //=================================================================================
 void SMESHGUI_NodesDlg::ClickOnCancel()
 {
-  MESSAGE("SMESHGUI_NodesDlg::ClickOnCancel() 1");
   disconnect(mySelectionMgr, 0, this, 0);
-  mySelectionMgr->clearSelected();
-  mySelectionMgr->setSelectionModes(ActorSelection);
+  myViewWindow->SetSelectionMode(ActorSelection);
 
-  MESSAGE("SMESHGUI_NodesDlg::ClickOnCancel() 2");
   mySimulation->SetVisibility(false);
   SMESH::SetPointRepresentation(false);
-  myMeshGUI->ResetState();
+  mySMESHGUI->ResetState();
 
   reject();
-  MESSAGE("SMESHGUI_NodesDlg::ClickOnCancel() 3");
 }
 
 //=================================================================================
@@ -511,15 +491,14 @@ void SMESHGUI_NodesDlg::SelectionIntoArgument()
   mySimulation->SetVisibility(false);
   SMESH::SetPointRepresentation(true);
 
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList);
+  const SALOME_ListIO& aList = mySelector->StoredIObjects();
   if (aList.Extent() == 1) {
     Handle(SALOME_InteractiveObject) anIO = aList.First();
     if (anIO->hasEntry()) {
       myMesh = SMESH::GetMeshByIO(anIO);
       if (myMesh->_is_nil()) return;
       QString aText;
-      if (SMESH::GetNameOfSelectedNodes(mySelectionMgr, aText) == 1) {
+      if (SMESH::GetNameOfSelectedNodes(mySelector,anIO,aText) == 1) {
        if (SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh.in())) {
          if (SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh()) {
            if (const SMDS_MeshNode* aNode = aMesh->FindNode(aText.toInt())) {
@@ -577,8 +556,8 @@ void SMESHGUI_NodesDlg::DeactivateActiveDialog()
     GroupCoordinates->setEnabled(false);
     GroupButtons->setEnabled(false);
     mySimulation->SetVisibility(false);
-    myMeshGUI->ResetState();
-    myMeshGUI->SetActiveDialogBox(0);
+    mySMESHGUI->ResetState();
+    mySMESHGUI->SetActiveDialogBox(0);
   }
 }
 
@@ -588,17 +567,13 @@ void SMESHGUI_NodesDlg::DeactivateActiveDialog()
 //=================================================================================
 void SMESHGUI_NodesDlg::ActivateThisDialog()
 {
-  myMeshGUI->EmitSignalDeactivateDialog();
+  mySMESHGUI->EmitSignalDeactivateDialog();
   GroupConstructors->setEnabled(true);
   GroupCoordinates->setEnabled(true);
   GroupButtons->setEnabled(true);
 
   SMESH::SetPointRepresentation(true);
-#ifdef NEW_GUI
-  mySelectionMgr->setSelectionModes(NodeSelection, true);
-#else
-  mySelectionMgr->setSelectionModes(NodeSelection);
-#endif
+  myViewWindow->SetSelectionMode(NodeSelection);
 
   SelectionIntoArgument();
 }
index 50e84b15526ab3741244739fcce97d9dcbf5e38d..0a64f964f2df3b1af9200714beb291fdea2c26de 100644 (file)
@@ -29,8 +29,6 @@
 #ifndef DIALOGBOX_NODES_H
 #define DIALOGBOX_NODES_H
 
-#include "SalomeApp_SelectionMgr.h"
-
 #include <qvariant.h>
 #include <qdialog.h>
 
@@ -44,8 +42,12 @@ class QLabel;
 class QLineEdit;
 class QPushButton;
 class QRadioButton;
+
 class SMESHGUI;
+class SVTK_Selector;
+class SVTK_ViewWindow;
 class SMESHGUI_SpinBox;
+class SalomeApp_SelectionMgr;
 
 namespace SMESH{
   struct TNodeSimulation;
@@ -64,22 +66,23 @@ class SMESHGUI_NodesDlg : public QDialog
     Q_OBJECT
 
 public:
-    SMESHGUI_NodesDlg (QWidget* parent = 0, const char* name = 0,
-                      SalomeApp_SelectionMgr* Sel = 0,
+    SMESHGUI_NodesDlg (SMESHGUI* theModule, 
+                      const char* name = 0,
                       bool modal = FALSE,
                       WFlags fl = 0);
 
     ~SMESHGUI_NodesDlg();
 
 private:
-
     SalomeApp_SelectionMgr* mySelectionMgr;
-    SMESHGUI*               myMeshGUI;
+    SVTK_ViewWindow*              myViewWindow;
+    SVTK_Selector*                mySelector;
+    SMESHGUI*               mySMESHGUI;
 
     SMESH::SMESH_Mesh_var   myMesh;
     SMESH::TNodeSimulation* mySimulation;
 
-    void Init (SalomeApp_SelectionMgr*);
+    void Init ();
     void enterEvent(QEvent* e);
     void closeEvent(QCloseEvent*);
     void hideEvent (QHideEvent *);                 /* ESC key */
index 73f961bea2a502751e214d4508c8528037e4efcf..eb48d8144df29a323679f849edac57a7a6633341 100644 (file)
 //function : SMESHGUI_Selection
 //purpose  : 
 //=======================================================================
+SMESHGUI_Selection::SMESHGUI_Selection()
+: SalomeApp_Selection()
+{
+}
+
+//=======================================================================
+//function : ~SMESHGUI_Selection
+//purpose  : 
+//=======================================================================
+SMESHGUI_Selection::~SMESHGUI_Selection()
+{
+}
 
-SMESHGUI_Selection::SMESHGUI_Selection( const QString&          client,
-                                        SalomeApp_SelectionMgr* mgr )
+//=======================================================================
+//function : init
+//purpose  : 
+//=======================================================================
+void SMESHGUI_Selection::init( const QString& client, SalomeApp_SelectionMgr* mgr )
 {
-  myPopupClient = client;
-  
-  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
-    (SUIT_Session::session()->activeApplication()->activeStudy());
+  SalomeApp_Selection::init( client, mgr );
 
-  if( mgr && appStudy )
+  if( mgr && study() )
   {
-    _PTR(Study) study = appStudy->studyDS();
+    _PTR(Study) aStudy = study()->studyDS();
 
     SUIT_DataOwnerPtrList sel;
     mgr->selected( sel, client );
@@ -47,36 +59,21 @@ SMESHGUI_Selection::SMESHGUI_Selection( const QString&          client,
       SUIT_DataOwner* owner = ( SUIT_DataOwner* )( (*anIt ).get() );
       SalomeApp_DataOwner* sowner = dynamic_cast<SalomeApp_DataOwner*>( owner );
       if( sowner )
-        myTypes.append( typeName( type( sowner, study ) ) );
+        myTypes.append( typeName( type( sowner, aStudy ) ) );
       else
         myTypes.append( "Unknown" );
     }
   }
 }
 
-SMESHGUI_Selection::~SMESHGUI_Selection()
-{
-}
-
-//=======================================================================
-//function : count
-//purpose  : 
-//=======================================================================
-
-int SMESHGUI_Selection::count() const
-{
-  return myTypes.count();
-}
-
 //=======================================================================
 //function : param
 //purpose  : 
 //=======================================================================
-
 QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
 {
   QtxValue val;
-  if      ( p=="client" )        val = QtxValue( myPopupClient );
+       if ( p=="client" )        val = QtxValue( globalParam( p ) );
   else if ( p=="type" )          val = QtxValue( myTypes[ind] );
   else if ( p=="elemTypes" )     val = QtxValue( elemTypes( ind ) );
   else if ( p=="numberOfNodes" ) val = QtxValue( numberOfNodes( ind ) );
@@ -89,9 +86,9 @@ QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
   else if ( p=="hasReference" )  val = QtxValue( hasReference( ind ) );
   else if ( p=="isVisible" )     val = QtxValue( isVisible( ind ) );
 
-  printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
-  if ( val.type() == QVariant::List )
-    cout << "size: " << val.toList().count() << endl;
+//   printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
+//   if ( val.type() == QVariant::List )
+//     cout << "size: " << val.toList().count() << endl;
   return val;
 }
 
index 20e13f9bb9390adc49c218f07bce877a1637971b..7137ebaef333b72e8adc07c0cac80f43688e9e69 100644 (file)
@@ -29,8 +29,7 @@
 #ifndef SMESHGUI_SELECTION_HeaderFile
 #define SMESHGUI_SELECTION_HeaderFile
 
-#include <QtxPopupMgr.h>
-
+#include "SalomeApp_Selection.h"
 #include "SALOMEDSClient_definitions.hxx"
 #include "SUIT_DataOwner.h"
 
@@ -39,16 +38,15 @@ class SALOMEDSClient_Study;
 class SalomeApp_DataOwner;
 class SMESH_Actor;
 
-class SMESHGUI_Selection : public QtxPopupMgr::Selection
+class SMESHGUI_Selection : public SalomeApp_Selection
 {
 public:
-  SMESHGUI_Selection( const QString&, SalomeApp_SelectionMgr* );
+  SMESHGUI_Selection();
   virtual ~SMESHGUI_Selection();
 
+  virtual void     init( const QString&, SalomeApp_SelectionMgr* );
   virtual QtxValue param( const int , const QString& paramName ) const;
 
-  virtual int count() const;
-
   // got from object, not from actor
   virtual int numberOfNodes( int ind ) const;
   virtual QVariant isComputable( int ind ) const;
@@ -69,7 +67,6 @@ public:
   static QString   typeName( const int type);
 
 private:
-  QString               myPopupClient;
   QStringList           myTypes;
   SUIT_DataOwnerPtrList myDataOwners;
 };