Back to index

salome-geom  6.5.0
Public Member Functions | Protected Member Functions | Private Slots | Private Member Functions | Private Attributes
BasicGUI_EllipseDlg Class Reference

#include <BasicGUI_EllipseDlg.h>

List of all members.

Public Member Functions

 BasicGUI_EllipseDlg (GeometryGUI *, QWidget *=0, bool=false, Qt::WindowFlags=0)
 ~BasicGUI_EllipseDlg ()

Protected Member Functions

virtual GEOM::GEOM_IOperations_ptr createOperation ()
virtual bool isValid (QString &)
virtual bool execute (ObjectList &)
virtual void addSubshapesToStudy ()

Private Slots

void ClickOnOk ()
bool ClickOnApply ()
void ActivateThisDialog ()
void DeactivateActiveDialog ()
void SelectionIntoArgument ()
void SetEditCurrentArgument ()
void ValueChangedInSpinBox (double)
void SetDoubleSpinBoxStep (double)

Private Member Functions

void Init ()
void enterEvent (QEvent *)

Private Attributes

GEOM::GeomObjPtr myPoint
GEOM::GeomObjPtr myDir
GEOM::GeomObjPtr myMajor
DlgRef_3Sel2Spin * GroupPoints

Detailed Description

Definition at line 39 of file BasicGUI_EllipseDlg.h.


Constructor & Destructor Documentation

BasicGUI_EllipseDlg::BasicGUI_EllipseDlg ( GeometryGUI *  theGeometryGUI,
QWidget *  parent = 0,
bool  modal = false,
Qt::WindowFlags  fl = 0 
)

Definition at line 55 of file BasicGUI_EllipseDlg.cxx.

  : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl )
{
  QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ELLIPSE_PV" ) ) );
  QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );

  setWindowTitle( tr( "GEOM_ELLIPSE_TITLE" ) );

  /***************************************************************/
  mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ELLIPSE" ) );
  mainFrame()->RadioButton1->setIcon( image0 );
  mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
  mainFrame()->RadioButton2->close();
  mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
  mainFrame()->RadioButton3->close();

  GroupPoints = new DlgRef_3Sel2Spin( centralWidget() );
  GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
  GroupPoints->TextLabel1->setText( tr( "%1 (%2)" ).arg( tr( "GEOM_CENTER" ), tr( "ORIGIN_DEFAULT" ) ) );
  GroupPoints->TextLabel2->setText( tr( "%1 (%2)" ).arg( tr( "GEOM_VECTOR" ), tr( "Z_AXIS_DEFAULT" ) ) );
  GroupPoints->TextLabel3->setText( tr( "%1 (%2)" ).arg( tr( "GEOM_VECTOR_MAJOR" ), tr( "X_AXIS_DEFAULT" ) ) );
  GroupPoints->TextLabel4->setText( tr( "GEOM_RADIUS_MAJOR" ) );
  GroupPoints->TextLabel5->setText( tr( "GEOM_RADIUS_MINOR" ) );
  GroupPoints->PushButton1->setIcon( image1 );
  GroupPoints->PushButton2->setIcon( image1 );
  GroupPoints->PushButton3->setIcon( image1 );

  GroupPoints->LineEdit1->setReadOnly( true );
  GroupPoints->LineEdit2->setReadOnly( true );
  GroupPoints->LineEdit3->setReadOnly( true );
  GroupPoints->LineEdit1->setEnabled( true );
  GroupPoints->LineEdit2->setEnabled( false );
  GroupPoints->LineEdit3->setEnabled( false );

  QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
  layout->setMargin( 0 ); layout->setSpacing( 6 );
  layout->addWidget( GroupPoints );
  /***************************************************************/

  setHelpFileName( "create_ellipse_page.html" );

  Init();
}

Here is the call graph for this function:

Definition at line 105 of file BasicGUI_EllipseDlg.cxx.

{
}

Member Function Documentation

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

Definition at line 319 of file BasicGUI_EllipseDlg.cxx.

{
  GEOMBase_Skeleton::ActivateThisDialog();
  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
           this, SLOT( SelectionIntoArgument() ) );
  
  GroupPoints->LineEdit1->setFocus();
  myEditCurrentArgument = GroupPoints->LineEdit1;

  GroupPoints->LineEdit1->setText( "" );
  GroupPoints->LineEdit2->setText( "" );
  GroupPoints->LineEdit3->setText( "" );

  myPoint.nullify();
  myDir.nullify();
  //globalSelection( GEOM_POINT );
  globalSelection(); // close local contexts, if any
  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void BasicGUI_EllipseDlg::addSubshapesToStudy ( ) [protected, virtual]

Definition at line 427 of file BasicGUI_EllipseDlg.cxx.

{
  GEOMBase::PublishSubObject( myPoint.get() );
  GEOMBase::PublishSubObject( myDir.get() );
  GEOMBase::PublishSubObject( myMajor.get() );
}

Here is the call graph for this function:

bool BasicGUI_EllipseDlg::ClickOnApply ( ) [private, slot]

Definition at line 192 of file BasicGUI_EllipseDlg.cxx.

{
  if ( !onAccept() )
    return false;

  initName();

  // reset
  myPoint.nullify();
  myDir.nullify();
  myMajor.nullify();
  GroupPoints->LineEdit1->setText( "" );
  GroupPoints->LineEdit2->setText( "" );
  GroupPoints->LineEdit3->setText( "" );
  GroupPoints->PushButton1->setDown(true);
  GroupPoints->PushButton2->setDown(false);
  GroupPoints->PushButton3->setDown(false);
  GroupPoints->LineEdit1->setEnabled( true );
  GroupPoints->LineEdit2->setEnabled( false );
  GroupPoints->LineEdit3->setEnabled( false );
  myEditCurrentArgument = GroupPoints->LineEdit1;

  globalSelection(); // close local contexts, if any
  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
  displayPreview(true);
  
  return true;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void BasicGUI_EllipseDlg::ClickOnOk ( ) [private, slot]

Definition at line 180 of file BasicGUI_EllipseDlg.cxx.

{
  setIsApplyAndClose( true );
  if ( ClickOnApply() )
    ClickOnCancel();
}

Here is the call graph for this function:

Here is the caller graph for this function:

GEOM::GEOM_IOperations_ptr BasicGUI_EllipseDlg::createOperation ( ) [protected, virtual]

Definition at line 372 of file BasicGUI_EllipseDlg.cxx.

{
  return myGeomGUI->GetGeomGen()->GetICurvesOperations( getStudyId() );
}

Definition at line 343 of file BasicGUI_EllipseDlg.cxx.

{
  // myGeomGUI->SetState( -1 );
  GEOMBase_Skeleton::DeactivateActiveDialog();
}

Here is the caller graph for this function:

void BasicGUI_EllipseDlg::enterEvent ( QEvent *  ) [private]

Definition at line 353 of file BasicGUI_EllipseDlg.cxx.

{
  if ( !mainFrame()->GroupConstructors->isEnabled() )
    ActivateThisDialog();
}

Here is the call graph for this function:

bool BasicGUI_EllipseDlg::execute ( ObjectList objects) [protected, virtual]

Definition at line 402 of file BasicGUI_EllipseDlg.cxx.

{
  double aMajorR = GroupPoints->SpinBox_DX->value();
  double aMinorR = GroupPoints->SpinBox_DY->value();

  QStringList aParameters;
  aParameters<<GroupPoints->SpinBox_DX->text();
  aParameters<<GroupPoints->SpinBox_DY->text();
  
  GEOM::GEOM_ICurvesOperations_var anOper = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() );
  GEOM::GEOM_Object_var anObj = myMajor ? 
    anOper->MakeEllipseVec( myPoint.get(), myDir.get(), aMajorR, aMinorR, myMajor.get() ) :
    anOper->MakeEllipse   ( myPoint.get(), myDir.get(), aMajorR, aMinorR );
  if ( !anObj->_is_nil() ) {
    if ( !IsPreview() )
      anObj->SetParameters(aParameters.join(":").toLatin1().constData());
    objects.push_back( anObj._retn() );
  }
  return true;
}

Here is the call graph for this function:

void BasicGUI_EllipseDlg::Init ( ) [private]

Definition at line 114 of file BasicGUI_EllipseDlg.cxx.

{
  /* init variables */
  myEditCurrentArgument = GroupPoints->LineEdit1;
  GroupPoints->PushButton1->setDown(true);

  myPoint.nullify();
  myDir.nullify();
  myMajor.nullify();

  /* Get setting of step value from file configuration */
  SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
  double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
  
  double aMajorR( 200. ), aMinorR( 100. );

  /* min, max, step and decimals for spin boxes & initial values */
  initSpinBox( GroupPoints->SpinBox_DX, 0.000001, COORD_MAX, step, "length_precision" );
  initSpinBox( GroupPoints->SpinBox_DY, 0.000001, COORD_MAX, step, "length_precision" );
  GroupPoints->SpinBox_DX->setValue( aMajorR );
  GroupPoints->SpinBox_DY->setValue( aMinorR );

  /* signals and slots connections */
  connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
  connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ),        this, SLOT( ClickOnCancel() ) );

  connect( buttonOk(),     SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
  connect( buttonApply(),  SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );

  connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
  connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
  connect( GroupPoints->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );

  connect( GroupPoints->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
  connect( GroupPoints->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );

  connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) );
  
  connect( myGeomGUI->getApp()->selectionMgr(), 
          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );

  initName( tr( "GEOM_ELLIPSE" ) );

  globalSelection(); // close local contexts, if any
  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );

  resize( minimumSizeHint() );
  SelectionIntoArgument();
  displayPreview(true);
}

Here is the call graph for this function:

Here is the caller graph for this function:

bool BasicGUI_EllipseDlg::isValid ( QString &  msg) [protected, virtual]

Definition at line 381 of file BasicGUI_EllipseDlg.cxx.

{
  // nil point means origin of global CS
  // nil vector means Z axis
  bool ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) &&
            GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() );
  if ( ok ) {
    double aMajorR = GroupPoints->SpinBox_DX->value();
    double aMinorR = GroupPoints->SpinBox_DY->value();
    if ( aMajorR < aMinorR ) {
      msg = tr( "GEOM_ELLIPSE_ERROR_1" );
      ok = false;
    }
  }
  return ok;
}

Definition at line 225 of file BasicGUI_EllipseDlg.cxx.

{
  myEditCurrentArgument->setText( "" );

  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
  SALOME_ListIO aSelList;
  aSelMgr->selectedObjects(aSelList);

  if (aSelList.Extent() != 1) {
    if      (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint.nullify();
    else if (myEditCurrentArgument == GroupPoints->LineEdit2) myDir.nullify();
    else if (myEditCurrentArgument == GroupPoints->LineEdit3) myMajor.nullify();
    return;
  }

  TopAbs_ShapeEnum aNeedType = ( myEditCurrentArgument == GroupPoints->LineEdit2 || 
                             myEditCurrentArgument == GroupPoints->LineEdit3 ) ?
    TopAbs_EDGE : TopAbs_VERTEX;
  GEOM::GeomObjPtr aSelectedObject = getSelected( aNeedType );
  TopoDS_Shape aShape;
  if ( aSelectedObject && GEOMBase::GetShape( aSelectedObject.get(), aShape ) && !aShape.IsNull() ) {
    QString aName = GEOMBase::GetName( aSelectedObject.get() );
    myEditCurrentArgument->setText( aName );
    if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
      myPoint = aSelectedObject;
      if ( myPoint && !myDir )
        GroupPoints->PushButton2->click();
    }
    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
      myDir = aSelectedObject;
      if ( myDir && !myMajor )
        GroupPoints->PushButton3->click();
    }
    else if ( myEditCurrentArgument == GroupPoints->LineEdit3 ) {
      myMajor = aSelectedObject;
      if ( myMajor && !myPoint )
        GroupPoints->PushButton1->click();
    }
  }

  displayPreview(true);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void BasicGUI_EllipseDlg::SetDoubleSpinBoxStep ( double  step) [private, slot]

Definition at line 169 of file BasicGUI_EllipseDlg.cxx.

{
  GroupPoints->SpinBox_DX->setSingleStep(step);
  GroupPoints->SpinBox_DY->setSingleStep(step);
}

Here is the caller graph for this function:

Definition at line 273 of file BasicGUI_EllipseDlg.cxx.

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

  if ( send == GroupPoints->PushButton1 ) {
    myEditCurrentArgument = GroupPoints->LineEdit1;
    GroupPoints->PushButton2->setDown(false);
    GroupPoints->PushButton3->setDown(false);
    GroupPoints->LineEdit1->setEnabled( true );
    GroupPoints->LineEdit2->setEnabled( false );
    GroupPoints->LineEdit3->setEnabled( false );
  }
  else if ( send == GroupPoints->PushButton2 ) {
    myEditCurrentArgument = GroupPoints->LineEdit2;
    GroupPoints->PushButton1->setDown(false);
    GroupPoints->PushButton3->setDown(false);
    GroupPoints->LineEdit1->setEnabled( false );
    GroupPoints->LineEdit2->setEnabled( true );
    GroupPoints->LineEdit3->setEnabled( false );
  }
  else if ( send == GroupPoints->PushButton3 ) {
    myEditCurrentArgument = GroupPoints->LineEdit3;
    GroupPoints->PushButton1->setDown(false);
    GroupPoints->PushButton2->setDown(false);
    GroupPoints->LineEdit1->setEnabled( false );
    GroupPoints->LineEdit2->setEnabled( false );
    GroupPoints->LineEdit3->setEnabled( true );
  }

  TopAbs_ShapeEnum aNeedType = ( myEditCurrentArgument == GroupPoints->LineEdit2 || 
                             myEditCurrentArgument == GroupPoints->LineEdit3 ) ? 
    TopAbs_EDGE : TopAbs_VERTEX;
  globalSelection(); // close local contexts, if any
  localSelection( GEOM::GEOM_Object::_nil(), aNeedType );
  
  myEditCurrentArgument->setFocus();
  //SelectionIntoArgument();
  send->setDown(true);
  displayPreview(true);
}

Here is the caller graph for this function:

void BasicGUI_EllipseDlg::ValueChangedInSpinBox ( double  newValue) [private, slot]

Definition at line 363 of file BasicGUI_EllipseDlg.cxx.

{
  displayPreview(true);
}

Here is the caller graph for this function:


Member Data Documentation

DlgRef_3Sel2Spin* BasicGUI_EllipseDlg::GroupPoints [private]

Definition at line 61 of file BasicGUI_EllipseDlg.h.

Definition at line 59 of file BasicGUI_EllipseDlg.h.

Definition at line 59 of file BasicGUI_EllipseDlg.h.

Definition at line 59 of file BasicGUI_EllipseDlg.h.


The documentation for this class was generated from the following files: