From: nds Date: Thu, 5 Dec 2013 09:32:37 +0000 (+0000) Subject: Switch off the modification mode by the section operation X-Git-Tag: BR_hydro_v_0_4~29 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=92c090d16c75ab441a2b493fdd8ffc37f56eb89e;p=modules%2Fhydro.git Switch off the modification mode by the section operation --- diff --git a/src/HYDROCurveCreator/CurveCreator_Widget.cxx b/src/HYDROCurveCreator/CurveCreator_Widget.cxx index 4d1b8091..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(); } @@ -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. diff --git a/src/HYDROCurveCreator/CurveCreator_Widget.h b/src/HYDROCurveCreator/CurveCreator_Widget.h index cba56e0e..7da055ae 100644 --- a/src/HYDROCurveCreator/CurveCreator_Widget.h +++ b/src/HYDROCurveCreator/CurveCreator_Widget.h @@ -179,6 +179,8 @@ private: void setSelectedPoints( const CurveCreator_ICurve::SectionToPointList& = CurveCreator_ICurve::SectionToPointList() ); + void stopModificationMode(); + void startCurveModification( CurveCreator_ICurve::SectionToPointList& thePoints, const bool theFillPoints = true ); void finishCurveModification( const CurveCreator_ICurve::SectionToPointList& thePoints =