Salome HOME
improvement to call destructor of SelectFiled and SelectParams classes
authorsecher <secher>
Wed, 24 Jan 2007 15:24:50 +0000 (15:24 +0000)
committersecher <secher>
Wed, 24 Jan 2007 15:24:50 +0000 (15:24 +0000)
src/FILTERGUI/FILTERGUI_Utils.cxx [new file with mode: 0644]
src/FILTERGUI/FILTERGUI_Utils.h [new file with mode: 0644]
src/FILTERGUI/FilterGUI.cxx
src/FILTERGUI/Makefile.in
src/FILTERGUI/SelectField.cxx
src/FILTERGUI/SelectField.h
src/FILTERGUI/SelectParams.cxx
src/FILTERGUI/SelectParams.h

diff --git a/src/FILTERGUI/FILTERGUI_Utils.cxx b/src/FILTERGUI/FILTERGUI_Utils.cxx
new file mode 100644 (file)
index 0000000..246b282
--- /dev/null
@@ -0,0 +1,249 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+
+#include <qstring.h>
+
+#include "FILTERGUI_Utils.h"
+
+#include "OB_Browser.h"
+
+#include "SUIT_Desktop.h"
+#include "SUIT_Application.h"
+#include "SUIT_Session.h"
+
+#include "LightApp_SelectionMgr.h"
+#include "SalomeApp_Application.h"
+#include "SalomeApp_Module.h"
+#include "SalomeApp_Study.h"
+
+#include "SALOME_ListIO.hxx"
+
+#include "SALOMEconfig.h"
+// #include CORBA_CLIENT_HEADER(GEOM_Gen)
+
+#include "utilities.h"
+
+//using namespace std;
+
+namespace FILTER{
+
+  SUIT_Desktop*
+  GetDesktop(const CAM_Module* theModule)
+  {
+    return theModule->application()->desktop();
+  }
+
+  LightApp_SelectionMgr*
+  GetSelectionMgr(const SalomeApp_Module* theModule)
+  {
+    return theModule->getApp()->selectionMgr();
+  }
+
+  SUIT_ResourceMgr*
+  GetResourceMgr( const SalomeApp_Module* )
+  {
+    return SUIT_Session::session()->resourceMgr();
+  }
+
+  _PTR(Study)
+  GetCStudy(const SalomeApp_Study* theStudy)
+  {
+    return theStudy->studyDS();
+  }
+
+  CORBA::Object_var 
+  DataOwnerToObject(const LightApp_DataOwnerPtr& theOwner)
+  {
+    CORBA::Object_var anObj;
+    if(theOwner){
+      const Handle(SALOME_InteractiveObject)& anIO = theOwner->IO();
+      if(!anIO.IsNull()){
+       if(anIO->hasEntry()){
+         _PTR(Study) aStudy = GetActiveStudyDocument();
+         _PTR(SObject) aSObj = aStudy->FindObjectID(anIO->getEntry());
+         anObj = SObjectToObject(aSObj,aStudy);
+       }
+      }
+    }
+    return anObj;
+  }
+
+
+  SUIT_Study* GetActiveStudy()
+  {
+    SUIT_Application* app = SUIT_Session::session()->activeApplication();
+    if (app)
+      return app->activeStudy();
+    else
+      return NULL;
+  }
+
+  SUIT_ViewWindow* GetActiveWindow()
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      (SUIT_Session::session()->activeApplication());
+    if (app && app->desktop() )
+      return app->desktop()->activeWindow();
+    else
+      return NULL;
+  }
+
+  _PTR(Study) GetActiveStudyDocument()
+  {
+    SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>(GetActiveStudy());
+    if (aStudy)
+      return aStudy->studyDS();
+    else
+      return _PTR(Study)();
+  }
+
+  _PTR(SObject) FindSObject (CORBA::Object_ptr theObject)
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      (SUIT_Session::session()->activeApplication());
+    if (app && !CORBA::is_nil(theObject)) {
+      if(_PTR(Study) aStudy = GetActiveStudyDocument()){
+       CORBA::String_var anIOR = app->orb()->object_to_string(theObject);
+       if (strcmp(anIOR.in(), "") != 0)
+         return aStudy->FindObjectIOR(anIOR.in());
+      }
+    }
+    return _PTR(SObject)();
+  }
+
+  void SetName (_PTR(SObject) theSObject, const char* theName)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    if (aStudy->GetProperties()->IsLocked())
+      return;
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(GenericAttribute) anAttr =
+      aBuilder->FindOrCreateAttribute(theSObject, "AttributeName");
+    _PTR(AttributeName) aName = anAttr;
+    if (aName)
+      aName->SetValue(theName);
+  }
+
+  void SetValue (_PTR(SObject) theSObject, const char* theValue)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    if (aStudy->GetProperties()->IsLocked())
+      return;
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(GenericAttribute) anAttr =
+      aBuilder->FindOrCreateAttribute(theSObject, "AttributeComment");
+    _PTR(AttributeComment) aComment = anAttr;
+    if (aComment)
+      aComment->SetValue(theValue);
+  }
+  
+  void setFileName (_PTR(SObject) theSObject, const char* theValue)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    if (aStudy->GetProperties()->IsLocked())
+      return;
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(GenericAttribute) anAttr =
+      aBuilder->FindOrCreateAttribute(theSObject, "AttributeExternalFileDef");
+    _PTR(AttributeExternalFileDef) aFileName = anAttr;
+    if (aFileName)
+      aFileName->SetValue(theValue);
+  }
+  
+  void setFileType (_PTR(SObject) theSObject, const char* theValue)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    if (aStudy->GetProperties()->IsLocked())
+      return;
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(GenericAttribute) anAttr =
+      aBuilder->FindOrCreateAttribute(theSObject, "AttributeFileType");
+    _PTR(AttributeFileType) aFileType = anAttr;
+    if (aFileType)
+      aFileType->SetValue(theValue);
+  }
+
+  CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
+                                     _PTR(Study)   theStudy)
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      (SUIT_Session::session()->activeApplication());
+    if (theSObject) {
+      _PTR(GenericAttribute) anAttr;
+      if (theSObject->FindAttribute(anAttr, "AttributeIOR")) {
+       _PTR(AttributeIOR) anIOR = anAttr;
+       CORBA::String_var aVal = anIOR->Value().c_str();
+       return app->orb()->string_to_object(aVal);
+      }
+    }
+    return CORBA::Object::_nil();
+  }
+
+  CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    return SObjectToObject(theSObject,aStudy);
+  }
+
+  CORBA::Object_var IObjectToObject (const Handle(SALOME_InteractiveObject)& theIO)
+  {
+    if (!theIO.IsNull()) {
+      if (theIO->hasEntry()) {
+       _PTR(Study) aStudy = GetActiveStudyDocument();
+       _PTR(SObject) anObj = aStudy->FindObjectID(theIO->getEntry());
+       return SObjectToObject(anObj,aStudy);
+      }
+    }
+    return CORBA::Object::_nil();
+  }
+
+  CORBA::Object_var IORToObject (const char* theIOR)
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      (SUIT_Session::session()->activeApplication());
+    return app->orb()->string_to_object(theIOR);
+  }
+
+  int GetNameOfSelectedIObjects(LightApp_SelectionMgr* theMgr, QString& theName)
+  {
+    if (!theMgr)
+      return 0;
+
+    SALOME_ListIO selected;
+    theMgr->selectedObjects(selected);
+    int aNbSel = selected.Extent();
+    if (aNbSel == 1) {
+      Handle(SALOME_InteractiveObject) anIObject = selected.First();
+      theName = anIObject->getName();
+    } else {
+      theName = QObject::tr("FILTER_OBJECTS_SELECTED").arg(aNbSel);
+    }
+    return aNbSel;
+  }
+
+//  void UpdateObjBrowser (bool)
+//  {
+//    //FILTERGUI::activeStudy()->updateObjBrowser(true);
+//    //SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
+//    //  (SUIT_Session::session()->activeApplication());
+//    //if (anApp) anApp->objectBrowser()->updateTree();
+//    FILTERGUI::GetSMESHGUI()->updateObjBrowser();
+//  }
+}
diff --git a/src/FILTERGUI/FILTERGUI_Utils.h b/src/FILTERGUI/FILTERGUI_Utils.h
new file mode 100644 (file)
index 0000000..076256f
--- /dev/null
@@ -0,0 +1,128 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+#ifndef FILTERGUI_Utils_HeaderFile
+#define FILTERGUI_Utils_HeaderFile
+
+#include <CORBA.h>
+
+#include "SALOMEDSClient_definitions.hxx"
+#include "SALOME_InteractiveObject.hxx"
+#include "LightApp_DataOwner.h"
+
+class QString;
+
+class SUIT_ViewWindow;
+class SUIT_Desktop;
+class SUIT_Study;
+class SUIT_ResourceMgr;
+
+class CAM_Module;
+
+class SALOMEDSClient_Study;
+class SALOMEDSClient_SObject;
+
+class SalomeApp_Study;
+class SalomeApp_Module;
+class LightApp_SelectionMgr;
+
+namespace FILTER {
+
+  SUIT_Desktop*
+  GetDesktop(const CAM_Module* theModule);
+
+  LightApp_SelectionMgr*
+  GetSelectionMgr(const SalomeApp_Module* theModule);
+
+  SalomeApp_Study*
+  GetAppStudy(const CAM_Module* theModule);
+
+  SUIT_ResourceMgr*
+  GetResourceMgr( const SalomeApp_Module* );
+  
+  _PTR(Study)
+  GetCStudy(const SalomeApp_Study* theStudy);
+
+  CORBA::Object_var DataOwnerToObject(const LightApp_DataOwnerPtr& theOwner);
+
+  template<class TInterface> typename TInterface::_var_type
+    DataOwnerToInterface(const LightApp_DataOwnerPtr& theDataOwner)
+    {
+      CORBA::Object_var anObj = DataOwnerToObject(theDataOwner);
+      if(!CORBA::is_nil(anObj))
+       return TInterface::_narrow(anObj);
+      return TInterface::_nil();
+    }
+
+
+  SUIT_Study* GetActiveStudy();
+
+  SUIT_ViewWindow* GetActiveWindow();
+
+  _PTR(Study) GetActiveStudyDocument();
+
+  _PTR(SObject) FindSObject(CORBA::Object_ptr theObject);
+
+  void SetName  (_PTR(SObject) theSObject, const char* theName);
+  void SetValue (_PTR(SObject) theSObject, const char* theValue);
+  void setFileType (_PTR(SObject) theSObject, const char* theValue);
+  void setFileName (_PTR(SObject) theSObject, const char* theValue);
+
+  CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
+                                    _PTR(Study) theStudy);
+
+  CORBA::Object_var SObjectToObject(_PTR(SObject) theSObject);
+
+  template<class TInterface> typename TInterface::_var_type
+    SObjectToInterface(_PTR(SObject) theSObject)
+    {
+      CORBA::Object_var anObj = SObjectToObject(theSObject);
+      if(!CORBA::is_nil(anObj))
+       return TInterface::_narrow(anObj);
+      return TInterface::_nil();
+    }
+
+  CORBA::Object_var IObjectToObject(const Handle(SALOME_InteractiveObject)& theIO);
+
+  template<class TInterface> typename TInterface::_var_type
+    IObjectToInterface(const Handle(SALOME_InteractiveObject)& theIO)
+    {
+      CORBA::Object_var anObj = IObjectToObject(theIO);
+      if(!CORBA::is_nil(anObj))
+       return TInterface::_narrow(anObj);
+      return TInterface::_nil();
+    }
+
+  CORBA::Object_var IORToObject(const char* theIOR);
+
+  template<class TInterface> typename TInterface::_var_type
+    IORToInterface(const char* theIOR)
+    {
+      CORBA::Object_var anObj = IORToObject(theIOR);
+      if(!CORBA::is_nil(anObj))
+       return TInterface::_narrow(anObj);
+      return TInterface::_nil();
+    }
+
+  int GetNameOfSelectedIObjects (LightApp_SelectionMgr*, QString& theName);
+
+//  void UpdateObjBrowser (bool);
+}
+
+#endif
index d78565512a04146bbc9255be49d83657d38829e7..186b6e5ade96b699c934f409ac834d6b282b5b91 100644 (file)
@@ -281,9 +281,7 @@ bool FilterGUI::OnGUIEvent (int theCommandID)
        MESSAGE("command " << theCommandID << " activated");
 
        try {
-         SelectParams *filter = new SelectParams(_sel);
-         QFrame *fr = filter->buildFrame();
-         fr->show();
+         SelectParams *filter = new SelectParams(this,_sel);
        }
        catch ( SALOME_Exception& S_ex ) {
        }
@@ -300,16 +298,8 @@ bool FilterGUI::OnGUIEvent (int theCommandID)
                                        tr("FILTER_MEN_IMPORT"),
                                        true);
        if (!file.isEmpty() )
-         {
-           if(_sel) delete _sel;
-           _sel = new SelectField(file);
-           QFrame *fr = _sel->buildFrame();
-           fr->show();
-         }
-       else{
-         if(_sel) delete _sel;
-         _sel = NULL;
-       }
+         _sel = new SelectField(this,file);
+
         break;
       }
     }
index c795c9807fd11073af46625302809175b7efc897..7bada7fe70c77f1845e13bce3950ebcf32d9ea54 100644 (file)
@@ -45,8 +45,8 @@ PO_FILES = \
 
 # Libraries targets
 LIB = libFILTER.la
-LIB_SRC = FilterGUI.cxx FilterGUI_Selection.cxx SelectParams.cxx SelectField.cxx
-LIB_MOC = FilterGUI.h SelectParams.h SelectField.h
+LIB_SRC = FilterGUI.cxx FilterGUI_Selection.cxx SelectParams.cxx SelectField.cxx FILTERGUI_Utils.cxx
+LIB_MOC = FilterGUI.h SelectParams.h SelectField.h FILTERGUI_Utils.h
 
 LIB_CLIENT_IDL = SALOMEDS.idl SALOME_Exception.idl SALOME_Component.idl \
                  FILTER_Gen.idl \
index 450df1c5817d3764ae97ddc88b1e6325f95beff7..b507a61a2dbea5815b431bf7d9340f8f5fec7772 100644 (file)
 #include <qslider.h>
 #include <qlabel.h>
 
-SelectField::SelectField(const QString& file)
-  : _file(file),
+SelectField::SelectField(FilterGUI* theModule,const QString& file, 
+                        const char* name,
+                        bool modal, WFlags fl)
+  : QDialog(FILTER::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
+    myFilterGUI( theModule ),
+    _file(file),
     _mesh(0),
     _field(0),
     _ts(0),
@@ -35,15 +39,6 @@ SelectField::SelectField(const QString& file)
     _myLab( 0 ),
     _mySlider( 0 ),
   _fr( 0 )
-{
-}
-
-SelectField::~SelectField()
-{
-  cout << "destructor called" << endl;
-}
-
-QFrame* SelectField::buildFrame()
 {
   QListViewItem *element;
 
@@ -56,11 +51,9 @@ QFrame* SelectField::buildFrame()
   deque<string> fieldsNames = _med->getFieldNames();
   int numberOfFields = fieldsNames.size();
 
-  QFrame* _fr = new QFrame( 0, "myframe" );
-
-  QGridLayout* _lay = new QGridLayout( _fr, 1, 1 );
+  QGridLayout* _lay = new QGridLayout( this, 1, 1 );
 
-  QGroupBox* _GroupC1 = new QGroupBox( _fr, "GroupC1" );
+  QGroupBox* _GroupC1 = new QGroupBox( this, "GroupC1" );
   _lay->addWidget( _GroupC1,0,0 );
 
   MESSAGE(basename(_file));
@@ -122,7 +115,14 @@ QFrame* SelectField::buildFrame()
   connect( _myList, SIGNAL(clicked(QListViewItem *)), this, SLOT(fieldSelected(QListViewItem *)));
   connect( _mySlider, SIGNAL(sliderReleased()), this, SLOT(tsSelected()));
 
-  return _fr;
+  this->show(); /* displays Dialog */
+}
+
+SelectField::~SelectField()
+{
+  // no need to delete child widgets, Qt does it all for us
+  cout << "SelectField: destructor called" << endl;
+  delete _med;
 }
 
 void SelectField::fieldSelected(QListViewItem *lvi)
index 2b6ffa7c20707ad3d3a4c4e10012eaa1b4072e16..236ba87ce76a53d0a3924ae5e68fac77ecbeffe2 100644 (file)
 
 #include "utilities.h"
 #include "MEDMEM_Med.hxx"
+#include "SalomeApp_Application.h"
 #include <SalomeApp_Module.h>
 #include <SUIT_Desktop.h>
+#include <qdialog.h>
+#include "FilterGUI.h"
+#include "FILTERGUI_Utils.h"
 
 #include <SALOMEconfig.h>
 class QListView;
@@ -35,20 +39,24 @@ class QGridLayout;
 class QGroupBox;
 class QLabel;
 
-class SelectField: public QObject
+class SelectField: public QDialog
 {
   Q_OBJECT
 
 public:
-  SelectField(const QString& file);
+  SelectField(FilterGUI*,
+             const QString& file,
+             const char* name = 0,
+             bool modal = FALSE,
+             WFlags fl = 0);
   virtual ~SelectField();
 
-  virtual QFrame*  buildFrame();
   QString getFile() { return _file; }
   QString getMesh() { return _mesh; }
   QString getField() { return _field; }
   int getTimeStep() { return _ts; }
   ::MEDMEM::MED * getMED() { return _med; }
+  FilterGUI* myFilterGUI;              /* Current FilterGUI object */
 
 protected:
 
index 11fbfe90fb90905a9acf32dfb155ec8ad4ce9032..0f8a1e0d0921b1ac4b1a7cf193f66012f810f4bd 100644 (file)
 #include <qpushbutton.h>
 #include <qfiledialog.h>
 
-SelectParams::SelectParams(SelectField *sel)
-  : _size(128),
+SelectParams::SelectParams(FilterGUI* theModule,SelectField *sel,
+                          const char* name,
+                          bool modal, WFlags fl)
+  : QDialog(FILTER::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),  _size(128),
   _myExpr( 0 ),
   _myFunc( 0 ),
   _myFieldB( 0 ),
@@ -69,6 +71,9 @@ SelectParams::SelectParams(SelectField *sel)
   _y = new double[_size];
 
   if(sel){
+    // read reference field values
+    ::MEDMEM::MED *med = sel->getMED();
+
     // Get reference field and time step
     _inputFile = sel->getFile();
     _inputMesh = sel->getMesh();
@@ -80,8 +85,6 @@ SelectParams::SelectParams(SelectField *sel)
       throw SALOME_Exception("Salome Exception");
     }
 
-    // read reference field values
-    ::MEDMEM::MED *med = sel->getMED();
     deque<DT_IT_> myIteration = med->getFieldIteration (_inputField);
     MEDMEM::FIELD_* field = med->getField(_inputField,myIteration[_inputTS].dt,myIteration[_inputTS].it);
     if (dynamic_cast<MEDMEM::FIELD<double>*>(field)){
@@ -91,7 +94,8 @@ SelectParams::SelectParams(SelectField *sel)
     else{
       _myIField = new MEDMEM::FIELD<int>(MEDMEM::MED_DRIVER,_inputFile,_inputField,myIteration[_inputTS].dt,myIteration[_inputTS].it);
       _myDField = NULL;
-    }                  
+    }
+    buildFrame();
   }
   // if no reference field selection: throw exception
   else{
@@ -103,42 +107,19 @@ SelectParams::SelectParams(SelectField *sel)
 
 SelectParams::~SelectParams()
 {
-  cout << "destructor called" << endl;
+  cout << "SelectParams: destructor called" << endl;
   delete _x;
   delete _y;
   if(_myIField) delete _myIField;
   if(_myDField) delete _myDField;
-  delete _myExpr;
-  delete _myFunc;
-  delete _myFieldB;
-  delete _myLinear;
-  delete _myHisto;
-  delete _myNbThresh;
-  delete _myCutNeg;
-  delete _myOneThresh;
-  delete _myTwoThresh;
-  delete _myArea;
-  delete _myVThresh;
-  delete _myOutFile;
-  delete _myOFB;
-  delete _myProc;
-  delete _myFScale;
-  delete _myGroupLayout;
-  delete _myGroupLayout2;
-  delete _myPlot;
-  delete _GroupC1;
-  delete _GroupC2;
-  delete _lay;
-  delete _fr;
 }
 
-QFrame* SelectParams::buildFrame()
+void SelectParams::buildFrame()
 {
   // build widgets for select filtering parameters
-  QFrame* _fr = new QFrame( 0, "myframe" );
-  QGridLayout* _lay = new QGridLayout( _fr, 1, 2 );
+  QGridLayout* _lay = new QGridLayout( this, 1, 2 );
 
-  QGroupBox* _GroupC1 = new QGroupBox( _fr, "GroupC1" );
+  QGroupBox* _GroupC1 = new QGroupBox( this, "GroupC1" );
   _lay->addWidget( _GroupC1,0,0 );
 
   _GroupC1->setTitle( tr( "FILTER_PARAMS"  ) );
@@ -281,7 +262,7 @@ QFrame* SelectParams::buildFrame()
   _myProc->setDisabled(true);
   row++;
 
-  _GroupC2 = new QGroupBox( _fr, "GroupC2" );
+  _GroupC2 = new QGroupBox( this, "GroupC2" );
   _lay->addWidget( _GroupC2,0,1 );
 
   _GroupC2->setTitle( tr( "FILTER_HISTO" ) );
@@ -324,7 +305,7 @@ QFrame* SelectParams::buildFrame()
   connect( _myOFB, SIGNAL(clicked()), this, SLOT(getOutFileName()));
   connect( _myProc, SIGNAL(clicked()), this, SLOT(process()));
 
-  return _fr;
+  this->show();  /* displays Dialog */
 }
 
 void SelectParams::scaleSelected()
index b5aa01c54fa20b83f530cf6844e4f50e997377a1..6ac7ba529b79e3b6ea55242b7bc036f3486d32f7 100644 (file)
@@ -29,6 +29,7 @@
 #include <vector>
 #include <SalomeApp_Module.h>
 #include <SUIT_Desktop.h>
+#include <qdialog.h>
 
 #include <SALOMEconfig.h>
 /* #include CORBA_CLIENT_HEADER(MED_Gen) */
@@ -42,17 +43,19 @@ class QPushButton;
 class QGroupBox;
 class QFrame;
 
-class SelectParams: public QObject
+class SelectParams: public QDialog
 {
   Q_OBJECT
 
 public:
-  SelectParams(SelectField *sel);
+  SelectParams(FilterGUI*,SelectField *sel,
+              const char* name = 0,
+              bool modal = FALSE,
+              WFlags fl = 0);
   virtual ~SelectParams();
 
-  virtual QFrame*  buildFrame();
-
 protected:
+  virtual void     buildFrame();
   virtual void     calcHisto();
   virtual void     displayHisto();
   virtual void     calcRateRed();