OCC 7.4 porting for CurveCreator_Widget: TODO check OK

This commit is contained in:
Paul RASCLE 2020-06-24 15:01:12 +02:00 committed by YOANN AUDOUIN
parent 4da74bc198
commit 1e56c0d59c

View File

@ -136,19 +136,19 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
QPixmap aStepDownPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_ARROW_DOWN")));
QPixmap aSetColorPixmap(aResMgr->loadPixmap("GEOM", tr("ICON_CC_SETCOLOR")));
QAction* anAct = createAction( UNDO_ID, tr("UNDO"), anUndoPixmap, tr("UNDO_TLT"),
QAction* anAct = createAction( UNDO_ID, tr("UNDO"), anUndoPixmap, tr("UNDO_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Z) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onUndo()) );
aTB->addAction(anAct);
anAct = createAction( REDO_ID, tr("REDO"), aRedoPixmap, tr("REDO_TLT"),
anAct = createAction( REDO_ID, tr("REDO"), aRedoPixmap, tr("REDO_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Y) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onRedo()) );
aTB->addAction(anAct);
aTB->addSeparator();
anAct = createAction( NEW_SECTION_ID, tr("NEW_SECTION"), aNewSectionPixmap, tr("NEW_SECTION_TLT"),
anAct = createAction( NEW_SECTION_ID, tr("NEW_SECTION"), aNewSectionPixmap, tr("NEW_SECTION_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_N) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onNewSection()) );
if ( !(theActionFlags & DisableNewSection) ) {
@ -156,21 +156,21 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
aTB->addSeparator();
}
anAct = createAction( ADDITION_MODE_ID, tr("ADDITION_MODE"), aNewPointPixmap, tr("ADDITION_MODE_TLT"),
anAct = createAction( ADDITION_MODE_ID, tr("ADDITION_MODE"), aNewPointPixmap, tr("ADDITION_MODE_TLT"),
QKeySequence() );
anAct->setCheckable(true);
connect(anAct, SIGNAL(triggered(bool)), this, SLOT(onAdditionMode(bool)) );
connect(anAct, SIGNAL(toggled(bool)), this, SLOT(onModeChanged(bool)) );
aTB->addAction(anAct);
anAct = createAction( MODIFICATION_MODE_ID, tr("MODIFICATION_MODE"), anEditPointsPixmap, tr("MODIFICATION_MODE_TLT"),
anAct = createAction( MODIFICATION_MODE_ID, tr("MODIFICATION_MODE"), anEditPointsPixmap, tr("MODIFICATION_MODE_TLT"),
QKeySequence() );
anAct->setCheckable(true);
connect(anAct, SIGNAL(triggered(bool)), this, SLOT(onModificationMode(bool)) );
connect(anAct, SIGNAL(toggled(bool)), this, SLOT(onModeChanged(bool)) );
aTB->addAction(anAct);
anAct = createAction( DETECTION_MODE_ID, tr("DETECTION_MODE"), aDetectPointsPixmap, tr("DETECTION_MODE_TLT"),
anAct = createAction( DETECTION_MODE_ID, tr("DETECTION_MODE"), aDetectPointsPixmap, tr("DETECTION_MODE_TLT"),
QKeySequence() );
anAct->setCheckable(true);
connect(anAct, SIGNAL(triggered(bool)), this, SLOT(onDetectionMode(bool)) );
@ -178,39 +178,39 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
// if ( !(theActionFlags & DisableDetectionMode) ) {
// aTB->addAction(anAct);
// }
anAct = createAction( CLOSE_SECTIONS_ID, tr("CLOSE_SECTIONS"), QPixmap(), tr("CLOSE_SECTIONS_TLT"),
anAct = createAction( CLOSE_SECTIONS_ID, tr("CLOSE_SECTIONS"), QPixmap(), tr("CLOSE_SECTIONS_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_W) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onCloseSections()) );
anAct = createAction( UNCLOSE_SECTIONS_ID, tr("UNCLOSE_SECTIONS"), QPixmap(),
anAct = createAction( UNCLOSE_SECTIONS_ID, tr("UNCLOSE_SECTIONS"), QPixmap(),
tr("UNCLOSE_SECTIONS_TLT"), QKeySequence(Qt::ControlModifier|Qt::Key_S) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onUncloseSections()) );
anAct = createAction( SET_SECTIONS_POLYLINE_ID, tr("SET_SECTIONS_POLYLINE"),
aPolylinePixmap, tr("SET_SECTIONS_POLYLINE_TLT"),
anAct = createAction( SET_SECTIONS_POLYLINE_ID, tr("SET_SECTIONS_POLYLINE"),
aPolylinePixmap, tr("SET_SECTIONS_POLYLINE_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_E) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onSetPolyline()) );
anAct = createAction( SET_SECTIONS_SPLINE_ID, tr("SET_SECTIONS_SPLINE"), aSplinePixmap,
anAct = createAction( SET_SECTIONS_SPLINE_ID, tr("SET_SECTIONS_SPLINE"), aSplinePixmap,
tr("SET_SECTIONS_SPLINE_TLT"), QKeySequence(Qt::ControlModifier|Qt::Key_R) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onSetSpline()) );
aTB->addSeparator();
anAct = createAction( REMOVE_ID, tr("REMOVE"), aRemovePixmap, tr("REMOVE_TLT"),
anAct = createAction( REMOVE_ID, tr("REMOVE"), aRemovePixmap, tr("REMOVE_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Delete ) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onRemove()) );
aTB->addAction(anAct);
anAct = createAction( SETCOLOR_ID, tr("SETCOLOR"), aSetColorPixmap, tr("SETCOLOR_TLT"),
anAct = createAction( SETCOLOR_ID, tr("SETCOLOR"), aSetColorPixmap, tr("SETCOLOR_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_C ) );
connect(anAct, SIGNAL(triggered()), this, SLOT(onSetColor()) );
if ( !(theActionFlags & DisableSetColor) )
aTB->addAction(anAct);
anAct = createAction( JOIN_ID, tr("JOIN"), aJoinPixmap, tr("JOIN_TLT"),
anAct = createAction( JOIN_ID, tr("JOIN"), aJoinPixmap, tr("JOIN_TLT"),
QKeySequence(Qt::ControlModifier|Qt::Key_Plus ) );
connect( anAct, SIGNAL(triggered()), this, SLOT(onJoin()) );
aTB->addAction(anAct);
@ -220,11 +220,11 @@ CurveCreator_Widget::CurveCreator_Widget(QWidget* parent,
connect( anAct, SIGNAL(triggered()), this, SLOT(onBringTogether()) );
aTB->addAction(anAct);
anAct = createAction( CLEAR_ALL_ID, tr("CLEAR_ALL"), QPixmap(), tr("CLEAR_ALL_TLT"),
anAct = createAction( CLEAR_ALL_ID, tr("CLEAR_ALL"), QPixmap(), tr("CLEAR_ALL_TLT"),
QKeySequence(Qt::ControlModifier | Qt::ShiftModifier | Qt::Key_Delete ) );
connect( anAct, SIGNAL(triggered()), this, SLOT( onClearAll()) );
anAct = createAction( JOIN_ALL_ID, tr("JOIN_ALL"), QPixmap(), tr("JOIN_ALL_TLT"),
anAct = createAction( JOIN_ALL_ID, tr("JOIN_ALL"), QPixmap(), tr("JOIN_ALL_TLT"),
QKeySequence(Qt::ControlModifier | Qt::ShiftModifier | Qt::Key_Plus ) );
connect( anAct, SIGNAL(triggered()), this, SLOT(onJoinAll()) );
@ -323,7 +323,7 @@ OCCViewer_ViewPort3d* CurveCreator_Widget::getViewPort()
OCCViewer_Viewer* aViewer = getOCCViewer();
if ( aViewer )
aViewPort = ((OCCViewer_ViewWindow*)aViewer->getViewManager()->getActiveView())->getViewPort();
return aViewPort;
}
@ -457,7 +457,7 @@ void CurveCreator_Widget::updateActionsStates()
}*/
}
/*int aSelObjsCnt = aSelPoints.size() + aSelSections.size();
if( aSelObjsCnt > 0 ){
anEnabledAct << REMOVE_ID;
@ -622,7 +622,7 @@ void CurveCreator_Widget::onEditSection( int theSection )
{
if( !myCurve )
return;
stopActionMode();
mySection = theSection;
QString aSectName = QString::fromStdString( myCurve->getSectionName(theSection));
@ -719,7 +719,7 @@ void CurveCreator_Widget::onSetColor()
if (aSections.size() != 1)
return;
int aSectNum = aSections[0];
int aSectNum = aSections[0];
Quantity_Color aColor = ((CurveCreator_Curve*)myCurve)->getColorSection( aSectNum );;
QColor aQColor = CurveCreator_Utils::colorConv(aColor);
@ -1017,7 +1017,7 @@ void CurveCreator_Widget::addCoordsByClick( QMouseEvent* pe )
if ( ic.IsNull() )
return;
gp_Pnt aPnt;
gp_Pnt aPnt;
OCCViewer_ViewPort3d* vp = getViewPort();
aPnt = CurveCreator_Utils::ConvertClickToPoint( pe->x(), pe->y(), vp->getView() );
@ -1144,7 +1144,7 @@ void CurveCreator_Widget::onMouseRelease( SUIT_ViewWindow* theWindow, QMouseEven
aCtx->ClearSelected( Standard_True );
}
return;
}
}
if (theEvent->button() != Qt::LeftButton) return;
if (!theWindow->inherits("OCCViewer_ViewWindow")) return;
@ -1179,15 +1179,19 @@ void CurveCreator_Widget::onMouseRelease( SUIT_ViewWindow* theWindow, QMouseEven
const TopoDS_Shape& W = Curve->mySect2Shape(sectInd+1);
TopExp_Explorer exp(W, TopAbs_VERTEX);
for (;exp.More();exp.Next())
filter->AddShape(exp.Current());
filter->AddShape(exp.Current());
}
aCtx->AddFilter(filter);
#if OCC_VERSION_LARGE <= 0x07030000
if (aCtx->HasOpenedContext())
{
Handle(AIS_LocalContext) aLctx = aCtx->LocalContext();
aLctx->Filter()->Clear();
aLctx->AddFilter(filter);
}
#else
// TODO: check if something required
#endif
//}
// Initialize the single selection if start and end points are equal,
@ -1240,7 +1244,7 @@ void CurveCreator_Widget::onMouseRelease( SUIT_ViewWindow* theWindow, QMouseEven
if ( aCoords.size() < 2 ) {
continue;
}
CurveCreator_ICurve::SectionToPoint aSectionToPoint = std::make_pair( aSectionId, aPointId );
if ( !anInitialDragPointsCoords.contains( aSectionToPoint ) ) {
@ -1248,7 +1252,7 @@ void CurveCreator_Widget::onMouseRelease( SUIT_ViewWindow* theWindow, QMouseEven
}
}
}
// Apply points sorting
CurveCreator_ICurve::SectionToPointList aPoints;
startCurveModification( aPoints, false );
@ -1268,7 +1272,7 @@ void CurveCreator_Widget::onMouseRelease( SUIT_ViewWindow* theWindow, QMouseEven
}
myCurve->setSeveralPoints( aCoordList, false );
finishCurveModification( aDraggedPoints );
} else {
// if the drag of some points has happened, restore the drag selection
@ -1460,7 +1464,7 @@ void CurveCreator_Widget::insertPointToSelectedSegment( const int theX,
}
int anInsertPos = -1;
int aLastPoint = myCurve->getNbPoints( aSectionId )-1;
int aLastPoint = myCurve->getNbPoints( aSectionId )-1;
if ( ( aPoint1Id == aLastPoint && aPoint2Id == 0 ) ||
( aPoint2Id == aLastPoint && aPoint1Id == 0 ) )
anInsertPos = -1; // if the section happens between first and last points
@ -1511,9 +1515,9 @@ void CurveCreator_Widget::moveSelectedPoints( const int theXPosition,
aChangedPos[0] = aChangedPos[0] - aXDelta;
aChangedPos[1] = aChangedPos[1] - anYDelta;
aCoordList.push_back(
std::make_pair(std::make_pair( aSectionId, aPointId ),
std::make_pair(std::make_pair( aSectionId, aPointId ),
aChangedPos ));
}
myCurve->setSeveralPoints( aCoordList, false );
@ -1546,7 +1550,7 @@ void CurveCreator_Widget::updateLocalPointView()
}
/**
*
*
*/
void CurveCreator_Widget::setLocalPointContext( const bool theOpen, const bool isUpdateTable )
{
@ -1594,10 +1598,10 @@ void CurveCreator_Widget::setSelectedPoints( const CurveCreator_ICurve::SectionT
if ( myDragStarted )
return;
Handle(AIS_InteractiveContext) aContext = getAISContext();
if ( aContext.IsNull()
if ( aContext.IsNull()
#if OCC_VERSION_LARGE <= 0x07030000
|| !aContext->HasOpenedContext()
#endif
|| !aContext->HasOpenedContext()
#endif
)
return;