Back to index

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

#include <MeasureGUI_CheckSelfIntersectionsDlg.h>

Inheritance diagram for MeasureGUI_CheckSelfIntersectionsDlg:
Inheritance graph
[legend]
Collaboration diagram for MeasureGUI_CheckSelfIntersectionsDlg:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 MeasureGUI_CheckSelfIntersectionsDlg (GeometryGUI *, QWidget *)
 ~MeasureGUI_CheckSelfIntersectionsDlg ()

Protected Slots

virtual void ClickOnCancel ()
virtual void ClickOnHelp ()
virtual void DeactivateActiveDialog ()
virtual void ActivateThisDialog ()
virtual void SelectionIntoArgument ()
virtual void LineEditReturnPressed ()
virtual void SetEditCurrentArgument ()

Protected Member Functions

virtual void processObject ()
void enterEvent (QEvent *)
void closeEvent (QCloseEvent *)
void keyPressEvent (QKeyEvent *)
void redisplayPreview ()
GEOM_Displayer * getDisplayer ()
virtual bool isValid (QString &)
virtual SALOME_Prs * buildPrs ()
virtual void activateSelection ()
virtual GEOM::GEOM_IOperations_ptr createOperation ()
MeasureGUI_SkeletonBoxmainFrame () const
QWidget * centralWidget () const
QPushButton * buttonClose () const
QPushButton * buttonHelp () const

Protected Attributes

QPushButton * mySelBtn
QLineEdit * mySelEdit
GEOM::GEOM_Object_var myObj
GeometryGUI * myGeomGUI
GEOM_Displayer * myDisplayer
QString myHelpFileName
MeasureGUI_SkeletonBoxmyMainFrame

Private Slots

void onErrorsListSelectionChanged ()
void onSubShapesListSelectionChanged ()

Private Member Functions

void Init ()

Private Attributes

MeasureGUI_1Sel1TextView2ListBoxmyGrp
GEOM::ListOfLong_var myInters

Detailed Description

Definition at line 38 of file MeasureGUI_CheckSelfIntersectionsDlg.h.


Constructor & Destructor Documentation

Definition at line 55 of file MeasureGUI_CheckSelfIntersectionsDlg.cxx.

  : MeasureGUI_Skeleton(GUI, parent, false)
{
  SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
  QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_CHECK_SELF_INTERSECTIONS")));
  QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT")));

  setWindowTitle(tr("GEOM_CHECK_SELF_INTERSECTIONS"));

  /***************************************************************/
  mainFrame()->GroupConstructors->setTitle(tr("GEOM_CHECK_SELF_INTERSECTIONS"));
  mainFrame()->RadioButton1->setIcon(image0);

  myGrp = new MeasureGUI_1Sel1TextView2ListBox (centralWidget());
  myGrp->GroupBox1->setTitle(tr("GEOM_CHECK_INFOS"));
  myGrp->TextLabel1->setText(tr("GEOM_OBJECT"));

  myGrp->TextView1->setReadOnly(true);
  QFont aFont (TEXTEDIT_FONT_FAMILY, TEXTEDIT_FONT_SIZE);
  aFont.setStyleHint(QFont::TypeWriter, QFont::PreferAntialias);
  myGrp->TextView1->setFont(aFont);

  myGrp->PushButton1->setIcon(image1);
  myGrp->LineEdit1->setReadOnly(true);

  myGrp->TextLabel2->setText(tr("GEOM_CHECK_BLOCKS_COMPOUND_ERRORS"));
  myGrp->TextLabel3->setText(tr("GEOM_CHECK_BLOCKS_COMPOUND_SUBSHAPES"));

  myGrp->ListBox2->setSelectionMode(QAbstractItemView::ExtendedSelection);

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

  /***************************************************************/

  myHelpFileName = "using_measurement_tools_page.html#check_self_intersections_anchor";

  /* Initialisation */
  Init();
}

Here is the call graph for this function:

Definition at line 101 of file MeasureGUI_CheckSelfIntersectionsDlg.cxx.

{
}

Member Function Documentation

void MeasureGUI_Skeleton::activateSelection ( ) [protected, virtual, inherited]

Reimplemented in MeasureGUI_PropertiesDlg, and MeasureGUI_PointDlg.

Definition at line 348 of file MeasureGUI_Skeleton.cxx.

{
  globalSelection( GEOM_ALLSHAPES );
}

Here is the caller graph for this function:

void MeasureGUI_Skeleton::ActivateThisDialog ( ) [protected, virtual, slot, inherited]

Definition at line 215 of file MeasureGUI_Skeleton.cxx.

{
  myGeomGUI->EmitSignalDeactivateDialog();
  
  setEnabled( true );
  
  myGeomGUI->SetActiveDialogBox( ( QDialog* )this );

  LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr();
  if ( aSel )
    connect( aSel, SIGNAL( currentSelectionChanged() ), 
             this, SLOT  ( SelectionIntoArgument() ) ) ;
  
  redisplayPreview();
  activateSelection();
}

Here is the call graph for this function:

Here is the caller graph for this function:

SALOME_Prs * MeasureGUI_Skeleton::buildPrs ( ) [protected, virtual, inherited]

Reimplemented in MeasureGUI_DistanceDlg, MeasureGUI_PropertiesDlg, MeasureGUI_BndBoxDlg, and MeasureGUI_AngleDlg.

Definition at line 310 of file MeasureGUI_Skeleton.cxx.

{
  return 0;
}

Here is the caller graph for this function:

QPushButton * MeasureGUI_Skeleton::buttonClose ( ) const [protected, inherited]

Definition at line 408 of file MeasureGUI_Skeleton.cxx.

{
  return mainFrame()->buttonClose;
}

Here is the call graph for this function:

Here is the caller graph for this function:

QPushButton * MeasureGUI_Skeleton::buttonHelp ( ) const [protected, inherited]

Definition at line 413 of file MeasureGUI_Skeleton.cxx.

{
  return mainFrame()->buttonHelp;
}

Here is the call graph for this function:

Here is the caller graph for this function:

QWidget * MeasureGUI_Skeleton::centralWidget ( ) const [protected, inherited]

Definition at line 403 of file MeasureGUI_Skeleton.cxx.

{
  return mainFrame()->GroupMedium;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void MeasureGUI_Skeleton::ClickOnCancel ( ) [protected, virtual, slot, inherited]

Definition at line 141 of file MeasureGUI_Skeleton.cxx.

{
  close();
}

Here is the caller graph for this function:

void MeasureGUI_Skeleton::ClickOnHelp ( ) [protected, virtual, slot, inherited]

Definition at line 150 of file MeasureGUI_Skeleton.cxx.

{
  LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() );
  if ( app ) {
    app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->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 ) );
  }
}

Here is the caller graph for this function:

void MeasureGUI_Skeleton::closeEvent ( QCloseEvent *  e) [protected, inherited]

Definition at line 286 of file MeasureGUI_Skeleton.cxx.

{
  LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr();
  if ( aSel )
    disconnect( aSel, 0, this, 0 );
  QDialog::closeEvent( e );
}
GEOM::GEOM_IOperations_ptr MeasureGUI_Skeleton::createOperation ( ) [protected, virtual, inherited]

Definition at line 377 of file MeasureGUI_Skeleton.cxx.

{
  return getGeomEngine()->GetIMeasureOperations( getStudyId() );
}
void MeasureGUI_Skeleton::DeactivateActiveDialog ( ) [protected, virtual, slot, inherited]

Definition at line 197 of file MeasureGUI_Skeleton.cxx.

{
  setEnabled( false );
  
  LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr();
  if ( aSel )
    disconnect( aSel, 0, this, 0 );
  
  myGeomGUI->SetActiveDialogBox( 0 );

  globalSelection();
}

Here is the caller graph for this function:

void MeasureGUI_Skeleton::enterEvent ( QEvent *  ) [protected, inherited]

Definition at line 298 of file MeasureGUI_Skeleton.cxx.

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

Here is the call graph for this function:

GEOM_Displayer * MeasureGUI_Skeleton::getDisplayer ( ) [protected, inherited]

Definition at line 366 of file MeasureGUI_Skeleton.cxx.

{
  if ( !myDisplayer )
    myDisplayer = new GEOM_Displayer( getStudy() );
  return myDisplayer;
}

Here is the caller graph for this function:

Reimplemented from MeasureGUI_Skeleton.

Definition at line 109 of file MeasureGUI_CheckSelfIntersectionsDlg.cxx.

{
  mySelBtn = myGrp->PushButton1;
  mySelEdit = myGrp->LineEdit1;
  MeasureGUI_Skeleton::Init();

  connect(myGrp->ListBox1, SIGNAL(itemSelectionChanged()), SLOT(onErrorsListSelectionChanged()));
  connect(myGrp->ListBox2, SIGNAL(itemSelectionChanged()), SLOT(onSubShapesListSelectionChanged()));
}

Here is the call graph for this function:

Here is the caller graph for this function:

bool MeasureGUI_Skeleton::isValid ( QString &  ) [protected, virtual, inherited]

Reimplemented in MeasureGUI_DistanceDlg, and MeasureGUI_AngleDlg.

Definition at line 357 of file MeasureGUI_Skeleton.cxx.

{
  return !myObj->_is_nil();
}

Here is the caller graph for this function:

void MeasureGUI_Skeleton::keyPressEvent ( QKeyEvent *  e) [protected, inherited]

Definition at line 386 of file MeasureGUI_Skeleton.cxx.

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

  if ( e->key() == Qt::Key_F1 ) {
    e->accept();
    ClickOnHelp();
  }
}

Here is the call graph for this function:

void MeasureGUI_Skeleton::LineEditReturnPressed ( ) [protected, virtual, slot, inherited]

Reimplemented in MeasureGUI_DistanceDlg, and MeasureGUI_AngleDlg.

Definition at line 173 of file MeasureGUI_Skeleton.cxx.

{
  /* User name of object input management                          */
  /* If successfull the selection is changed and signal emitted... */
  /* so SelectionIntoArgument() is automatically called.           */
  
  if ( mySelEdit ) {
    const QString objectUserName = mySelEdit->text();
    QWidget* thisWidget = ( QWidget* )this;
    
    LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
    SALOME_ListIO aSelList;
    aSelMgr->selectedObjects(aSelList);

    if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList))
      mySelEdit->setText(objectUserName);
  }
}

Here is the caller graph for this function:

MeasureGUI_SkeletonBox * MeasureGUI_Skeleton::mainFrame ( ) const [protected, inherited]

Definition at line 398 of file MeasureGUI_Skeleton.cxx.

{
  return myMainFrame;
}

Here is the caller graph for this function:

Definition at line 178 of file MeasureGUI_CheckSelfIntersectionsDlg.cxx.

{
  erasePreview();
  int aCurItem = myGrp->ListBox1->currentRow();
  if (aCurItem < 0)
    return;

  //int nbPairs = myInters->length()/2;

  QStringList aSubShapeList;
  TopoDS_Shape aSelShape;
  if (!myObj->_is_nil() && GEOMBase::GetShape(myObj, aSelShape)) {
    TopTools_IndexedMapOfShape anIndices;
    TopExp::MapShapes(aSelShape, anIndices);

    TopoDS_Shape aSubShape = anIndices.FindKey(myInters[aCurItem*2]);
    QString aType = GEOMBase::GetShapeTypeString(aSubShape);
    if (!aType.isEmpty())
      aSubShapeList.append(QString("%1_%2").arg(aType).arg(myInters[aCurItem*2]));
    aSubShape = anIndices.FindKey(myInters[aCurItem*2 + 1]);
    aType = GEOMBase::GetShapeTypeString(aSubShape);
    if (!aType.isEmpty())
      aSubShapeList.append(QString("%1_%2").arg(aType).arg(myInters[aCurItem*2 + 1]));
  }
  myGrp->ListBox2->clear();
  myGrp->ListBox2->addItems(aSubShapeList);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 210 of file MeasureGUI_CheckSelfIntersectionsDlg.cxx.

{
  erasePreview();

  // Current pair
  int aErrCurItem = myGrp->ListBox1->currentRow();
  if (aErrCurItem < 0)
    return;

  // Selected IDs
  QList<int> aIds;
  for (int i = 0, n = myGrp->ListBox2->count(); i < n; i++) {
    if (myGrp->ListBox2->item(i)->isSelected())
      aIds.append(i);
  }
  if (aIds.count() < 1)
    return;

  TopoDS_Shape aSelShape;
  TopoDS_Shape aSubShape;
  TopTools_IndexedMapOfShape anIndices;
  if (!myObj->_is_nil() && GEOMBase::GetShape(myObj, aSelShape)) {
    SALOME_Prs* aPrs = 0;
    TopExp::MapShapes(aSelShape, anIndices);
    QList<int>::iterator it;
    for (it = aIds.begin(); it != aIds.end(); ++it) {
      aSubShape = anIndices.FindKey(myInters[aErrCurItem*2 + (*it)]);
      try {
        getDisplayer()->SetColor(Quantity_NOC_RED);
        getDisplayer()->SetWidth(3);
        getDisplayer()->SetToActivate(false);
        aPrs = !aSubShape.IsNull() ? getDisplayer()->BuildPrs(aSubShape) : 0;
        if (aPrs)
          displayPreview(aPrs, true);
      }
      catch (const SALOME::SALOME_Exception& e) {
        SalomeApp_Tools::QtCatchCorbaException(e);
      }
    }
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Reimplemented from MeasureGUI_Skeleton.

Definition at line 123 of file MeasureGUI_CheckSelfIntersectionsDlg.cxx.

{
  myGrp->ListBox1->clear();
  myGrp->ListBox2->clear();
  erasePreview();

  if (myObj->_is_nil())
    return;

  QString aMsg ("");
  GEOM::GEOM_IMeasureOperations_var anOper = GEOM::GEOM_IMeasureOperations::_narrow(getOperation());
  bool isGood = false, isFailed = false;
  int nbPairs = 0;
  try {
    isGood = anOper->CheckSelfIntersections(myObj, myInters);
    nbPairs = myInters->length()/2;
    if (nbPairs*2 != myInters->length()) {
      isFailed = true;
    }
  }
  catch (const SALOME::SALOME_Exception& e) {
    SalomeApp_Tools::QtCatchCorbaException(e);
    isFailed = true;
  }
  if (isFailed) {
    aMsg += tr("GEOM_CHECK_SELF_INTERSECTIONS_FAILED");
    myGrp->TextView1->setText(aMsg);
    return;
  }

  // Status
  if (isGood) {
    aMsg += tr("GEOM_NO_SELF_INTERSECTIONS");
  }
  else {
    aMsg += tr("GEOM_SELF_INTERSECTIONS_FOUND");
  }
  myGrp->TextView1->setText(aMsg);

  // Pairs
  QStringList aErrList;
  QString aErrStr ("");
  for (int i = 1; i <= nbPairs; i++) {
    aErrStr = "Intersection # ";
    aErrStr += QString::number(i);
    aErrList.append(aErrStr);
  }

  myGrp->ListBox1->addItems(aErrList);
}
void MeasureGUI_Skeleton::redisplayPreview ( ) [protected, inherited]

Definition at line 319 of file MeasureGUI_Skeleton.cxx.

{
  QString aMess;
  if ( !isValid( aMess ) ) {
    erasePreview( true );
    return;
  }

  erasePreview( false );

  try {
    SUIT_OverrideCursor();

    getDisplayer()->SetColor( Quantity_NOC_VIOLET );
    getDisplayer()->SetToActivate( false );
    
    if ( SALOME_Prs* aPrs = buildPrs() )
      displayPreview( aPrs );
  }
  catch ( const SALOME::SALOME_Exception& e ) {
    SalomeApp_Tools::QtCatchCorbaException( e );
  }
  
}

Here is the call graph for this function:

Here is the caller graph for this function:

void MeasureGUI_Skeleton::SelectionIntoArgument ( ) [protected, virtual, slot, inherited]

Reimplemented in MeasureGUI_DistanceDlg, MeasureGUI_PointDlg, and MeasureGUI_AngleDlg.

Definition at line 246 of file MeasureGUI_Skeleton.cxx.

{
  myObj = GEOM::GEOM_Object::_nil();

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

  GEOM::GEOM_Object_var aSelectedObject = GEOM::GEOM_Object::_nil();

  if (aSelList.Extent() > 0) {
    aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First() );
  }

  if (aSelectedObject->_is_nil()) {
    mySelEdit->setText("");
    processObject();
    erasePreview();
    return;
  }

  myObj = aSelectedObject;
  mySelEdit->setText(GEOMBase::GetName(myObj));
  processObject();
  redisplayPreview();
}

Here is the call graph for this function:

Here is the caller graph for this function:

void MeasureGUI_Skeleton::SetEditCurrentArgument ( ) [protected, virtual, slot, inherited]

Reimplemented in MeasureGUI_DistanceDlg, and MeasureGUI_AngleDlg.

Definition at line 236 of file MeasureGUI_Skeleton.cxx.

{
  mySelEdit->setFocus();
  SelectionIntoArgument();
}

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

GEOM_Displayer* MeasureGUI_Skeleton::myDisplayer [protected, inherited]

Definition at line 83 of file MeasureGUI_Skeleton.h.

GeometryGUI* MeasureGUI_Skeleton::myGeomGUI [protected, inherited]

Definition at line 82 of file MeasureGUI_Skeleton.h.

Definition at line 58 of file MeasureGUI_CheckSelfIntersectionsDlg.h.

QString MeasureGUI_Skeleton::myHelpFileName [protected, inherited]

Definition at line 85 of file MeasureGUI_Skeleton.h.

GEOM::ListOfLong_var MeasureGUI_CheckSelfIntersectionsDlg::myInters [private]

Definition at line 60 of file MeasureGUI_CheckSelfIntersectionsDlg.h.

Definition at line 86 of file MeasureGUI_Skeleton.h.

GEOM::GEOM_Object_var MeasureGUI_Skeleton::myObj [protected, inherited]

Definition at line 80 of file MeasureGUI_Skeleton.h.

QPushButton* MeasureGUI_Skeleton::mySelBtn [protected, inherited]

Definition at line 78 of file MeasureGUI_Skeleton.h.

QLineEdit* MeasureGUI_Skeleton::mySelEdit [protected, inherited]

Definition at line 79 of file MeasureGUI_Skeleton.h.


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