X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Widget.cxx;h=b44a2734c36bbf4fb8465a898ce55cc5eb71b10a;hb=c363fc5c3541669e07cf4d991cc1e94253147ac1;hp=731893a52df1200f99edd5b585b0ae271f20e306;hpb=d9bced84874275b38f81e0878e197d40782834d2;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Widget.cxx b/src/HYDROCurveCreator/CurveCreator_Widget.cxx index 731893a5..b44a2734 100644 --- a/src/HYDROCurveCreator/CurveCreator_Widget.cxx +++ b/src/HYDROCurveCreator/CurveCreator_Widget.cxx @@ -506,6 +506,8 @@ void CurveCreator_Widget::onNewSection() { if( !myCurve ) return; + + stopModificationMode(); myNewSectionEditor->clear(); myNewSectionEditor->setEditMode(false); QString aSectName = QString( CurveCreator_UtilsICurve::getUniqSectionName( myCurve ).c_str() ); @@ -571,6 +573,8 @@ void CurveCreator_Widget::onEditSection( int theSection ) { if( !myCurve ) return; + + stopModificationMode(); mySection = theSection; QString aSectName = QString::fromStdString( myCurve->getSectionName(theSection)); bool isClosed = myCurve->isClosed(theSection); @@ -588,7 +592,6 @@ void CurveCreator_Widget::onModifySection() QString aName = myNewSectionEditor->getName(); bool isClosed = myNewSectionEditor->isClosed(); CurveCreator::SectionType aSectType = myNewSectionEditor->getSectionType(); -// myCurve->startOperation(); if( myCurve->getSectionName(mySection) != aName.toStdString() ) myCurve->setSectionName( mySection , aName.toStdString() ); @@ -597,7 +600,6 @@ void CurveCreator_Widget::onModifySection() if( myCurve->isClosed(mySection) != isClosed ) myCurve->setClosed( mySection, isClosed ); -// myCurve->finishOperation(); mySectionView->sectionChanged(mySection); updateUndoRedo(); onCancelSection(); @@ -611,15 +613,15 @@ void CurveCreator_Widget::onJoin() if( aSections.size() == 0 ){ return; } + stopModificationMode(); + int aMainSect = aSections[0]; int aMainSectSize = myCurve->getNbPoints(aMainSect); -// myCurve->startOperation(); for( int i = 1 ; i < aSections.size() ; i++ ){ int aSectNum = aSections[i] - (i-1); myCurve->join( aMainSect, aSectNum ); mySectionView->sectionsRemoved( aSectNum ); } -// myCurve->finishOperation(); int aNewSectSize = myCurve->getNbPoints(aMainSect); if( aNewSectSize != aMainSectSize ) mySectionView->pointsAdded( aMainSect, aMainSectSize, aNewSectSize-aMainSectSize ); @@ -647,6 +649,7 @@ void CurveCreator_Widget::onClearAll() { if( !myCurve ) return; + stopModificationMode(); myCurve->clear(); mySectionView->reset(); updateActionsStates(); @@ -657,6 +660,7 @@ void CurveCreator_Widget::onJoinAll() { if( !myCurve ) return; + stopModificationMode(); myCurve->join(); mySectionView->reset(); updateActionsStates(); @@ -672,13 +676,12 @@ void CurveCreator_Widget::onSetSpline() { if( !myCurve ) return; + stopModificationMode(); QList aSelSections = mySectionView->getSelectedSections(); -// myCurve->startOperation(); for( int i = 0 ; i < aSelSections.size() ; i++ ){ myCurve->setSectionType(aSelSections[i], CurveCreator::Spline ); mySectionView->sectionChanged(aSelSections[i]); } -// myCurve->finishOperation(); updateUndoRedo(); } @@ -686,13 +689,12 @@ void CurveCreator_Widget::onSetPolyline() { if( !myCurve ) return; -// myCurve->startOperation(); + stopModificationMode(); QList aSelSections = mySectionView->getSelectedSections(); for( int i = 0 ; i < aSelSections.size() ; i++ ){ myCurve->setSectionType( aSelSections[i], CurveCreator::Polyline ); mySectionView->sectionChanged( aSelSections[i] ); } -// myCurve->finishOperation(); updateUndoRedo(); } @@ -700,13 +702,12 @@ void CurveCreator_Widget::onCloseSections() { if( !myCurve ) return; -// myCurve->startOperation(); + stopModificationMode(); QList aSelSections = mySectionView->getSelectedSections(); for( int i = 0 ; i < aSelSections.size() ; i++ ){ myCurve->setClosed(aSelSections[i], true); mySectionView->sectionChanged(aSelSections[i]); } -// myCurve->finishOperation(); updateUndoRedo(); } @@ -714,13 +715,12 @@ void CurveCreator_Widget::onUncloseSections() { if( !myCurve ) return; -// myCurve->startOperation(); + stopModificationMode(); QList aSelSections = mySectionView->getSelectedSections(); for( int i = 0 ; i < aSelSections.size() ; i++ ){ myCurve->setClosed(aSelSections[i], false); mySectionView->sectionChanged(aSelSections[i]); } -// myCurve->finishOperation(); updateUndoRedo(); } @@ -1010,10 +1010,11 @@ void CurveCreator_Widget::onCellChanged( int theRow, int theColumn ) */ void CurveCreator_Widget::removeSection() { + stopModificationMode(); + QList< QPair > aSelPoints = mySectionView->getSelectedPoints(); int aCurrSect=-1; int aRemoveCnt = 0; -// myCurve->startOperation(); for( int i = 0 ; i < aSelPoints.size() ; i++ ){ if( aCurrSect != aSelPoints[i].first ){ aRemoveCnt = 0; @@ -1030,7 +1031,6 @@ void CurveCreator_Widget::removeSection() myCurve->removeSection( aSectNum ); mySectionView->sectionsRemoved( aSectNum ); } -// myCurve->finishOperation(); mySectionView->clearSelection(); updateUndoRedo(); } @@ -1184,7 +1184,7 @@ void CurveCreator_Widget::updateLocalPointView() CurveCreator_Utils::getSelectedPoints( aContext, myCurve, myLocalPoints ); int aNbPoints = myLocalPoints.size(); bool isRowLimit = aNbPoints > myLocalPointRowLimit; - myLocalPointView->setVisible( !isRowLimit ); + myLocalPointView->setVisible( getActionMode() == ModificationMode && !isRowLimit ); if ( !isRowLimit ) { bool isBlocked = myLocalPointView->blockSignals(true); @@ -1252,6 +1252,16 @@ void CurveCreator_Widget::setSelectedPoints( const CurveCreator_ICurve::SectionT updateLocalPointView(); } +void CurveCreator_Widget::stopModificationMode() +{ + QAction* anAction = myActionMap[MODIFICATION_MODE_ID]; + if ( anAction ) { + if ( anAction->isChecked() ) + anAction->setChecked( false ); + } + onModificationMode( false ); +} + /** * Get viewer information before perform the curve modification. * Take a list of selected cuve points an close local context.