]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Code style correction; myShapeNameModified state for initial filling annotation text.
authornds <natalia.ermolaeva@opencascade.com>
Wed, 12 Oct 2016 11:29:36 +0000 (14:29 +0300)
committernds <natalia.ermolaeva@opencascade.com>
Wed, 12 Oct 2016 11:29:36 +0000 (14:29 +0300)
src/MeasureGUI/MeasureGUI_AnnotationDlg.cxx
src/MeasureGUI/MeasureGUI_AnnotationDlg.h

index 3d602e3b3950e8b1ba295448eb6886b2280c7d39..7a03a65f87b7ee06fa8f4a38a584f82582fa978e 100644 (file)
@@ -1,12 +1,12 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright ( C ) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// Copyright ( C ) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
+// version 2.1 of the License, or ( at your option ) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 //purpose  : 
 //=======================================================================
 
-MeasureGUI_AnnotationDlg::MeasureGUI_AnnotationDlg(GeometryGUI* theGeometryGUI, const bool theIsCreate,
+MeasureGUI_AnnotationDlg::MeasureGUI_AnnotationDlg( GeometryGUI* theGeometryGUI, const bool theIsCreate,
                                                    QWidget* parent, bool modal, Qt::WindowFlags fl )
 : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ),
-  myIsCreation( theIsCreate )
+  myIsCreation( theIsCreate ), myShapeNameModified( false )
 {
   myEditCurrentArgument = 0;
 
   SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
-  QPixmap iconSelect(resMgr->loadPixmap("GEOM", tr("ICON_SELECT")));
+  QPixmap iconSelect( resMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
 
-  setWindowTitle( myIsCreation ? tr("CREATE_ANNOTATION_TITLE") : tr("EDIT_ANNOTATION_TITLE"));
+  setWindowTitle( myIsCreation ? tr( "CREATE_ANNOTATION_TITLE" ) : tr( "EDIT_ANNOTATION_TITLE" ) );
 
   // Shape type button group
   mainFrame()->GroupConstructors->hide();
 
   // Field name
-  mainFrame()->GroupBoxName->setTitle(tr("ANNOTATION_NAME"));
+  mainFrame()->GroupBoxName->setTitle( tr( "ANNOTATION_NAME" ) );
 
   // Field properties
-  QGroupBox* propGroup = new QGroupBox(tr("ANNOTATION_PROPERTIES"), centralWidget());
-  QGridLayout* propLayout = new QGridLayout(propGroup);
-  propLayout->setMargin(9);
-  propLayout->setSpacing(6);
+  QGroupBox* propGroup = new QGroupBox( tr( "ANNOTATION_PROPERTIES" ), centralWidget() );
+  QGridLayout* propLayout = new QGridLayout( propGroup );
+  propLayout->setMargin( 9 );
+  propLayout->setSpacing( 6 );
 
-  QLabel* textLabel = new QLabel(tr("ANNOTATION_TEXT"), propGroup);
-  myTextEdit = new QLineEdit(propGroup);
-  propLayout->addWidget(textLabel, 0, 0);
-  propLayout->addWidget(myTextEdit, 0, 1, 1, 2);
+  QLabel* textLabel = new QLabel( tr( "ANNOTATION_TEXT" ), propGroup );
+  myTextEdit = new QLineEdit( propGroup );
+  propLayout->addWidget( textLabel, 0, 0 );
+  propLayout->addWidget( myTextEdit, 0, 1, 1, 2 );
 
   // shape
-  QLabel* shapeLabel = new QLabel(tr("ANNOTATION_SHAPE"), propGroup);
-  myShapeSelBtn = new QPushButton(propGroup);
-  myShapeSelBtn->setIcon(iconSelect);
-  myShapeSelBtn->setEnabled(myIsCreation);
-  myShapeName = new QLineEdit(propGroup);
-  myShapeName->setReadOnly(true);
-  myShapeName->setEnabled(myIsCreation);
+  QLabel* shapeLabel = new QLabel( tr( "ANNOTATION_SHAPE" ), propGroup );
+  myShapeSelBtn = new QPushButton( propGroup );
+  myShapeSelBtn->setIcon( iconSelect );
+  myShapeSelBtn->setEnabled( myIsCreation );
+  myShapeName = new QLineEdit( propGroup );
+  myShapeName->setReadOnly( true );
+  myShapeName->setEnabled( myIsCreation );
 
   // data type
-  QLabel* typeLabel = new QLabel(tr("ANNOTATION_TYPE"), propGroup);
-  myTypeCombo = new QComboBox(propGroup);
-  myTypeCombo->insertItem(0, tr("3D"));
-  myTypeCombo->insertItem(1, tr("2D"));
-  myTypeCombo->setCurrentIndex(0); // 3D, not fixed
-
-  propLayout->addWidget(shapeLabel, 1, 0);
-  propLayout->addWidget(myShapeSelBtn, 1, 1);
-  propLayout->addWidget(myShapeName, 1, 2);
-  propLayout->addWidget(typeLabel, 2, 0, 1, 2);
-  propLayout->addWidget(myTypeCombo, 2, 2);
-  propLayout->setColumnStretch(2, 5);
-
-  QLabel* shapeTypeLabel = new QLabel(tr("ANNOTATION_SUB_SHAPE"), propGroup);
-  mySubShapeTypeCombo = new QComboBox(propGroup);
-  mySubShapeTypeCombo->addItem(tr("WHOLE_SHAPE"), TopAbs_SHAPE);
-  mySubShapeTypeCombo->addItem(tr("GEOM_VERTEX"), TopAbs_VERTEX);
-  mySubShapeTypeCombo->addItem(tr("GEOM_EDGE"), TopAbs_EDGE);
-  mySubShapeTypeCombo->addItem(tr("GEOM_FACE"), TopAbs_FACE);
-  mySubShapeTypeCombo->addItem(tr("GEOM_SOLID"), TopAbs_SOLID);
-  mySubShapeTypeCombo->setCurrentIndex(0); // SHAPE
-
-  propLayout->addWidget(shapeTypeLabel, 3, 0);
-  propLayout->addWidget(mySubShapeTypeCombo, 3, 1, 1, 2);
+  QLabel* typeLabel = new QLabel( tr( "ANNOTATION_TYPE" ), propGroup );
+  myTypeCombo = new QComboBox( propGroup );
+  myTypeCombo->insertItem( 0, tr( "3D" ) );
+  myTypeCombo->insertItem( 1, tr( "2D" ) );
+  myTypeCombo->setCurrentIndex( 0 ); // 3D, not fixed
+
+  propLayout->addWidget( shapeLabel, 1, 0 );
+  propLayout->addWidget( myShapeSelBtn, 1, 1 );
+  propLayout->addWidget( myShapeName, 1, 2 );
+  propLayout->addWidget( typeLabel, 2, 0, 1, 2 );
+  propLayout->addWidget( myTypeCombo, 2, 2 );
+  propLayout->setColumnStretch( 2, 5 );
+
+  QLabel* shapeTypeLabel = new QLabel( tr( "ANNOTATION_SUB_SHAPE" ), propGroup );
+  mySubShapeTypeCombo = new QComboBox( propGroup );
+  mySubShapeTypeCombo->addItem( tr( "WHOLE_SHAPE" ), TopAbs_SHAPE );
+  mySubShapeTypeCombo->addItem( tr( "GEOM_VERTEX" ), TopAbs_VERTEX );
+  mySubShapeTypeCombo->addItem( tr( "GEOM_EDGE" ), TopAbs_EDGE );
+  mySubShapeTypeCombo->addItem( tr( "GEOM_FACE" ), TopAbs_FACE );
+  mySubShapeTypeCombo->addItem( tr( "GEOM_SOLID" ), TopAbs_SOLID );
+  mySubShapeTypeCombo->setCurrentIndex( 0 ); // SHAPE
+
+  propLayout->addWidget( shapeTypeLabel, 3, 0 );
+  propLayout->addWidget( mySubShapeTypeCombo, 3, 1, 1, 2 );
 
   // sub-shape
-  mySubShapeSelBtn = new QPushButton(propGroup);
-  mySubShapeSelBtn->setIcon(iconSelect);
-  mySubShapeSelBtn->setEnabled(myIsCreation);
-  mySubShapeName = new QLineEdit(propGroup);
-  mySubShapeName->setReadOnly(true);
-  mySubShapeName->setEnabled(myIsCreation);
+  mySubShapeSelBtn = new QPushButton( propGroup );
+  mySubShapeSelBtn->setIcon( iconSelect );
+  mySubShapeSelBtn->setEnabled( myIsCreation );
+  mySubShapeName = new QLineEdit( propGroup );
+  mySubShapeName->setReadOnly( true );
+  mySubShapeName->setEnabled( myIsCreation );
 
-  propLayout->addWidget(mySubShapeSelBtn, 4, 1);
-  propLayout->addWidget(mySubShapeName, 4, 2);
+  propLayout->addWidget( mySubShapeSelBtn, 4, 1 );
+  propLayout->addWidget( mySubShapeName, 4, 2 );
 
   // Field properties
-  QGroupBox* styleGroup = new QGroupBox(tr("ANNOTATION_STYLE"),
-      centralWidget());
-  QGridLayout* styleLayout = new QGridLayout(styleGroup);
-  styleLayout->setMargin(9);
-  styleLayout->setSpacing(6);
+  QGroupBox* styleGroup = new QGroupBox( tr( "ANNOTATION_STYLE" ),
+      centralWidget() );
+  QGridLayout* styleLayout = new QGridLayout( styleGroup );
+  styleLayout->setMargin( 9 );
+  styleLayout->setSpacing( 6 );
 
-  QLabel* fontLabel = new QLabel(tr("ANNOTATION_FONT"), styleGroup);
-  styleLayout->addWidget(fontLabel, 0, 0);
+  QLabel* fontLabel = new QLabel( tr( "ANNOTATION_FONT" ), styleGroup );
+  styleLayout->addWidget( fontLabel, 0, 0 );
 
-  QVBoxLayout* layout = new QVBoxLayout(centralWidget());
-  layout->setMargin(0);
-  layout->setSpacing(6);
-  layout->addWidget(propGroup);
-  layout->addWidget(styleGroup);
+  QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
+  layout->setMargin( 0 );
+  layout->setSpacing( 6 );
+  layout->addWidget( propGroup );
+  layout->addWidget( styleGroup );
 
-  setHelpFileName("annotation_page.html");
+  setHelpFileName( "annotation_page.html" );
 
   LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
-  connect(aSelMgr, SIGNAL(currentSelectionChanged()), this,
-      SLOT(SelectionIntoArgument()));
-  connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect( aSelMgr, SIGNAL( currentSelectionChanged() ), this,
+           SLOT( SelectionIntoArgument() ) );
+  connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
+  connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
 
   myInteractor = new MeasureGUI_AnnotationInteractor( theGeometryGUI, parent );
   myInteractor->Enable();
@@ -209,51 +209,53 @@ MeasureGUI_AnnotationDlg::~MeasureGUI_AnnotationDlg() {
 
 //=================================================================================
 // function : Init()
-// purpose  : fills annotation properties with default values(in create mode) or
+// purpose  : fills annotation properties with default values( in create mode ) or
 // the values of modified object
 //=================================================================================
-void MeasureGUI_AnnotationDlg::Init() {
-  if (myIsCreation) {
-    initName(tr("ANNOTATION_PREFIX"));
+void MeasureGUI_AnnotationDlg::Init()
+{
+  if ( myIsCreation ) {
+    initName( tr( "ANNOTATION_PREFIX" ) );
 
     // default presentation values
     myAnnotationProperties.Name = getNewObjectName();
-    myAnnotationProperties.Position = gp_Pnt(250, 250, 250);
-    myAnnotationProperties.Text = tr("ANNOTATION_PREFIX");
+    myAnnotationProperties.Position = gp_Pnt( 250, 250, 250 );
+    myAnnotationProperties.Text = tr( "ANNOTATION_PREFIX" );
     myAnnotationProperties.IsVisible = false;
     myAnnotationProperties.IsScreenFixed = false;
-    myAnnotationProperties.Attach = gp_Pnt(0, 0, 0);
+    myAnnotationProperties.Attach = gp_Pnt( 0, 0, 0 );
     myAnnotationProperties.ShapeIndex = -1;
-    myAnnotationProperties.ShapeType = (int) TopAbs_SHAPE;
+    myAnnotationProperties.ShapeType = ( int ) TopAbs_SHAPE;
 
     // update internal controls and fields following to default values
-    activateSelectionArgument(myShapeSelBtn);
-    myTextEdit->setText(myAnnotationProperties.Text);
-    myTypeCombo->setCurrentIndex(!myAnnotationProperties.IsScreenFixed);
+    activateSelectionArgument( myShapeSelBtn );
+    myTextEdit->setText( myAnnotationProperties.Text );
+    myShapeNameModified = false;
+    myTypeCombo->setCurrentIndex( !myAnnotationProperties.IsScreenFixed );
 
     int aSubShapeTypeIndex = -1;
     int aTypesCount = aTypesCount = mySubShapeTypeCombo->count();
-    for (int i = 0; i < aTypesCount && aSubShapeTypeIndex < 0; i++) {
-      int aType = mySubShapeTypeCombo->itemData(i).toInt();
-      if (aType == myAnnotationProperties.ShapeType)
+    for ( int i = 0; i < aTypesCount && aSubShapeTypeIndex < 0; i++ ) {
+      int aType = mySubShapeTypeCombo->itemData( i ).toInt();
+      if ( aType == myAnnotationProperties.ShapeType )
         aSubShapeTypeIndex = i;
     }
-    mySubShapeTypeCombo->setCurrentIndex(aSubShapeTypeIndex);
+    mySubShapeTypeCombo->setCurrentIndex( aSubShapeTypeIndex );
 
-    mySelectionMode = (TopAbs_ShapeEnum) myAnnotationProperties.ShapeType;
+    mySelectionMode = ( TopAbs_ShapeEnum ) myAnnotationProperties.ShapeType;
     SelectionIntoArgument();
     updateSubShapeEnableState();
 
     // connect controls
-    connect(myShapeSelBtn, SIGNAL(clicked()), this,
-        SLOT(SetEditCurrentArgument()));
-    connect(mySubShapeSelBtn, SIGNAL(clicked()), this,
-        SLOT(SetEditCurrentArgument()));
+    connect( myShapeSelBtn, SIGNAL( clicked() ), this,
+        SLOT( SetEditCurrentArgument() ) );
+    connect( mySubShapeSelBtn, SIGNAL( clicked() ), this,
+        SLOT( SetEditCurrentArgument() ) );
 
-    connect(myTextEdit, SIGNAL(textChanged(const QString&)), this, SLOT(onTextChange()));
-    connect(myTypeCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(onTypeChange()));
-    connect(mySubShapeTypeCombo, SIGNAL(currentIndexChanged(int)),
-        this, SLOT(onSubShapeTypeChange()));
+    connect( myTextEdit, SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChange() ) );
+    connect( myTypeCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( onTypeChange() ) );
+    connect( mySubShapeTypeCombo, SIGNAL( currentIndexChanged( int ) ),
+        this, SLOT( onSubShapeTypeChange() ) );
 
     //SelectionIntoArgument();
   } else { // edition
@@ -266,10 +268,11 @@ void MeasureGUI_AnnotationDlg::Init() {
 // function : activateSelection
 // purpose  : Activate local selection
 //=================================================================================
-void MeasureGUI_AnnotationDlg::activateSelection() {
-  //globalSelection(GEOM_ALLSHAPES);
-  //if (!myShape->_is_nil() && mySelectionMode != TopAbs_SHAPE) {
-  //  localSelection(myShape.get(), mySelectionMode);
+void MeasureGUI_AnnotationDlg::activateSelection()
+{
+  //globalSelection( GEOM_ALLSHAPES );
+  //if ( !myShape->_is_nil() && mySelectionMode != TopAbs_SHAPE ) {
+  //  localSelection( myShape.get(), mySelectionMode );
   //}
 }
 
@@ -277,64 +280,67 @@ void MeasureGUI_AnnotationDlg::activateSelection() {
 // function : getShapeType()
 // purpose  :
 //=================================================================================
-TopAbs_ShapeEnum MeasureGUI_AnnotationDlg::getShapeType() const {
-  return (TopAbs_ShapeEnum) mySubShapeTypeCombo->itemData(
-      mySubShapeTypeCombo->currentIndex()).toInt();
+TopAbs_ShapeEnum MeasureGUI_AnnotationDlg::getShapeType() const
+{
+  return ( TopAbs_ShapeEnum ) mySubShapeTypeCombo->itemData(
+      mySubShapeTypeCombo->currentIndex() ).toInt();
 }
 
 //=================================================================================
 // function : ClickOnOk()
 // purpose  :
 //=================================================================================
-void MeasureGUI_AnnotationDlg::ClickOnOk() {
-  setIsApplyAndClose(true);
-  if (ClickOnApply())
+void MeasureGUI_AnnotationDlg::ClickOnOk()
+{
+  setIsApplyAndClose( true );
+  if ( ClickOnApply() )
     ClickOnCancel();
-  setIsApplyAndClose(false);
+  setIsApplyAndClose( false );
 }
 
 //=================================================================================
 // function : ClickOnApply()
 // purpose  :
 //=================================================================================
-bool MeasureGUI_AnnotationDlg::ClickOnApply() {
-  if (!isApplyAndClose()) {
-    setIsDisableBrowsing(true);
-    setIsDisplayResult(false);
+bool MeasureGUI_AnnotationDlg::ClickOnApply()
+{
+  if ( !isApplyAndClose() ) {
+    setIsDisableBrowsing( true );
+    setIsDisplayResult( false );
   }
 
   QString msg;
-  if (!isValid(msg)) {
-    showError(msg);
+  if ( !isValid( msg ) ) {
+    showError( msg );
     return false;
   }
 
   SUIT_OverrideCursor wc;
-  SUIT_Session::session()->activeApplication()->putInfo("");
+  SUIT_Session::session()->activeApplication()->putInfo( "" );
 
   try {
-    if (openCommand())
-      if (!execute(/*isApplyAndClose()*/)) {
+    if ( openCommand() )
+      if ( !execute( /*isApplyAndClose()*/ ) ) {
         abortCommand();
         showError();
         return false;
       }
-  } catch (const SALOME::SALOME_Exception& e) {
-    SalomeApp_Tools::QtCatchCorbaException(e);
+  } catch ( const SALOME::SALOME_Exception& e ) {
+    SalomeApp_Tools::QtCatchCorbaException( e );
     abortCommand();
     return false;
   }
   commitCommand();
 
-  if (!isApplyAndClose()) {
-    setIsDisableBrowsing(false);
-    setIsDisplayResult(true);
+  if ( !isApplyAndClose() ) {
+    setIsDisableBrowsing( false );
+    setIsDisplayResult( true );
   }
 
-  /*if (myIsCreation)
+  /*if ( myIsCreation )
    {
    myAnnotation = GEOM::GEOM_Field::_nil();
-   if (!isApplyAndClose())
+   if ( !isApplyAndClose() )
    Init();
    }*/
   return true;
@@ -345,10 +351,11 @@ bool MeasureGUI_AnnotationDlg::ClickOnApply() {
 // purpose  : process click on shape/sub-shape button. It stores as current edit argument
 // the corresponded line edit, set focus in it and unpress other button if it was pressed
 //=================================================================================
-void MeasureGUI_AnnotationDlg::SetEditCurrentArgument() {
-  QPushButton* aSelectButton = (QPushButton*) sender();
+void MeasureGUI_AnnotationDlg::SetEditCurrentArgument()
+{
+  QPushButton* aSelectButton = ( QPushButton* ) sender();
 
-  activateSelectionArgument(aSelectButton);
+  activateSelectionArgument( aSelectButton );
 
   SelectionIntoArgument();
 }
@@ -358,23 +365,24 @@ void MeasureGUI_AnnotationDlg::SetEditCurrentArgument() {
 // purpose  : it stores as current edit argument the corresponded line edit,
 // sets the focus on it and unpresses other button if it was pressed
 //=================================================================================
-void MeasureGUI_AnnotationDlg::activateSelectionArgument(
-    QPushButton* theSelectionButton) {
+void MeasureGUI_AnnotationDlg::activateSelectionArgument
+(
+  QPushButton* theSelectionButton ) {
   QPushButton* anOtherButton = 0;
-  if (theSelectionButton == myShapeSelBtn) {
+  if ( theSelectionButton == myShapeSelBtn ) {
     myEditCurrentArgument = myShapeName;
     anOtherButton = mySubShapeSelBtn;
-  } else if (theSelectionButton == mySubShapeSelBtn) {
+  } else if ( theSelectionButton == mySubShapeSelBtn ) {
     myEditCurrentArgument = mySubShapeName;
     anOtherButton = myShapeSelBtn;
   } else
     myEditCurrentArgument = 0;
 
-  if (myEditCurrentArgument)
+  if ( myEditCurrentArgument )
     myEditCurrentArgument->setFocus();
 
-  theSelectionButton->setDown(true);
-  anOtherButton->setDown(false);
+  theSelectionButton->setDown( true );
+  anOtherButton->setDown( false );
 }
 
 //=================================================================================
@@ -382,57 +390,63 @@ void MeasureGUI_AnnotationDlg::activateSelectionArgument(
 // purpose  : Called when selection has changed. Sets the current selection in the
 // annotation property and redisplays presentation
 //=================================================================================
-void MeasureGUI_AnnotationDlg::SelectionIntoArgument() {
-  if (myIsCreation && myEditCurrentArgument) {
-    myEditCurrentArgument->setText("");
+void MeasureGUI_AnnotationDlg::SelectionIntoArgument()
+{
+  if ( myIsCreation && myEditCurrentArgument )
+  {
+    myEditCurrentArgument->setText( "" );
 
-    GEOM::GeomObjPtr anObj = getSelected(mySelectionMode);
+    GEOM::GeomObjPtr anObj = getSelected( mySelectionMode );
 
-    gp_Pnt anAttachPoint(0, 0, 0);
+    gp_Pnt anAttachPoint( 0, 0, 0 );
     int aSubShapeIndex = -1;
-    if (myEditCurrentArgument == myShapeName) { // Selection of a shape is active
-      if (anObj->_is_nil() || mySelectionMode != TopAbs_SHAPE) {
+    if ( myEditCurrentArgument == myShapeName ) { // Selection of a shape is active
+      if ( anObj->_is_nil() || mySelectionMode != TopAbs_SHAPE ) {
         myShape = GEOM::GEOM_Object::_nil();
       } else {
         myShape = anObj;
-        QString aName = GEOMBase::GetName(anObj.get());
-        myEditCurrentArgument->setText(aName);
+        QString aName = GEOMBase::GetName( anObj.get() );
+        myEditCurrentArgument->setText( aName );
+        if ( !myShapeNameModified ) {
+          myTextEdit->setText( aName );
+          myShapeNameModified = false;
+        }
       }
 
       bool aNullShape = myShape->_is_nil();
-      mySubShapeTypeCombo->setEnabled(!aNullShape);
+      mySubShapeTypeCombo->setEnabled( !aNullShape );
       updateSubShapeEnableState();
 
       activateSelection();
 
-      if (!myShape->_is_nil()) {
+      if ( !myShape->_is_nil() ) {
         TopoDS_Shape aShape;
-        GEOMBase::GetShape(myShape.get(), aShape);
-        anAttachPoint = getAttachPoint(aShape);
+        GEOMBase::GetShape( myShape.get(), aShape );
+        anAttachPoint = getAttachPoint( aShape );
       }
-    } else if (myEditCurrentArgument == mySubShapeName) {
-      if (!myShape->_is_nil()) {
-        QString aName = GEOMBase::GetName(anObj.get());
-        myEditCurrentArgument->setText(aName);
+    } else if ( myEditCurrentArgument == mySubShapeName ) {
+      if ( !myShape->_is_nil() ) {
+        QString aName = GEOMBase::GetName( anObj.get() );
+        myEditCurrentArgument->setText( aName );
 
         TopTools_IndexedMapOfShape aMainMap;
         TopoDS_Shape aMainShape;
-        GEOMBase::GetShape(myShape.get(), aMainShape);
-        TopExp::MapShapes(aMainShape, aMainMap);
+        GEOMBase::GetShape( myShape.get(), aMainShape );
+        TopExp::MapShapes( aMainShape, aMainMap );
 
-        TopExp_Explorer anExp(aMainShape, getShapeType());
+        TopExp_Explorer anExp( aMainShape, getShapeType() );
         bool isShowWarning = true;
 
         TopoDS_Shape aSubShape;
-        for (; anExp.More() && aSubShapeIndex < 0; anExp.Next()) {
+        for ( ; anExp.More() && aSubShapeIndex < 0; anExp.Next() ) {
           TopoDS_Shape aCurrentSubShape = anExp.Current();
-          int anIndex = aMainMap.FindIndex(aCurrentSubShape);
-          if (anIndex >= 0) {
+          int anIndex = aMainMap.FindIndex( aCurrentSubShape );
+          if ( anIndex >= 0 ) {
             aSubShapeIndex = anIndex;
             aSubShape = aCurrentSubShape;
           }
         }
-        anAttachPoint = getAttachPoint(aSubShape);
+        anAttachPoint = getAttachPoint( aSubShape );
         myAnnotationProperties.ShapeIndex = aSubShapeIndex;
       }
     }
@@ -445,8 +459,12 @@ void MeasureGUI_AnnotationDlg::SelectionIntoArgument() {
 //function : onTextChange
 //purpose  : change annotation text
 //=======================================================================
-void MeasureGUI_AnnotationDlg::onTextChange() {
+void MeasureGUI_AnnotationDlg::onTextChange()
+{
   myAnnotationProperties.Text = myTextEdit->text();
+  if ( !myShapeNameModified )
+    myShapeNameModified = true;
+
   redisplayPreview();
 }
 
@@ -454,7 +472,8 @@ void MeasureGUI_AnnotationDlg::onTextChange() {
 //function : onTypeChange
 //purpose  : change annotation type: 2D or 3D
 //=======================================================================
-void MeasureGUI_AnnotationDlg::onTypeChange() {
+void MeasureGUI_AnnotationDlg::onTypeChange()
+{
   myAnnotationProperties.IsScreenFixed = myTypeCombo->currentIndex() == 1;
   redisplayPreview();
 }
@@ -463,13 +482,14 @@ void MeasureGUI_AnnotationDlg::onTypeChange() {
 //function : onSubShapeTypeChange
 //purpose  :
 //=======================================================================
-void MeasureGUI_AnnotationDlg::onSubShapeTypeChange() {
-  activateSelectionArgument(mySubShapeSelBtn);
+void MeasureGUI_AnnotationDlg::onSubShapeTypeChange()
+{
+  activateSelectionArgument( mySubShapeSelBtn );
 
   TopAbs_ShapeEnum aShapeType = getShapeType();
   myAnnotationProperties.ShapeType = aShapeType;
-  if (aShapeType != mySelectionMode) {
-    mySubShapeName->setText("");
+  if ( aShapeType != mySelectionMode ) {
+    mySubShapeName->setText( "" );
     myAnnotationProperties.ShapeIndex = -1;
     mySelectionMode = aShapeType;
   }
@@ -480,9 +500,9 @@ void MeasureGUI_AnnotationDlg::onSubShapeTypeChange() {
   redisplayPreview();
 }
 
-#define RETURN_WITH_MSG(a, b) \
-  if ((a)) { \
-    theMessage += (b); \
+#define RETURN_WITH_MSG( a, b ) \
+  if ( ( a ) ) { \
+    theMessage += ( b ); \
     return false; \
   }
 
@@ -492,30 +512,31 @@ void MeasureGUI_AnnotationDlg::onSubShapeTypeChange() {
 //=================================================================================
 GEOM::GEOM_IOperations_ptr MeasureGUI_AnnotationDlg::createOperation()
 {
-  return getGeomEngine()->GetILocalOperations(getStudyId());
+  return getGeomEngine()->GetILocalOperations( getStudyId() );
 }
 
 //=================================================================================
 // function : isValid()
 // purpose  : Verify validity of input data
 //=================================================================================
-bool MeasureGUI_AnnotationDlg::isValid(QString& theMessage) {
+bool MeasureGUI_AnnotationDlg::isValid( QString& theMessage )
+{
   SalomeApp_Study* study = getStudy();
-  RETURN_WITH_MSG(!study, tr("GEOM_NO_STUDY"))
-  RETURN_WITH_MSG(study->studyDS()->GetProperties()->IsLocked(),
-      tr("GEOM_STUDY_LOCKED"))
+  RETURN_WITH_MSG( !study, tr( "GEOM_NO_STUDY" ) )
+  RETURN_WITH_MSG( study->studyDS()->GetProperties()->IsLocked(),
+      tr( "GEOM_STUDY_LOCKED" ) )
 
-  if (myIsCreation) {
-    RETURN_WITH_MSG(myShape->_is_nil(), tr("NO_SHAPE"))
+  if ( myIsCreation ) {
+    RETURN_WITH_MSG( myShape->_is_nil(), tr( "NO_SHAPE" ) )
   } else {
-    //RETURN_WITH_MSG(CORBA::is_nil(myShape), tr("NO_FIELD"))
+    //RETURN_WITH_MSG( CORBA::is_nil( myShape ), tr( "NO_FIELD" ) )
   }
 
-  if (getShapeType() != TopAbs_SHAPE) {
-    if (myIsCreation) {
-      RETURN_WITH_MSG(myAnnotationProperties.ShapeIndex < 0, tr("NO_SUB_SHAPE"))
+  if ( getShapeType() != TopAbs_SHAPE ) {
+    if ( myIsCreation ) {
+      RETURN_WITH_MSG( myAnnotationProperties.ShapeIndex < 0, tr( "NO_SUB_SHAPE" ) )
     } else {
-      //RETURN_WITH_MSG(CORBA::is_nil(myShape), tr("NO_FIELD"))
+      //RETURN_WITH_MSG( CORBA::is_nil( myShape ), tr( "NO_FIELD" ) )
     }
   }
   return true;
@@ -528,10 +549,10 @@ bool MeasureGUI_AnnotationDlg::isValid(QString& theMessage) {
 bool MeasureGUI_AnnotationDlg::execute()
 {
   QString anError;
-  if (!isValid(anError))
+  if ( !isValid( anError ) )
     return false;
 
-  if (myIsCreation) {
+  if ( myIsCreation ) {
     SalomeApp_Study* aStudy = getStudy();
     GEOMGUI_ShapeAnnotations aProp =
         aStudy->getObjectProperty( GEOM::sharedPropertiesId(),
@@ -548,8 +569,8 @@ bool MeasureGUI_AnnotationDlg::execute()
 
     // store modified property data
     aStudy->setObjectProperty( GEOM::sharedPropertiesId(),
-                               myShape->GetStudyEntry(), GEOM::propertyName(GEOM::ShapeAnnotations),
-                               aProp);
+                               myShape->GetStudyEntry(), GEOM::propertyName( GEOM::ShapeAnnotations ),
+                               aProp );
     aProp.SaveToAttribute( aStudy, myShape->GetStudyEntry() );
     myGeomGUI->emitDimensionsUpdated( QString( myShape->GetStudyEntry() ) );
   }
@@ -569,9 +590,9 @@ bool MeasureGUI_AnnotationDlg::execute()
 // function : buildPrs
 // purpose  : creates annotation presentation object and corresponded SALOME presentation
 //=================================================================================
-SALOME_Prs* MeasureGUI_AnnotationDlg::buildPrs() {
-  Handle (GEOM_Annotation)
-  aPresentation = new GEOM_Annotation();
+SALOME_Prs* MeasureGUI_AnnotationDlg::buildPrs()
+{
+  Handle ( GEOM_Annotation ) aPresentation = new GEOM_Annotation();
 
   SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
   const QFont  aFont      = aResMgr->fontValue( "Geometry", "shape_annotation_font", QFont( "Y14.5M-2009", 24 ) );
@@ -594,19 +615,19 @@ SALOME_Prs* MeasureGUI_AnnotationDlg::buildPrs() {
   aPresentation->SetAutoHide( isAutoHide ? Standard_True : Standard_False );
 
   TopoDS_Shape aShape;
-  GEOMBase::GetShape(myShape.get(), aShape);
-  gp_Ax3 aShapeLCS = gp_Ax3().Transformed(aShape.Location().Transformation());
-  myAnnotationProperties.ToPresentation(aPresentation, aShapeLCS);
+  GEOMBase::GetShape( myShape.get(), aShape );
+  gp_Ax3 aShapeLCS = gp_Ax3().Transformed( aShape.Location().Transformation() );
+  myAnnotationProperties.ToPresentation( aPresentation, aShapeLCS );
 
   // add Prs to preview
   SUIT_ViewWindow* vw =
       SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
   SOCC_Prs* aPrs =
-      dynamic_cast<SOCC_Prs*>(((SOCC_Viewer*) (vw->getViewManager()->getViewModel()))->CreatePrs(
-          0));
+      dynamic_cast<SOCC_Prs*>( ( ( SOCC_Viewer* ) ( vw->getViewManager()->getViewModel() ) )->CreatePrs(
+          0 ) );
 
-  if (aPrs)
-    aPrs->AddObject(aPresentation);
+  if ( aPrs )
+    aPrs->AddObject( aPresentation );
 
   return aPrs;
 }
@@ -619,18 +640,19 @@ void MeasureGUI_AnnotationDlg::updateSubShapeEnableState()
 {
   bool isWholeShape = getShapeType() == TopAbs_SHAPE;
   bool aNullShape = myShape->_is_nil();
-  mySubShapeSelBtn->setEnabled(!aNullShape && !isWholeShape);
-  mySubShapeName->setEnabled(!aNullShape && !isWholeShape);
+  mySubShapeSelBtn->setEnabled( !aNullShape && !isWholeShape );
+  mySubShapeName->setEnabled( !aNullShape && !isWholeShape );
 }
 
 //=================================================================================
 // function : buildPrs
 // purpose  : creates annotation presentation object and corresponded SALOME presentation
 //=================================================================================
-void MeasureGUI_AnnotationDlg::redisplayPreview() {
+void MeasureGUI_AnnotationDlg::redisplayPreview()
+{
   QString aMess;
-  if (!isValid(aMess)) {
-    erasePreview(true);
+  if ( !isValid( aMess ) ) {
+    erasePreview( true );
     return;
   }
 
@@ -638,14 +660,14 @@ void MeasureGUI_AnnotationDlg::redisplayPreview() {
 
   try {
     //SUIT_OverrideCursor wc;
-    //getDisplayer()->SetColor(Quantity_NOC_VIOLET);
-    //getDisplayer()->SetToActivate(false);
+    //getDisplayer()->SetColor( Quantity_NOC_VIOLET );
+    //getDisplayer()->SetToActivate( false );
 
     if ( SALOME_Prs* aPrs = buildPrs() )
-      displayPreview(aPrs);
+      displayPreview( aPrs );
   } catch ( const SALOME::SALOME_Exception& e ) {
     SalomeApp_Tools::QtCatchCorbaException( e );
-  } catch (...) {
+  } catch ( ... ) {
   }
 }
 
@@ -653,7 +675,7 @@ void MeasureGUI_AnnotationDlg::redisplayPreview() {
 // function : getAttachPoint
 // purpose  : finds a point on shape to attach annotation object
 //=================================================================================
-gp_Pnt MeasureGUI_AnnotationDlg::getAttachPoint(const TopoDS_Shape& theShape)
+gp_Pnt MeasureGUI_AnnotationDlg::getAttachPoint( const TopoDS_Shape& theShape )
 {
   gp_Pnt aPoint = gp_Pnt( 0, 0, 0 );
 
index bff6569879fd998c174dd537a250e8c1d5c50590..91e567f48e82dd1b4120107439a8797d44fa330f 100755 (executable)
@@ -57,16 +57,16 @@ class MeasureGUI_AnnotationDlg : public GEOMBase_Skeleton
   Q_OBJECT
 
 public:
-  MeasureGUI_AnnotationDlg (GeometryGUI* theGeometryGUI,
-                            const bool theIsCreate,
-                                           QWidget* parent=0,
-                            bool modal=false, Qt::WindowFlags fl=0);
+  MeasureGUI_AnnotationDlg ( GeometryGUI* theGeometryGUI,
+                             const bool theIsCreate,
+                             QWidget* parent=0,
+                             bool modal=false, Qt::WindowFlags fl=0 );
   ~MeasureGUI_AnnotationDlg();
 
 protected:
   // redefined from GEOMBase_Helper
   virtual                             GEOM::GEOM_IOperations_ptr createOperation();
-  virtual bool                        isValid (QString&);
+  virtual bool                        isValid ( QString& );
   virtual bool                        execute ();
 
   SALOME_Prs*                         buildPrs();
@@ -86,10 +86,10 @@ private slots:
 private:
   void                                Init();
 
-  void                                activateSelectionArgument(QPushButton* theSelectionButton);
+  void                                activateSelectionArgument( QPushButton* theSelectionButton );
   void                                activateSelection();
   TopAbs_ShapeEnum                    getShapeType() const;
-  gp_Pnt                              getAttachPoint(const TopoDS_Shape& theShape);
+  gp_Pnt                              getAttachPoint( const TopoDS_Shape& theShape );
 
 private:
   TopAbs_ShapeEnum                    mySelectionMode;
@@ -101,6 +101,8 @@ private:
   QLineEdit*                          myTextEdit;
 
   QPushButton*                        myShapeSelBtn;
+  // update shape name by shape selection if it has not been manually modified yet
+  bool                                myShapeNameModified;
   QLineEdit*                          myShapeName;
   QComboBox*                          myTypeCombo;