Version: 6.3.1
Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | Private Slots | Private Member Functions | Private Attributes

SMESHGUI_SymmetryDlg Class Reference

#include <SMESHGUI_SymmetryDlg.h>

Inheritance diagram for SMESHGUI_SymmetryDlg:
Inheritance graph
[legend]

Public Member Functions

 SMESHGUI_SymmetryDlg (SMESHGUI *)
 ~SMESHGUI_SymmetryDlg ()
void showPreview ()
void hidePreview ()

Protected Slots

virtual void onDisplaySimulation (bool)
void toDisplaySimulation ()

Protected Member Functions

void connectPreviewControl ()
virtual void setIsApplyAndClose (const bool theFlag)
virtual bool isApplyAndClose () const

Protected Attributes

SMESHGUImySMESHGUI
SMESHGUI_MeshEditPreviewmySimulation
QCheckBox * myPreviewCheckBox
bool myIsApplyAndClose

Private Slots

void ConstructorsClicked (int)
void ClickOnOk ()
void ClickOnCancel ()
bool ClickOnApply ()
void ClickOnHelp ()
void SetEditCurrentArgument ()
void SelectionIntoArgument ()
void DeactivateActiveDialog ()
void ActivateThisDialog ()
void onTextChange (const QString &)
void onSelectMesh (bool)
void onVectorChanged ()
void onActionClicked (int)
void setFilters ()

Private Member Functions

void Init (bool=true)
void closeEvent (QCloseEvent *)
void enterEvent (QEvent *)
void hideEvent (QHideEvent *)
void keyPressEvent (QKeyEvent *)
int GetConstructorId ()
bool IsMirrorOk ()
void setNewMeshName ()
void getMirror (SMESH::AxisStruct &theMirror, SMESH::SMESH_MeshEditor::MirrorType &aMirrorType)
bool isValid ()

Private Attributes

SMESHGUI_IdValidatormyIdValidator
LightApp_SelectionMgr * mySelectionMgr
int myNbOkElements
QString myElementsId
SVTK_Selector * mySelector
QWidgetmyEditCurrentArgument
SMESH::SMESH_IDSource_var mySelectedObject
bool myBusy
SMESH::SMESH_Mesh_var myMesh
SMESH_ActormyActor
SMESH_LogicalFiltermyMeshOrSubMeshOrGroupFilter
QGroupBoxConstructorsBox
QButtonGroup * GroupConstructors
QRadioButton * RadioButton1
QRadioButton * RadioButton2
QRadioButton * RadioButton3
QGroupBoxGroupButtons
QPushButton * buttonOk
QPushButton * buttonCancel
QPushButton * buttonApply
QPushButton * buttonHelp
QGroupBoxGroupArguments
QGroupBoxGroupMirror
QLabel * TextLabelElements
QPushButton * SelectElementsButton
QLineEdit * LineEditElements
QCheckBox * CheckBoxMesh
QLabel * TextLabelPoint
QPushButton * SelectPointButton
QLabel * TextLabelX
SMESHGUI_SpinBoxSpinBox_X
QLabel * TextLabelY
SMESHGUI_SpinBoxSpinBox_Y
QLabel * TextLabelZ
SMESHGUI_SpinBoxSpinBox_Z
QLabel * TextLabelVector
QPushButton * SelectVectorButton
QLabel * TextLabelDX
SMESHGUI_SpinBoxSpinBox_DX
QLabel * TextLabelDY
SMESHGUI_SpinBoxSpinBox_DY
QLabel * TextLabelDZ
SMESHGUI_SpinBoxSpinBox_DZ
QGroupBoxActionBox
QButtonGroup * ActionGroup
QCheckBox * MakeGroupsCheck
QLineEdit * LineEditNewMesh
QString myHelpFileName
QPushButton * myFilterBtn
SMESHGUI_FilterDlgmyFilterDlg

Detailed Description

Definition at line 59 of file SMESHGUI_SymmetryDlg.h.


Constructor & Destructor Documentation

SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg ( SMESHGUI theModule)

Definition at line 95 of file SMESHGUI_SymmetryDlg.cxx.

References ActionBox, ActionGroup, buttonApply, buttonCancel, buttonHelp, buttonOk, CheckBoxMesh, ClickOnApply(), ClickOnCancel(), ClickOnHelp(), ClickOnOk(), SMESHGUI_PreviewDlg.connectPreviewControl(), ConstructorsBox, ConstructorsClicked(), COORD_MAX, COORD_MIN, COPY_ELEMS_BUTTON, DeactivateActiveDialog(), SMESH.GetResourceMgr(), SMESH.GetSelector(), SMESH.GetViewWindow(), GROUP, GroupArguments, GroupButtons, GroupConstructors, GroupMirror, Init(), LineEditElements, LineEditNewMesh, SMESH_LogicalFilter.LO_OR, MAKE_MESH_BUTTON, MakeGroupsCheck, MARGIN, MESHorSUBMESH, MOVE_ELEMS_BUTTON, myFilterBtn, myHelpFileName, myIdValidator, myMeshOrSubMeshOrGroupFilter, SMESHGUI_PreviewDlg.myPreviewCheckBox, mySelectionMgr, mySelector, SMESHGUI_PreviewDlg.mySMESHGUI, onActionClicked(), onSelectMesh(), onTextChange(), onVectorChanged(), RadioButton1, RadioButton2, RadioButton3, SMESHGUI_SpinBox.RangeStepAndValidator(), SelectElementsButton, SelectionIntoArgument(), SelectPointButton, SelectVectorButton, SMESHGUI.SetActiveDialogBox(), SetEditCurrentArgument(), setFilters(), SPACING, SpinBox_DX, SpinBox_DY, SpinBox_DZ, SpinBox_X, SpinBox_Y, SpinBox_Z, TextLabelDX, TextLabelDY, TextLabelDZ, TextLabelElements, TextLabelPoint, TextLabelVector, TextLabelX, TextLabelY, TextLabelZ, and SMESHGUI_PreviewDlg.toDisplaySimulation().

  : SMESHGUI_PreviewDlg( theModule ),
    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
    myFilterDlg(0),
    mySelectedObject(SMESH::SMESH_IDSource::_nil())
{
  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_SYMMETRY_POINT")));
  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_SYMMETRY_AXIS")));
  QPixmap image2 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SMESH_SYMMETRY_PLANE")));
  QPixmap image3 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));

  setModal(false);
  setAttribute(Qt::WA_DeleteOnClose, true);
  setWindowTitle(tr("SMESH_SYMMETRY"));
  setSizeGripEnabled(true);

  QVBoxLayout* SMESHGUI_SymmetryDlgLayout = new QVBoxLayout(this);
  SMESHGUI_SymmetryDlgLayout->setSpacing(SPACING);
  SMESHGUI_SymmetryDlgLayout->setMargin(MARGIN);

  /***************************************************************/
  ConstructorsBox = new QGroupBox(tr("SMESH_SYMMETRY"), this);
  GroupConstructors = new QButtonGroup(this);
  QHBoxLayout* ConstructorsBoxLayout = new QHBoxLayout(ConstructorsBox);
  ConstructorsBoxLayout->setSpacing(SPACING);
  ConstructorsBoxLayout->setMargin(MARGIN);

  RadioButton1 = new QRadioButton(ConstructorsBox);
  RadioButton1->setIcon(image0);
  RadioButton2 = new QRadioButton(ConstructorsBox);
  RadioButton2->setIcon(image1);
  RadioButton3 = new QRadioButton(ConstructorsBox);
  RadioButton3->setIcon(image2);

  ConstructorsBoxLayout->addWidget(RadioButton1);
  ConstructorsBoxLayout->addWidget(RadioButton2);
  ConstructorsBoxLayout->addWidget(RadioButton3);
  GroupConstructors->addButton(RadioButton1, 0);
  GroupConstructors->addButton(RadioButton2, 1);
  GroupConstructors->addButton(RadioButton3, 2);

  /***************************************************************/
  GroupArguments = new QGroupBox(tr("SMESH_ARGUMENTS"), this);
  QGridLayout* GroupArgumentsLayout = new QGridLayout(GroupArguments);
  GroupArgumentsLayout->setSpacing(SPACING);
  GroupArgumentsLayout->setMargin(MARGIN);

  myIdValidator = new SMESHGUI_IdValidator(this);

  // Controls for elements selection
  TextLabelElements = new QLabel(tr("SMESH_ID_ELEMENTS"), GroupArguments);
  SelectElementsButton  = new QPushButton(GroupArguments);
  SelectElementsButton->setIcon(image3);
  LineEditElements = new QLineEdit(GroupArguments);
  LineEditElements->setValidator(myIdValidator);
  LineEditElements->setMaxLength(-1);
  myFilterBtn = new QPushButton( tr( "SMESH_BUT_FILTER" ), GroupArguments );
  connect(myFilterBtn,   SIGNAL(clicked()), this, SLOT(setFilters()));

  // Control for the whole mesh selection
  CheckBoxMesh = new QCheckBox(tr("SMESH_SELECT_WHOLE_MESH"), GroupArguments);

  // Controls for mirror selection
  GroupMirror = new QGroupBox(GroupArguments);
  QGridLayout* GroupMirrorLayout = new QGridLayout(GroupMirror);
  GroupMirrorLayout->setSpacing(SPACING);
  GroupMirrorLayout->setMargin(MARGIN);

  TextLabelPoint = new QLabel(tr("SMESH_POINT"), GroupMirror);
  SelectPointButton  = new QPushButton(GroupMirror);
  SelectPointButton->setIcon(image3);

  TextLabelX = new QLabel(tr("SMESH_X"), GroupMirror);
  SpinBox_X = new SMESHGUI_SpinBox(GroupMirror);
  TextLabelY = new QLabel(tr("SMESH_Y"), GroupMirror);
  SpinBox_Y = new SMESHGUI_SpinBox(GroupMirror);
  TextLabelZ = new QLabel(tr("SMESH_Z"), GroupMirror);
  SpinBox_Z = new SMESHGUI_SpinBox(GroupMirror);

  TextLabelVector = new QLabel(GroupMirror);
  SelectVectorButton = new QPushButton(GroupMirror);
  SelectVectorButton->setIcon(image3);

  TextLabelDX = new QLabel(tr("SMESH_DX"), GroupMirror);
  SpinBox_DX = new SMESHGUI_SpinBox(GroupMirror);
  TextLabelDY = new QLabel(tr("SMESH_DY"), GroupMirror);
  SpinBox_DY = new SMESHGUI_SpinBox(GroupMirror);
  TextLabelDZ = new QLabel(tr("SMESH_DZ"), GroupMirror);
  SpinBox_DZ = new SMESHGUI_SpinBox(GroupMirror);

  GroupMirrorLayout->addWidget(TextLabelPoint,     0, 0);
  GroupMirrorLayout->addWidget(SelectPointButton,  0, 1);
  GroupMirrorLayout->addWidget(TextLabelX,         0, 2);
  GroupMirrorLayout->addWidget(SpinBox_X,          0, 3);
  GroupMirrorLayout->addWidget(TextLabelY,         0, 4);
  GroupMirrorLayout->addWidget(SpinBox_Y,          0, 5);
  GroupMirrorLayout->addWidget(TextLabelZ,         0, 6);
  GroupMirrorLayout->addWidget(SpinBox_Z,          0, 7);
  GroupMirrorLayout->addWidget(TextLabelVector,    1, 0);
  GroupMirrorLayout->addWidget(SelectVectorButton, 1, 1);
  GroupMirrorLayout->addWidget(TextLabelDX,        1, 2);
  GroupMirrorLayout->addWidget(SpinBox_DX,         1, 3);
  GroupMirrorLayout->addWidget(TextLabelDY,        1, 4);
  GroupMirrorLayout->addWidget(SpinBox_DY,         1, 5);
  GroupMirrorLayout->addWidget(TextLabelDZ,        1, 6);
  GroupMirrorLayout->addWidget(SpinBox_DZ,         1, 7);

  // switch of action type
  ActionBox = new QGroupBox(GroupArguments);
  ActionGroup = new QButtonGroup(GroupArguments);
  QVBoxLayout* ActionBoxLayout = new QVBoxLayout(ActionBox);
  ActionBoxLayout->addSpacing(SPACING);
  ActionBoxLayout->setMargin(MARGIN);

  QRadioButton* aMoveElements = new QRadioButton(tr("SMESH_MOVE_ELEMENTS"), ActionBox);
  QRadioButton* aCopyElements = new QRadioButton(tr("SMESH_COPY_ELEMENTS"), ActionBox);
  QRadioButton* aCreateMesh   = new QRadioButton(tr("SMESH_CREATE_MESH"),   ActionBox);

  ActionBoxLayout->addWidget(aMoveElements);
  ActionBoxLayout->addWidget(aCopyElements);
  ActionBoxLayout->addWidget(aCreateMesh);
  ActionGroup->addButton(aMoveElements, MOVE_ELEMS_BUTTON);
  ActionGroup->addButton(aCopyElements, COPY_ELEMS_BUTTON);
  ActionGroup->addButton(aCreateMesh,   MAKE_MESH_BUTTON);

  // CheckBox for groups generation
  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
  MakeGroupsCheck->setChecked(false);

  // Name of a mesh to create
  LineEditNewMesh = new QLineEdit(GroupArguments);


  //Preview check box
  myPreviewCheckBox = new QCheckBox(tr("PREVIEW"), GroupArguments);

  // layout
  GroupArgumentsLayout->addWidget(TextLabelElements,    0, 0);
  GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
  GroupArgumentsLayout->addWidget(LineEditElements,     0, 2, 1, 1);
  GroupArgumentsLayout->addWidget(myFilterBtn,          0, 3);
  GroupArgumentsLayout->addWidget(CheckBoxMesh,         1, 0, 1, 4);
  GroupArgumentsLayout->addWidget(GroupMirror,          2, 0, 1, 4);
  GroupArgumentsLayout->addWidget(ActionBox,            3, 0, 3, 3);
  GroupArgumentsLayout->addWidget(MakeGroupsCheck,      4, 3);
  GroupArgumentsLayout->addWidget(LineEditNewMesh,      5, 3);
  GroupArgumentsLayout->addWidget(myPreviewCheckBox,    6, 0);

  /***************************************************************/
  GroupButtons = new QGroupBox(this);
  QHBoxLayout* GroupButtonsLayout = new QHBoxLayout(GroupButtons);
  GroupButtonsLayout->setSpacing(SPACING);
  GroupButtonsLayout->setMargin(MARGIN);

  buttonOk = new QPushButton(tr("SMESH_BUT_APPLY_AND_CLOSE"), GroupButtons);
  buttonOk->setAutoDefault(true);
  buttonOk->setDefault(true);
  buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons);
  buttonApply->setAutoDefault(true);
  buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons);
  buttonCancel->setAutoDefault(true);
  buttonHelp = new QPushButton(tr("SMESH_BUT_HELP"), GroupButtons);
  buttonHelp->setAutoDefault(true);

  GroupButtonsLayout->addWidget(buttonOk);
  GroupButtonsLayout->addSpacing(10);
  GroupButtonsLayout->addWidget(buttonApply);
  GroupButtonsLayout->addSpacing(10);
  GroupButtonsLayout->addStretch();
  GroupButtonsLayout->addWidget(buttonCancel);
  GroupButtonsLayout->addWidget(buttonHelp);

  /***************************************************************/
  SMESHGUI_SymmetryDlgLayout->addWidget(ConstructorsBox);
  SMESHGUI_SymmetryDlgLayout->addWidget(GroupArguments);
  SMESHGUI_SymmetryDlgLayout->addWidget(GroupButtons);

  /* Initialisations */
  SpinBox_X->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, "length_precision");
  SpinBox_Y->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, "length_precision");
  SpinBox_Z->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, "length_precision");
  SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, "length_precision");
  SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, "length_precision");
  SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, "length_precision");

  RadioButton1->setChecked(true);

  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();

  mySMESHGUI->SetActiveDialogBox((QDialog*)this);

  // Costruction of the logical filter
  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);

  QList<SUIT_SelectionFilter*> aListOfFilters;
  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);

  myMeshOrSubMeshOrGroupFilter =
    new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);

  myHelpFileName = "symmetry_page.html";

  Init();

  /* signals and slots connections */
  connect(buttonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
  connect(buttonApply,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
  connect(buttonHelp,   SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
  connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int)));

  connect(SelectElementsButton, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
  connect(SelectPointButton,    SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
  connect(SelectVectorButton,   SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));

  connect(SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
  connect(SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));
  connect(SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(onVectorChanged()));

  connect(mySMESHGUI,     SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
  /* to close dialog if study change */
  connect(mySMESHGUI,       SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
  connect(LineEditElements, SIGNAL(textChanged(const QString&)),   SLOT(onTextChange(const QString&)));
  connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                 SLOT(onSelectMesh(bool)));
  connect(ActionGroup,      SIGNAL(buttonClicked(int)),            SLOT(onActionClicked(int)));

  connect(SpinBox_X,  SIGNAL(valueChanged(double)), this, SLOT(toDisplaySimulation()));
  connect(SpinBox_Y,  SIGNAL(valueChanged(double)), this, SLOT(toDisplaySimulation()));
  connect(SpinBox_Z,  SIGNAL(valueChanged(double)), this, SLOT(toDisplaySimulation()));
  connect(SpinBox_DX,  SIGNAL(valueChanged(double)), this, SLOT(toDisplaySimulation()));
  connect(SpinBox_DY,  SIGNAL(valueChanged(double)), this, SLOT(toDisplaySimulation()));
  connect(SpinBox_DZ,  SIGNAL(valueChanged(double)), this, SLOT(toDisplaySimulation()));

  //To Connect preview check box
  connectPreviewControl();

  ConstructorsClicked(0);
  SelectionIntoArgument();
  onActionClicked(MOVE_ELEMS_BUTTON);
}
SMESHGUI_SymmetryDlg::~SMESHGUI_SymmetryDlg ( )

Definition at line 343 of file SMESHGUI_SymmetryDlg.cxx.

References myFilterDlg.

{
  if ( myFilterDlg != 0 ) {
    myFilterDlg->setParent( 0 );
    delete myFilterDlg;
  }
}

Member Function Documentation

void SMESHGUI_SymmetryDlg::ActivateThisDialog ( ) [private, slot]

Definition at line 900 of file SMESHGUI_SymmetryDlg.cxx.

References ConstructorsBox, SMESHGUI.EmitSignalDeactivateDialog(), SMESH.GetViewWindow(), GroupArguments, GroupButtons, SMESHGUI_PreviewDlg.mySMESHGUI, SelectionIntoArgument(), and SMESHGUI.SetActiveDialogBox().

Referenced by enterEvent().

{
  /* Emit a signal to deactivate the active dialog */
  mySMESHGUI->EmitSignalDeactivateDialog();
  ConstructorsBox->setEnabled(true);
  GroupArguments->setEnabled(true);
  GroupButtons->setEnabled(true);

  mySMESHGUI->SetActiveDialogBox((QDialog*)this);

  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
    aViewWindow->SetSelectionMode(CellSelection);
  SelectionIntoArgument();
}
bool SMESHGUI_SymmetryDlg::ClickOnApply ( ) [private, slot]

Definition at line 465 of file SMESHGUI_SymmetryDlg.cxx.

References _PTR(), ActionGroup, CheckBoxMesh, ConstructorsClicked(), COPY_ELEMS_BUTTON, GetConstructorId(), getMirror(), Init(), SMESHGUI.isActiveStudyLocked(), SMESHGUI_PreviewDlg.isApplyAndClose(), IsMirrorOk(), isValid(), LineEditNewMesh, MAKE_MESH_BUTTON, MakeGroupsCheck, PAL_MESH_041_mesh.mesh, SMESHGUI.Modified(), MOVE_ELEMS_BUTTON, myElementsId, myMesh, myNbOkElements, mySelectedObject, SMESHGUI_PreviewDlg.mySMESHGUI, SelectionIntoArgument(), SpinBox_DX, SpinBox_DY, SpinBox_DZ, SpinBox_X, SpinBox_Y, SpinBox_Z, and SMESH.UpdateView().

Referenced by ClickOnOk(), and SMESHGUI_SymmetryDlg().

{
  if (mySMESHGUI->isActiveStudyLocked())
    return false;

  if( !isValid() )
    return false;

  if (myNbOkElements && IsMirrorOk()) {
    QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);

    SMESH::long_array_var anElementsId = new SMESH::long_array;

    anElementsId->length(aListElementsId.count());
    for (int i = 0; i < aListElementsId.count(); i++)
      anElementsId[i] = aListElementsId[i].toInt();

    SMESH::AxisStruct aMirror;
    SMESH::SMESH_MeshEditor::MirrorType aMirrorType;
    getMirror(aMirror,aMirrorType);

    QStringList aParameters;
    aParameters << SpinBox_X->text();
    aParameters << SpinBox_Y->text();
    aParameters << SpinBox_Z->text();
    aParameters << ( GetConstructorId() == 0 ? QString::number(0) : SpinBox_DX->text() );
    aParameters << ( GetConstructorId() == 0 ? QString::number(0) : SpinBox_DY->text() );
    aParameters << ( GetConstructorId() == 0 ? QString::number(0) : SpinBox_DZ->text() );

    int actionButton = ActionGroup->checkedId();
    bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() );
    QStringList anEntryList;
    try {
      SUIT_OverrideCursor aWaitCursor;
      SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();

      switch ( actionButton ) {
      case MOVE_ELEMS_BUTTON: {
        if(CheckBoxMesh->isChecked())
          aMeshEditor->MirrorObject(mySelectedObject, aMirror, aMirrorType, false );
        else
          aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, false );

        if( !myMesh->_is_nil())
          myMesh->SetParameters( aParameters.join(":").toLatin1().constData() );
        break;
      }
      case COPY_ELEMS_BUTTON: {
        SMESH::ListOfGroups_var groups;
        if ( makeGroups ) {
          if(CheckBoxMesh->isChecked())
            groups = aMeshEditor->MirrorObjectMakeGroups(mySelectedObject, aMirror, aMirrorType);
          else
            groups = aMeshEditor->MirrorMakeGroups(anElementsId, aMirror, aMirrorType);
        }
        else {
          if(CheckBoxMesh->isChecked())
            aMeshEditor->MirrorObject(mySelectedObject, aMirror, aMirrorType, true);
          else
            aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, true);
        }
        if( !myMesh->_is_nil())
          myMesh->SetParameters( aParameters.join(":").toLatin1().constData() );
        break;
        }
      case MAKE_MESH_BUTTON: {
        SMESH::SMESH_Mesh_var mesh;
        if (CheckBoxMesh->isChecked())
          mesh = aMeshEditor->MirrorObjectMakeMesh(mySelectedObject, aMirror, aMirrorType, makeGroups,
                                                   LineEditNewMesh->text().toLatin1().data());
        else
          mesh = aMeshEditor->MirrorMakeMesh(anElementsId, aMirror, aMirrorType, makeGroups,
                                             LineEditNewMesh->text().toLatin1().data());
        if (!mesh->_is_nil()) {
          mesh->SetParameters(aParameters.join(":").toLatin1().constData());
          if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( mesh ) )
            anEntryList.append( aSObject->GetID().c_str() );
#ifdef WITHGENERICOBJ
          // obj has been published in study. Its refcount has been incremented.
          // It is safe to decrement its refcount
          // so that it will be destroyed when the entry in study will be removed
          mesh->UnRegister();
#endif
        }
        break;
      }
      }
    } catch (...) {
    }

    SMESH::UpdateView();
    if ( ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ) ||
         actionButton == MAKE_MESH_BUTTON ) {
      mySMESHGUI->updateObjBrowser(true); // new groups may appear
      if( LightApp_Application* anApp =
          dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
        anApp->browseObjects( anEntryList, isApplyAndClose() );
    }
    Init(false);
    ConstructorsClicked(GetConstructorId());
    mySelectedObject = SMESH::SMESH_IDSource::_nil();
    SelectionIntoArgument();

    SMESHGUI::Modified();
  }
  return true;
}
void SMESHGUI_SymmetryDlg::ClickOnCancel ( ) [private, slot]

Definition at line 588 of file SMESHGUI_SymmetryDlg.cxx.

References SMESH.GetCurrentVtkView(), SMESH.GetViewWindow(), mySelectionMgr, SMESHGUI_PreviewDlg.mySMESHGUI, SMESH.RemoveFilters(), SMESHGUI.ResetState(), and SMESH.SetPointRepresentation().

Referenced by ClickOnOk(), closeEvent(), hideEvent(), and SMESHGUI_SymmetryDlg().

{
  disconnect(mySelectionMgr, 0, this, 0);
  mySelectionMgr->clearFilters();
  //mySelectionMgr->clearSelected();
  if (SMESH::GetCurrentVtkView()) {
    SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
    SMESH::SetPointRepresentation(false);
  }
  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
    aViewWindow->SetSelectionMode(ActorSelection);
  mySMESHGUI->ResetState();
  reject();
}
void SMESHGUI_SymmetryDlg::ClickOnHelp ( ) [private, slot]

Definition at line 607 of file SMESHGUI_SymmetryDlg.cxx.

References myHelpFileName, and SMESHGUI_PreviewDlg.mySMESHGUI.

Referenced by keyPressEvent(), and SMESHGUI_SymmetryDlg().

{
  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
  if (app)
    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
  else {
    QString platform;
#ifdef WIN32
    platform = "winapplication";
#else
    platform = "application";
#endif
    SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
                             tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
                             arg(app->resourceMgr()->stringValue("ExternalBrowser",
                                                                 platform)).
                             arg(myHelpFileName));
  }
}
void SMESHGUI_SymmetryDlg::ClickOnOk ( ) [private, slot]
void SMESHGUI_SymmetryDlg::closeEvent ( QCloseEvent *  ) [private]

Definition at line 929 of file SMESHGUI_SymmetryDlg.cxx.

References ClickOnCancel().

{
  /* same than click on cancel button */
  ClickOnCancel();
}
void SMESHGUI_PreviewDlg::connectPreviewControl ( ) [protected, inherited]
void SMESHGUI_SymmetryDlg::ConstructorsClicked ( int  constructorId) [private, slot]

Definition at line 393 of file SMESHGUI_SymmetryDlg.cxx.

References CheckBoxMesh, SMESH.GetViewWindow(), GroupMirror, LineEditElements, myEditCurrentArgument, mySelectionMgr, SMESHGUI_PreviewDlg.mySMESHGUI, onDisplaySimulation(), onSelectMesh(), SelectionIntoArgument(), SelectVectorButton, SMESH.SetPointRepresentation(), SpinBox_DX, SpinBox_DY, SpinBox_DZ, TextLabelDX, TextLabelDY, TextLabelDZ, and TextLabelVector.

Referenced by ClickOnApply(), and SMESHGUI_SymmetryDlg().

{
  disconnect(mySelectionMgr, 0, this, 0);

  if (constructorId != 0 && !TextLabelVector->isVisible()) {
    TextLabelVector->show();
    SelectVectorButton->show();
    TextLabelDX->show();
    SpinBox_DX->show();
    TextLabelDY->show();
    SpinBox_DY->show();
    TextLabelDZ->show();
    SpinBox_DZ->show();
  }

  switch (constructorId) {
  case 0:
    {
      GroupMirror->setTitle(tr("SMESH_POINT"));

      TextLabelVector->hide();
      SelectVectorButton->hide();
      TextLabelDX->hide();
      SpinBox_DX->hide();
      TextLabelDY->hide();
      SpinBox_DY->hide();
      TextLabelDZ->hide();
      SpinBox_DZ->hide();
      break;
    }
  case 1:
    {
      GroupMirror->setTitle(tr("SMESH_AXIS"));
      TextLabelVector->setText(tr("SMESH_VECTOR"));
      break;
    }
  case 2:
    {
      GroupMirror->setTitle(tr("SMESH_PLANE"));
      TextLabelVector->setText(tr("SMESH_NORMAL"));
      break;
    }
  }

  if (myEditCurrentArgument != (QWidget*)LineEditElements) {
    SMESH::SetPointRepresentation(false);
    if (!CheckBoxMesh->isChecked())
      {
        if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
          aViewWindow->SetSelectionMode(CellSelection);
      }
  }

  myEditCurrentArgument = (QWidget*)LineEditElements;
  LineEditElements->setFocus();

  if (CheckBoxMesh->isChecked())
    onSelectMesh(true);

  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));

  onDisplaySimulation(true);

  QApplication::instance()->processEvents();
  updateGeometry();
  resize(100,100);
}
void SMESHGUI_SymmetryDlg::DeactivateActiveDialog ( ) [private, slot]
void SMESHGUI_SymmetryDlg::enterEvent ( QEvent *  ) [private]

Definition at line 919 of file SMESHGUI_SymmetryDlg.cxx.

References ActivateThisDialog(), and ConstructorsBox.

{
  if (!ConstructorsBox->isEnabled())
    ActivateThisDialog();
}
int SMESHGUI_SymmetryDlg::GetConstructorId ( ) [private]

Definition at line 987 of file SMESHGUI_SymmetryDlg.cxx.

References GroupConstructors.

Referenced by ClickOnApply(), getMirror(), IsMirrorOk(), and isValid().

{
  return GroupConstructors->checkedId();
}
void SMESHGUI_SymmetryDlg::getMirror ( SMESH::AxisStruct theMirror,
SMESH::SMESH_MeshEditor::MirrorType aMirrorType 
) [private]
void SMESHGUI_SymmetryDlg::hideEvent ( QHideEvent *  ) [private]

Definition at line 939 of file SMESHGUI_SymmetryDlg.cxx.

References ClickOnCancel().

{
  if (!isMinimized())
    ClickOnCancel();
}
void SMESHGUI_PreviewDlg::hidePreview ( ) [inherited]
void SMESHGUI_SymmetryDlg::Init ( bool  ResetControls = true) [private]

Definition at line 355 of file SMESHGUI_SymmetryDlg.cxx.

References ActionGroup, buttonApply, buttonOk, CheckBoxMesh, LineEditElements, MOVE_ELEMS_BUTTON, myActor, myBusy, myEditCurrentArgument, myElementsId, myMesh, myNbOkElements, SMESHGUI_PreviewDlg.myPreviewCheckBox, onDisplaySimulation(), onSelectMesh(), SMESHGUI_SpinBox.SetValue(), SpinBox_DX, SpinBox_DY, SpinBox_DZ, SpinBox_X, SpinBox_Y, and SpinBox_Z.

Referenced by ClickOnApply(), and SMESHGUI_SymmetryDlg().

{
  myBusy = false;

  myEditCurrentArgument = 0;
  LineEditElements->clear();
  myElementsId = "";
  myNbOkElements = 0;

  buttonOk->setEnabled(false);
  buttonApply->setEnabled(false);

  myActor = 0;
  myMesh = SMESH::SMESH_Mesh::_nil();

  if (ResetControls) {
    SpinBox_X->SetValue(0.0);
    SpinBox_Y->SetValue(0.0);
    SpinBox_Z->SetValue(0.0);
    SpinBox_DX->SetValue(0.0);
    SpinBox_DY->SetValue(0.0);
    SpinBox_DZ->SetValue(0.0);

    ActionGroup->button( MOVE_ELEMS_BUTTON )->setChecked(true);
    CheckBoxMesh->setChecked(false);
    myPreviewCheckBox->setChecked(false);
    onDisplaySimulation(false);

//     MakeGroupsCheck->setChecked(false);
//     MakeGroupsCheck->setEnabled(false);
    onSelectMesh(false);
  }
}
bool SMESHGUI_PreviewDlg::isApplyAndClose ( ) const [protected, virtual, inherited]
bool SMESHGUI_SymmetryDlg::IsMirrorOk ( ) [private]

Definition at line 996 of file SMESHGUI_SymmetryDlg.cxx.

References GetConstructorId(), SMESHGUI_SpinBox.GetValue(), SpinBox_DX, SpinBox_DY, and SpinBox_DZ.

Referenced by ClickOnApply(), onDisplaySimulation(), onTextChange(), onVectorChanged(), and SelectionIntoArgument().

{
  bool isOk = true;

  if (GetConstructorId() != 0)
    isOk = (SpinBox_DX->GetValue() != 0 ||
            SpinBox_DY->GetValue() != 0 ||
            SpinBox_DZ->GetValue() != 0);

  return isOk;
}
bool SMESHGUI_SymmetryDlg::isValid ( ) [private]

Definition at line 1120 of file SMESHGUI_SymmetryDlg.cxx.

References GetConstructorId(), SpinBox_DX, SpinBox_DY, SpinBox_DZ, SpinBox_X, SpinBox_Y, and SpinBox_Z.

Referenced by ClickOnApply(), and onDisplaySimulation().

{
  bool ok = true;
  QString msg;

  ok = SpinBox_X->isValid( msg, true ) && ok;
  ok = SpinBox_Y->isValid( msg, true ) && ok;
  ok = SpinBox_Z->isValid( msg, true ) && ok;
  if (GetConstructorId() != 0) {
    ok = SpinBox_DX->isValid( msg, true ) && ok;
    ok = SpinBox_DY->isValid( msg, true ) && ok;
    ok = SpinBox_DZ->isValid( msg, true ) && ok;
  }

  if( !ok ) {
    QString str( tr( "SMESH_INCORRECT_INPUT" ) );
    if ( !msg.isEmpty() )
      str += "\n" + msg;
    SUIT_MessageBox::critical( this, tr( "SMESH_ERROR" ), str );
    return false;
  }
  return true;
}
void SMESHGUI_SymmetryDlg::keyPressEvent ( QKeyEvent *  e) [private]

Definition at line 1082 of file SMESHGUI_SymmetryDlg.cxx.

References ClickOnHelp().

{
  QDialog::keyPressEvent( e );
  if ( e->isAccepted() )
    return;

  if ( e->key() == Qt::Key_F1 ) {
    e->accept();
    ClickOnHelp();
  }
}
void SMESHGUI_SymmetryDlg::onActionClicked ( int  button) [private, slot]

Definition at line 1028 of file SMESHGUI_SymmetryDlg.cxx.

References COPY_ELEMS_BUTTON, LineEditNewMesh, MAKE_MESH_BUTTON, MakeGroupsCheck, MOVE_ELEMS_BUTTON, myMesh, setNewMeshName(), and SMESHGUI_PreviewDlg.toDisplaySimulation().

Referenced by SMESHGUI_SymmetryDlg().

{
  switch ( button ) {
  case MOVE_ELEMS_BUTTON:
    MakeGroupsCheck->setEnabled(false);
    LineEditNewMesh->setEnabled(false);
    break;
  case COPY_ELEMS_BUTTON:
    LineEditNewMesh->setEnabled(false);
    MakeGroupsCheck->setText( tr("SMESH_MAKE_GROUPS"));
    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
      MakeGroupsCheck->setEnabled(true);
    else
      MakeGroupsCheck->setEnabled(false);
    break;
  case MAKE_MESH_BUTTON:
    LineEditNewMesh->setEnabled(true);
    MakeGroupsCheck->setText( tr("SMESH_COPY_GROUPS"));
    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
      MakeGroupsCheck->setEnabled(true);
    else
      MakeGroupsCheck->setEnabled(false);
    break;
  }
  setNewMeshName();
  toDisplaySimulation();
}
void SMESHGUI_SymmetryDlg::onDisplaySimulation ( bool  toDisplayPreview) [protected, virtual, slot]

Reimplemented from SMESHGUI_PreviewDlg.

Definition at line 1148 of file SMESHGUI_SymmetryDlg.cxx.

References ActionGroup, CheckBoxMesh, COPY_ELEMS_BUTTON, getMirror(), SMESHGUI_PreviewDlg.hidePreview(), IsMirrorOk(), isValid(), MAKE_MESH_BUTTON, myElementsId, myMesh, myNbOkElements, SMESHGUI_PreviewDlg.myPreviewCheckBox, mySelectedObject, SMESHGUI_PreviewDlg.mySimulation, and SMESHGUI_MeshEditPreview.SetData().

Referenced by ConstructorsClicked(), Init(), and SelectionIntoArgument().

                                                                      {
  if (myPreviewCheckBox->isChecked() && toDisplayPreview) {
    if ( myNbOkElements && isValid() && IsMirrorOk() ) {
      QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);      
      SMESH::long_array_var anElementsId = new SMESH::long_array;

      anElementsId->length(aListElementsId.count());
      for (int i = 0; i < aListElementsId.count(); i++)
        anElementsId[i] = aListElementsId[i].toInt();

      SMESH::AxisStruct aMirror;
      SMESH::SMESH_MeshEditor::MirrorType aMirrorType;
      
      getMirror(aMirror,aMirrorType);

      try {
        bool copy = ( ActionGroup->checkedId() == COPY_ELEMS_BUTTON ||
                      ActionGroup->checkedId() == MAKE_MESH_BUTTON );
        SUIT_OverrideCursor aWaitCursor;
        SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditPreviewer();
        if(CheckBoxMesh->isChecked())
          aMeshEditor->MirrorObject(mySelectedObject, aMirror, aMirrorType, copy );
        else
          aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, copy );
        
        SMESH::MeshPreviewStruct_var aMeshPreviewStruct = aMeshEditor->GetPreviewData();
        mySimulation->SetData(aMeshPreviewStruct._retn());
      } catch (...) {
        hidePreview();
      }
    } else {
      hidePreview();
    } 
  } else {
    hidePreview();
  }
}
void SMESHGUI_SymmetryDlg::onSelectMesh ( bool  toSelectMesh) [private, slot]

Definition at line 949 of file SMESHGUI_SymmetryDlg.cxx.

References SMESH.GetViewWindow(), SMESHGUI_PreviewDlg.hidePreview(), LineEditElements, myEditCurrentArgument, myFilterBtn, myIdValidator, myMeshOrSubMeshOrGroupFilter, mySelectionMgr, SMESHGUI_PreviewDlg.mySMESHGUI, onTextChange(), SelectionIntoArgument(), SMESH.SetPointRepresentation(), and TextLabelElements.

Referenced by ConstructorsClicked(), Init(), and SMESHGUI_SymmetryDlg().

{
  if (toSelectMesh)
    TextLabelElements->setText(tr("SMESH_NAME"));
  else
    TextLabelElements->setText(tr("SMESH_ID_ELEMENTS"));
  myFilterBtn->setEnabled(!toSelectMesh);

  if (myEditCurrentArgument != LineEditElements) {
    LineEditElements->clear();
    return;
  }

  mySelectionMgr->clearFilters();
  SMESH::SetPointRepresentation(false);

  if (toSelectMesh) {
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(ActorSelection);
    mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
    LineEditElements->setReadOnly(true);
    LineEditElements->setValidator(0);
  } else {
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(CellSelection);
    LineEditElements->setReadOnly(false);
    LineEditElements->setValidator(myIdValidator);
    onTextChange(LineEditElements->text());
    hidePreview();
  }

  SelectionIntoArgument();
}
void SMESHGUI_SymmetryDlg::onTextChange ( const QString &  theNewText) [private, slot]

Definition at line 631 of file SMESHGUI_SymmetryDlg.cxx.

References buttonApply, buttonOk, SMDS_Mesh.FindElement(), SMDS_MeshElement.GetID(), SMESH_Actor.GetObject(), SMESH.GetViewWindow(), Handle(), IsMirrorOk(), LineEditElements, myActor, myBusy, myElementsId, myNbOkElements, mySelector, and SMESHGUI_PreviewDlg.mySMESHGUI.

Referenced by onSelectMesh(), and SMESHGUI_SymmetryDlg().

{
  QLineEdit* send = (QLineEdit*)sender();

  if (myBusy) return;
  myBusy = true;

  if (send == LineEditElements)
    myNbOkElements = 0;

  buttonOk->setEnabled(false);
  buttonApply->setEnabled(false);

  // hilight entered elements
  SMDS_Mesh* aMesh = 0;
  if (myActor)
    aMesh = myActor->GetObject()->GetMesh();

  if (aMesh) {
    Handle(SALOME_InteractiveObject) anIO = myActor->getIO();

    TColStd_MapOfInteger newIndices;

    QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts);

    if (send == LineEditElements) {
      for (int i = 0; i < aListId.count(); i++) {
        const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
        if (e)
          newIndices.Add(e->GetID());
        myNbOkElements++;
      }

      mySelector->AddOrRemoveIndex( anIO, newIndices, false );
      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
        aViewWindow->highlight( anIO, true, true );

      myElementsId = theNewText;
    }
  }

  if (myNbOkElements &&  IsMirrorOk()) {
    buttonOk->setEnabled(true);
    buttonApply->setEnabled(true);
  }

  myBusy = false;
}
void SMESHGUI_SymmetryDlg::onVectorChanged ( ) [private, slot]

Definition at line 1012 of file SMESHGUI_SymmetryDlg.cxx.

References buttonApply, buttonOk, and IsMirrorOk().

Referenced by SMESHGUI_SymmetryDlg().

{
  if (IsMirrorOk()) {
    buttonOk->setEnabled(true);
    buttonApply->setEnabled(true);
  } else {
    buttonOk->setEnabled(false);
    buttonApply->setEnabled(false);
  }
}
void SMESHGUI_SymmetryDlg::SelectionIntoArgument ( ) [private, slot]

Definition at line 684 of file SMESHGUI_SymmetryDlg.cxx.

References ActionGroup, buttonApply, buttonOk, CheckBoxMesh, SMESH.FindActorByEntry(), SMESH.FindActorByObject(), SMDS_Mesh.FindNode(), SMESH.GetMeshByIO(), SMESH.GetNameOfSelectedElements(), SMESH.GetNameOfSelectedIObjects(), SMESH.GetNameOfSelectedNodes(), SMESH_Actor.GetObject(), SMESHGUI_SpinBox.GetValue(), GroupButtons, Handle(), IsMirrorOk(), LineEditElements, MakeGroupsCheck, MOVE_ELEMS_BUTTON, myActor, myBusy, myEditCurrentArgument, myElementsId, myMesh, myNbOkElements, mySelectedObject, mySelectionMgr, mySelector, onDisplaySimulation(), setNewMeshName(), SMESHGUI_SpinBox.SetValue(), SpinBox_DX, SpinBox_DY, SpinBox_DZ, SpinBox_X, SpinBox_Y, SpinBox_Z, SMDS_MeshNode.X(), ex13_hole1partial.x, SMDS_MeshNode.Y(), ex13_hole1partial.y, and SMDS_MeshNode.Z().

Referenced by ActivateThisDialog(), ClickOnApply(), ConstructorsClicked(), onSelectMesh(), SetEditCurrentArgument(), and SMESHGUI_SymmetryDlg().

{
  if (myBusy) return;

  // clear
  myActor = 0;
  QString aString = "";

  myBusy = true;
  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
    LineEditElements->setText(aString);
    myNbOkElements = 0;
    buttonOk->setEnabled(false);
    buttonApply->setEnabled(false);
  }
  myBusy = false;

  if (!GroupButtons->isEnabled()) // inactive
    return;

  // get selected mesh
  SALOME_ListIO aList;
  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());

  int nbSel = aList.Extent();
  if (nbSel != 1)
    return;

  Handle(SALOME_InteractiveObject) IO = aList.First();
  myMesh = SMESH::GetMeshByIO(IO);
  if(myMesh->_is_nil())
    return;

  myActor = SMESH::FindActorByObject(myMesh);
  if (!myActor)
    myActor = SMESH::FindActorByEntry(IO->getEntry());
  if (!myActor && !CheckBoxMesh->isChecked())
    return;

  int aNbUnits = 0;

  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
    myElementsId = "";

    // MakeGroups is available if there are groups and "Copy"
    if ( myMesh->NbGroups() == 0 ) {
      MakeGroupsCheck->setChecked(false);
      MakeGroupsCheck->setEnabled(false);
    }
    else if ( ActionGroup->checkedId() != MOVE_ELEMS_BUTTON ) {
      MakeGroupsCheck->setEnabled(true);
    }
    if (CheckBoxMesh->isChecked()) {
      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);

      if (!SMESH::IObjectToInterface<SMESH::SMESH_IDSource>(IO)->_is_nil()) { //MESH
        mySelectedObject = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>(IO);
      }
      else
        return;
      // get IDs from mesh
      /*
        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
        if (!aSMDSMesh)
          return;

        for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++) {
          const SMDS_MeshElement * e = aSMDSMesh->FindElement(i);
          if (e) {
            myElementsId += QString(" %1").arg(i);
            aNbUnits++;
          }
        }
      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
        // get submesh
        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);

        // get IDs from submesh
        /*
        SMESH::long_array_var anElementsIds = new SMESH::long_array;
        anElementsIds = aSubMesh->GetElementsId();
        for (int i = 0; i < anElementsIds->length(); i++) {
          myElementsId += QString(" %1").arg(anElementsIds[i]);
        }
        aNbUnits = anElementsIds->length();
      } else { // GROUP
        // get smesh group
        SMESH::SMESH_GroupBase_var aGroup =
          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
        if (aGroup->_is_nil())
          return;

        // get IDs from smesh group
        SMESH::long_array_var anElementsIds = new SMESH::long_array;
        anElementsIds = aGroup->GetListOfID();
        for (int i = 0; i < anElementsIds->length(); i++) {
          myElementsId += QString(" %1").arg(anElementsIds[i]);
        }
        aNbUnits = anElementsIds->length();
      }
      */
    } else {
      aNbUnits = SMESH::GetNameOfSelectedElements( mySelector, IO, aString);
      myElementsId = aString;
      if (aNbUnits < 1)
        return;
    }

    myNbOkElements = true;
  } else {
    aNbUnits = SMESH::GetNameOfSelectedNodes(mySelector, IO, aString);
    if (aNbUnits != 1)
      return;

    SMDS_Mesh* aMesh =  myActor->GetObject()->GetMesh();
    if (!aMesh)
      return;

    const SMDS_MeshNode * n = aMesh->FindNode(aString.toInt());
    if (!n)
      return;

    double x = n->X();
    double y = n->Y();
    double z = n->Z();

    if (myEditCurrentArgument == (QWidget*)SpinBox_X) {
      SpinBox_X->SetValue(x);
      SpinBox_Y->SetValue(y);
      SpinBox_Z->SetValue(z);
    } else if (myEditCurrentArgument == (QWidget*)SpinBox_DX) {
      SpinBox_DX->SetValue(x - SpinBox_X->GetValue());
      SpinBox_DY->SetValue(y - SpinBox_Y->GetValue());
      SpinBox_DZ->SetValue(z - SpinBox_Z->GetValue());
    }
  }

  myBusy = true;
  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
    LineEditElements->setText(aString);
    LineEditElements->repaint();
    LineEditElements->setEnabled(false); // to update lineedit IPAL 19809
    LineEditElements->setEnabled(true);
    setNewMeshName();
  }
  myBusy = false;

  // OK
  if (myNbOkElements && IsMirrorOk()) {
    buttonOk->setEnabled(true);
    buttonApply->setEnabled(true);
  }
  onDisplaySimulation(true);
}
void SMESHGUI_SymmetryDlg::SetEditCurrentArgument ( ) [private, slot]

Definition at line 843 of file SMESHGUI_SymmetryDlg.cxx.

References CheckBoxMesh, SMESH.GetViewWindow(), LineEditElements, myEditCurrentArgument, myMeshOrSubMeshOrGroupFilter, mySelectionMgr, SMESHGUI_PreviewDlg.mySMESHGUI, SelectElementsButton, SelectionIntoArgument(), SelectPointButton, SelectVectorButton, SMESH.SetPointRepresentation(), SpinBox_DX, and SpinBox_X.

Referenced by SMESHGUI_SymmetryDlg().

{
  QPushButton* send = (QPushButton*)sender();

  disconnect(mySelectionMgr, 0, this, 0);
  mySelectionMgr->clearSelected();
  mySelectionMgr->clearFilters();

  if (send == SelectElementsButton) {
    myEditCurrentArgument = (QWidget*)LineEditElements;
    SMESH::SetPointRepresentation(false);
    if (CheckBoxMesh->isChecked()) {
      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
        aViewWindow->SetSelectionMode(ActorSelection);
      mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter);
    } else {
      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
        aViewWindow->SetSelectionMode(CellSelection);
    }
  } else if (send == SelectPointButton) {
    myEditCurrentArgument = (QWidget*)SpinBox_X;
    SMESH::SetPointRepresentation(true);
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(NodeSelection);
  } else if (send == SelectVectorButton) {
    myEditCurrentArgument = (QWidget*)SpinBox_DX;
    SMESH::SetPointRepresentation(true);

    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(NodeSelection);
  } else {
  }

  myEditCurrentArgument->setFocus();
  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
  SelectionIntoArgument();
}
void SMESHGUI_SymmetryDlg::setFilters ( ) [private, slot]
void SMESHGUI_PreviewDlg::setIsApplyAndClose ( const bool  theFlag) [protected, virtual, inherited]
void SMESHGUI_SymmetryDlg::setNewMeshName ( ) [private]

Definition at line 1061 of file SMESHGUI_SymmetryDlg.cxx.

References _PTR(), CheckBoxMesh, LineEditElements, LineEditNewMesh, myMesh, ex21_lamp.name, and SMESH.UniqueMeshName().

Referenced by onActionClicked(), and SelectionIntoArgument().

{
  LineEditNewMesh->setText("");
  if ( LineEditNewMesh->isEnabled() && !myMesh->_is_nil() ) {
    QString name;
    if ( CheckBoxMesh->isChecked() ) {
      name = LineEditElements->text();
    }
    else {
      _PTR(SObject) meshSO = SMESH::FindSObject( myMesh );
      name = meshSO->GetName().c_str();
    }
    if ( !name.isEmpty() )
      LineEditNewMesh->setText( SMESH::UniqueMeshName( name, "mirrored"));
  }
}
void SMESHGUI_PreviewDlg::showPreview ( ) [inherited]
void SMESHGUI_PreviewDlg::toDisplaySimulation ( ) [protected, slot, inherited]

Field Documentation

Definition at line 130 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

QButtonGroup* SMESHGUI_SymmetryDlg.ActionGroup [private]
QPushButton* SMESHGUI_SymmetryDlg.buttonApply [private]
QPushButton* SMESHGUI_SymmetryDlg.buttonCancel [private]

Definition at line 103 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

QPushButton* SMESHGUI_SymmetryDlg.buttonHelp [private]

Definition at line 105 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

QPushButton* SMESHGUI_SymmetryDlg.buttonOk [private]
QCheckBox* SMESHGUI_SymmetryDlg.CheckBoxMesh [private]
QButtonGroup* SMESHGUI_SymmetryDlg.GroupConstructors [private]

Definition at line 97 of file SMESHGUI_SymmetryDlg.h.

Referenced by GetConstructorId(), and SMESHGUI_SymmetryDlg().

Definition at line 107 of file SMESHGUI_SymmetryDlg.h.

Referenced by ConstructorsClicked(), and SMESHGUI_SymmetryDlg().

Definition at line 93 of file SMESHGUI_SymmetryDlg.h.

Referenced by Init(), onTextChange(), and SelectionIntoArgument().

Definition at line 91 of file SMESHGUI_SymmetryDlg.h.

Referenced by Init(), onTextChange(), and SelectionIntoArgument().

QPushButton* SMESHGUI_SymmetryDlg.myFilterBtn [private]

Definition at line 137 of file SMESHGUI_SymmetryDlg.h.

Referenced by onSelectMesh(), and SMESHGUI_SymmetryDlg().

Definition at line 138 of file SMESHGUI_SymmetryDlg.h.

Referenced by setFilters(), and ~SMESHGUI_SymmetryDlg().

Definition at line 135 of file SMESHGUI_SymmetryDlg.h.

Referenced by ClickOnHelp(), and SMESHGUI_SymmetryDlg().

Definition at line 81 of file SMESHGUI_SymmetryDlg.h.

Referenced by onSelectMesh(), and SMESHGUI_SymmetryDlg().

SMESH::SMESH_Mesh_var SMESHGUI_SymmetryDlg.myMesh [private]
QCheckBox* SMESHGUI_PreviewDlg.myPreviewCheckBox [protected, inherited]
SMESH::SMESH_IDSource_var SMESHGUI_SymmetryDlg.mySelectedObject [private]

Definition at line 89 of file SMESHGUI_SymmetryDlg.h.

Referenced by ClickOnApply(), onDisplaySimulation(), and SelectionIntoArgument().

LightApp_SelectionMgr* SMESHGUI_SymmetryDlg.mySelectionMgr [private]
SVTK_Selector* SMESHGUI_SymmetryDlg.mySelector [private]
SMESHGUI* SMESHGUI_PreviewDlg.mySMESHGUI [protected, inherited]

Definition at line 61 of file SMESHGUI_PreviewDlg.h.

Referenced by SMESHGUI_TranslationDlg.ActivateThisDialog(), ActivateThisDialog(), SMESHGUI_ScaleDlg.ActivateThisDialog(), SMESHGUI_RotationDlg.ActivateThisDialog(), SMESHGUI_RevolutionDlg.ActivateThisDialog(), SMESHGUI_ExtrusionDlg.ActivateThisDialog(), SMESHGUI_ExtrusionAlongPathDlg.ActivateThisDialog(), SMESHGUI_TranslationDlg.ClickOnApply(), ClickOnApply(), SMESHGUI_ScaleDlg.ClickOnApply(), SMESHGUI_RotationDlg.ClickOnApply(), SMESHGUI_RevolutionDlg.ClickOnApply(), SMESHGUI_ExtrusionDlg.ClickOnApply(), SMESHGUI_ExtrusionAlongPathDlg.ClickOnApply(), SMESHGUI_TranslationDlg.ClickOnCancel(), ClickOnCancel(), SMESHGUI_ScaleDlg.ClickOnCancel(), SMESHGUI_RotationDlg.ClickOnCancel(), SMESHGUI_TranslationDlg.ClickOnHelp(), ClickOnHelp(), SMESHGUI_ScaleDlg.ClickOnHelp(), SMESHGUI_RotationDlg.ClickOnHelp(), SMESHGUI_RevolutionDlg.ClickOnHelp(), SMESHGUI_ExtrusionDlg.ClickOnHelp(), SMESHGUI_ExtrusionAlongPathDlg.ClickOnHelp(), SMESHGUI_RevolutionDlg.closeEvent(), SMESHGUI_ExtrusionDlg.closeEvent(), SMESHGUI_TranslationDlg.ConstructorsClicked(), ConstructorsClicked(), SMESHGUI_ScaleDlg.ConstructorsClicked(), SMESHGUI_RevolutionDlg.ConstructorsClicked(), SMESHGUI_ExtrusionDlg.ConstructorsClicked(), SMESHGUI_ExtrusionAlongPathDlg.ConstructorsClicked(), SMESHGUI_TranslationDlg.DeactivateActiveDialog(), DeactivateActiveDialog(), SMESHGUI_ScaleDlg.DeactivateActiveDialog(), SMESHGUI_RotationDlg.DeactivateActiveDialog(), SMESHGUI_RevolutionDlg.DeactivateActiveDialog(), SMESHGUI_ExtrusionDlg.DeactivateActiveDialog(), SMESHGUI_ExtrusionAlongPathDlg.DeactivateActiveDialog(), SMESHGUI_TranslationDlg.onSelectMesh(), onSelectMesh(), SMESHGUI_ScaleDlg.onSelectMesh(), SMESHGUI_RotationDlg.onSelectMesh(), SMESHGUI_RevolutionDlg.onSelectMesh(), SMESHGUI_ExtrusionDlg.onSelectMesh(), SMESHGUI_RevolutionDlg.onSelectVectorMenu(), SMESHGUI_TranslationDlg.onTextChange(), onTextChange(), SMESHGUI_ScaleDlg.onTextChange(), SMESHGUI_RotationDlg.onTextChange(), SMESHGUI_RevolutionDlg.onTextChange(), SMESHGUI_ExtrusionDlg.onTextChange(), SMESHGUI_ExtrusionAlongPathDlg.onTextChange(), SMESHGUI_ExtrusionAlongPathDlg.reject(), SMESHGUI_TranslationDlg.SetEditCurrentArgument(), SetEditCurrentArgument(), SMESHGUI_ScaleDlg.SetEditCurrentArgument(), SMESHGUI_RotationDlg.SetEditCurrentArgument(), SMESHGUI_RevolutionDlg.SetEditCurrentArgument(), SMESHGUI_ExtrusionDlg.SetEditCurrentArgument(), SMESHGUI_ExtrusionAlongPathDlg.SetEditCurrentArgument(), SMESHGUI_TranslationDlg.setFilters(), setFilters(), SMESHGUI_ScaleDlg.setFilters(), SMESHGUI_RotationDlg.setFilters(), SMESHGUI_RevolutionDlg.setFilters(), SMESHGUI_ExtrusionDlg.setFilters(), SMESHGUI_ExtrusionAlongPathDlg.setFilters(), SMESHGUI_ExtrusionAlongPathDlg.SMESHGUI_ExtrusionAlongPathDlg(), SMESHGUI_ExtrusionDlg.SMESHGUI_ExtrusionDlg(), SMESHGUI_PreviewDlg.SMESHGUI_PreviewDlg(), SMESHGUI_RevolutionDlg.SMESHGUI_RevolutionDlg(), SMESHGUI_RotationDlg.SMESHGUI_RotationDlg(), SMESHGUI_ScaleDlg.SMESHGUI_ScaleDlg(), SMESHGUI_SymmetryDlg(), and SMESHGUI_TranslationDlg.SMESHGUI_TranslationDlg().

QRadioButton* SMESHGUI_SymmetryDlg.RadioButton1 [private]

Definition at line 98 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

QRadioButton* SMESHGUI_SymmetryDlg.RadioButton2 [private]

Definition at line 99 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

QRadioButton* SMESHGUI_SymmetryDlg.RadioButton3 [private]

Definition at line 100 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

Definition at line 109 of file SMESHGUI_SymmetryDlg.h.

Referenced by SetEditCurrentArgument(), and SMESHGUI_SymmetryDlg().

Definition at line 114 of file SMESHGUI_SymmetryDlg.h.

Referenced by SetEditCurrentArgument(), and SMESHGUI_SymmetryDlg().

Definition at line 123 of file SMESHGUI_SymmetryDlg.h.

Referenced by ConstructorsClicked(), and SMESHGUI_SymmetryDlg().

Definition at line 125 of file SMESHGUI_SymmetryDlg.h.

Referenced by ConstructorsClicked(), and SMESHGUI_SymmetryDlg().

Definition at line 127 of file SMESHGUI_SymmetryDlg.h.

Referenced by ConstructorsClicked(), and SMESHGUI_SymmetryDlg().

Definition at line 108 of file SMESHGUI_SymmetryDlg.h.

Referenced by onSelectMesh(), and SMESHGUI_SymmetryDlg().

Definition at line 113 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

Definition at line 121 of file SMESHGUI_SymmetryDlg.h.

Referenced by ConstructorsClicked(), and SMESHGUI_SymmetryDlg().

Definition at line 115 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

Definition at line 117 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

Definition at line 119 of file SMESHGUI_SymmetryDlg.h.

Referenced by SMESHGUI_SymmetryDlg().

Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS