Back to index

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

#include <BuildGUI_WireDlg.h>

List of all members.

Public Member Functions

 BuildGUI_WireDlg (GeometryGUI *, QWidget *=0)
 ~BuildGUI_WireDlg ()

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 TypeButtonClicked ()

Private Member Functions

void Init ()
void enterEvent (QEvent *)

Private Attributes

QList< GEOM::GeomObjPtrmyEdgesAndWires
DlgRef_1Sel1Spin * GroupArgs
DlgRef_3Radio * GroupType

Detailed Description

Definition at line 40 of file BuildGUI_WireDlg.h.


Constructor & Destructor Documentation

BuildGUI_WireDlg::BuildGUI_WireDlg ( GeometryGUI *  theGeometryGUI,
QWidget *  parent = 0 
)

Definition at line 53 of file BuildGUI_WireDlg.cxx.

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

  setWindowTitle( tr( "GEOM_WIRE_TITLE" ) );

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

  GroupType = new DlgRef_3Radio( centralWidget() );
  GroupType->GroupBox1->setTitle( tr( "GEOM_OBJECT_TYPE" ) );
  GroupType->RadioButton1->setText( tr( "GEOM_EDGE" ) );
  GroupType->RadioButton2->setText( tr( "GEOM_WIRE" ) );
  GroupType->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
  GroupType->RadioButton3->close();

  GroupArgs = new DlgRef_1Sel1Spin( centralWidget() );
  GroupArgs->GroupBox1->setTitle( tr( "GEOM_WIRE_CONNECT" ) );
  GroupArgs->TextLabel1->setText( tr( "GEOM_OBJECTS" ) );
  GroupArgs->PushButton1->setIcon( image1 );
  GroupArgs->LineEdit1->setReadOnly( true );

  GroupArgs->TextLabel2->setText( tr( "GEOM_TOLERANCE" ) );
  double SpecificStep = 0.0001;
  double prec = Precision::Confusion();
  initSpinBox(GroupArgs->SpinBox_DX, prec, MAX_NUMBER, SpecificStep, "len_tol_precision" );
  GroupArgs->SpinBox_DX->setValue(prec);

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

  setHelpFileName( "create_wire_page.html" );

  /* Initialisations */
  Init();
}

Here is the call graph for this function:

Definition at line 105 of file BuildGUI_WireDlg.cxx.

{
  // no need to delete child widgets, Qt does it all for us
}

Member Function Documentation

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

Definition at line 232 of file BuildGUI_WireDlg.cxx.

{
  GEOMBase_Skeleton::ActivateThisDialog();
  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );

  TypeButtonClicked();
}

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 303 of file BuildGUI_WireDlg.cxx.

{
  for ( int i = 0; i < myEdgesAndWires.count(); i++ )
    GEOMBase::PublishSubObject( myEdgesAndWires[i].get() );
}
bool BuildGUI_WireDlg::ClickOnApply ( ) [private, slot]

Definition at line 160 of file BuildGUI_WireDlg.cxx.

{
  if ( !onAccept() )
    return false;

  initName();
  TypeButtonClicked();
  myEdgesAndWires.clear();
  myEditCurrentArgument->setText( "" );
  return true;
}

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 148 of file BuildGUI_WireDlg.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 BuildGUI_WireDlg::createOperation ( ) [protected, virtual]

Definition at line 264 of file BuildGUI_WireDlg.cxx.

{
  return getGeomEngine()->GetIShapesOperations( getStudyId() );
}
void BuildGUI_WireDlg::DeactivateActiveDialog ( ) [private, slot]

Definition at line 245 of file BuildGUI_WireDlg.cxx.

Here is the caller graph for this function:

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

Definition at line 254 of file BuildGUI_WireDlg.cxx.

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

Here is the call graph for this function:

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

Definition at line 282 of file BuildGUI_WireDlg.cxx.

{
  GEOM::GEOM_IShapesOperations_var anOper = GEOM::GEOM_IShapesOperations::_narrow( getOperation() );

  GEOM::ListOfGO_var objlist = new GEOM::ListOfGO();
  objlist->length( myEdgesAndWires.count() );
  for ( int i = 0; i < myEdgesAndWires.count(); i++ )
    objlist[i] = myEdgesAndWires[i].copy();

  GEOM::GEOM_Object_var anObj = anOper->MakeWire(objlist.in(), GroupArgs->SpinBox_DX->value());

  if (!anObj->_is_nil())
    objects.push_back(anObj._retn());

  return true;
}
void BuildGUI_WireDlg::Init ( ) [private]

Definition at line 115 of file BuildGUI_WireDlg.cxx.

{
  /* init variables */
  myEditCurrentArgument = GroupArgs->LineEdit1;
  GroupArgs->LineEdit1->setReadOnly( true );
  GroupType->RadioButton1->setChecked(true);
  
  myEdgesAndWires.clear();

  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );

  /* signals and slots connections */
  connect( buttonOk(),    SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
  connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
  connect( GroupArgs->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );

  connect( GroupType->RadioButton1, SIGNAL( clicked() ), this, SLOT( TypeButtonClicked() ) );
  connect( GroupType->RadioButton2, SIGNAL( clicked() ), this, SLOT( TypeButtonClicked() ) );

  connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
  connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ),        this, SLOT( ClickOnCancel() ) );
  
  initName( tr( "GEOM_WIRE" ) );
  SelectionIntoArgument();
}

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 273 of file BuildGUI_WireDlg.cxx.

{
  return GroupArgs->SpinBox_DX->isValid(msg, !IsPreview()) && !myEdgesAndWires.isEmpty();
}
void BuildGUI_WireDlg::SelectionIntoArgument ( ) [private, slot]

Definition at line 195 of file BuildGUI_WireDlg.cxx.

{
  myEditCurrentArgument->setText( "" );

  QList<TopAbs_ShapeEnum> types;
  types << TopAbs_EDGE << TopAbs_WIRE;
  myEdgesAndWires = getSelected( types, -1 );

  if ( !myEdgesAndWires.isEmpty() ) {
    QString aName = myEdgesAndWires.count() > 1 ? QString( "%1_objects").arg( myEdgesAndWires.count() ) : GEOMBase::GetName( myEdgesAndWires[0].get() );
    myEditCurrentArgument->setText( aName );
  }
}

Here is the caller graph for this function:

void BuildGUI_WireDlg::SetEditCurrentArgument ( ) [private, slot]

Definition at line 214 of file BuildGUI_WireDlg.cxx.

{
  QPushButton* send = (QPushButton*)sender();
  if ( send != GroupArgs->PushButton1 )
    return;

  TypeButtonClicked();
  myEditCurrentArgument = GroupArgs->LineEdit1;

  myEditCurrentArgument->setFocus();
  SelectionIntoArgument();
}

Here is the call graph for this function:

Here is the caller graph for this function:

void BuildGUI_WireDlg::TypeButtonClicked ( ) [private, slot]

Definition at line 176 of file BuildGUI_WireDlg.cxx.

{
  if ( GroupType->RadioButton1->isChecked() ) {
    globalSelection(); // close local contexts, if any
    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
    GroupArgs->TextLabel1->setText( tr( "GEOM_EDGE" ) );
  }
  else if ( GroupType->RadioButton2->isChecked() ) {
    globalSelection(); // close local contexts, if any
    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_WIRE );
    GroupArgs->TextLabel1->setText( tr( "GEOM_WIRE" ) );
  }
  SelectionIntoArgument();
}

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

DlgRef_1Sel1Spin* BuildGUI_WireDlg::GroupArgs [private]

Definition at line 62 of file BuildGUI_WireDlg.h.

DlgRef_3Radio* BuildGUI_WireDlg::GroupType [private]

Definition at line 63 of file BuildGUI_WireDlg.h.

Definition at line 60 of file BuildGUI_WireDlg.h.


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