From 3ce832896debab52e4a2d8e0f3c70e7532409b2c Mon Sep 17 00:00:00 2001 From: vocx-fc Date: Thu, 15 Oct 2020 16:24:40 -0500 Subject: [PATCH] Sketcher: clean up the sketcher tools tooltips Also clean up linespacing and whitespaces to make the code more readable. Extremely long lines are broken to be 80 to 100 characters long when possible. 'DrawSketchHandlerCopy' and 'DrawSketchHandlerRectangularArray' are de-indented so that they start at column 1. --- src/Mod/Sketcher/Gui/CommandSketcherTools.cpp | 835 +++++++++--------- 1 file changed, 399 insertions(+), 436 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp index 6c09f27054..9f16b20b60 100644 --- a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp +++ b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp @@ -57,7 +57,7 @@ using namespace std; using namespace SketcherGui; using namespace Sketcher; -bool isSketcherAcceleratorActive(Gui::Document *doc, bool actsOnSelection ) +bool isSketcherAcceleratorActive(Gui::Document *doc, bool actsOnSelection) { if (doc) { // checks if a Sketch Viewprovider is in Edit and is in no special mode @@ -95,8 +95,9 @@ CmdSketcherCloseShape::CmdSketcherCloseShape() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Close Shape"); - sToolTipText = QT_TR_NOOP("Produce closed shape by Link end point of element with next elements' starting point"); + sMenuText = QT_TR_NOOP("Close shape"); + sToolTipText = QT_TR_NOOP("Produce a closed shape by tying the end point " + "of one element with the next element's starting point"); sWhatsThis = "Sketcher_CloseShape"; sStatusTip = sToolTipText; sPixmap = "Sketcher_CloseShape"; @@ -128,13 +129,13 @@ void CmdSketcherCloseShape::activated(int iMsg) Sketcher::SketchObject* Obj = static_cast(selection[0].getObject()); - int GeoIdFirst=-1; - int GeoIdLast=-1; + int GeoIdFirst = -1; + int GeoIdLast = -1; // undo command open openCommand("Add coincident constraint"); // go through the selected subelements - for (unsigned int i=0; i<(SubNames.size()-1); i++ ) { + for (size_t i=0; i < (SubNames.size() - 1); i++) { // only handle edges if (SubNames[i].size() > 4 && SubNames[i].substr(0,4) == "Edge" && SubNames[i+1].size() > 4 && SubNames[i+1].substr(0,4) == "Edge") { @@ -142,10 +143,10 @@ void CmdSketcherCloseShape::activated(int iMsg) int GeoId1 = std::atoi(SubNames[i].substr(4,4000).c_str()) - 1; int GeoId2 = std::atoi(SubNames[i+1].substr(4,4000).c_str()) - 1; - if(GeoIdFirst==-1) - GeoIdFirst=GeoId1; + if (GeoIdFirst == -1) + GeoIdFirst = GeoId1; - GeoIdLast=GeoId2; + GeoIdLast = GeoId2; const Part::Geometry *geo1 = Obj->getGeometry(GeoId1); const Part::Geometry *geo2 = Obj->getGeometry(GeoId2); @@ -169,27 +170,26 @@ void CmdSketcherCloseShape::activated(int iMsg) return; } - Gui::cmdAppObjectArgs(selection[0].getObject(), "addConstraint(Sketcher.Constraint('Coincident',%d,%d,%d,%d)) ", - GeoId1,Sketcher::end,GeoId2,Sketcher::start); + Gui::cmdAppObjectArgs(selection[0].getObject(), + "addConstraint(Sketcher.Constraint('Coincident', %d, %d, %d, %d)) ", + GeoId1, Sketcher::end, GeoId2, Sketcher::start); } } // Close Last Edge with First Edge - Gui::cmdAppObjectArgs(selection[0].getObject(),"addConstraint(Sketcher.Constraint('Coincident',%d,%d,%d,%d)) ", - GeoIdLast,Sketcher::end,GeoIdFirst,Sketcher::start); + Gui::cmdAppObjectArgs(selection[0].getObject(), + "addConstraint(Sketcher.Constraint('Coincident', %d, %d, %d, %d)) ", + GeoIdLast, Sketcher::end, GeoIdFirst, Sketcher::start); - // finish the transaction and update + // finish the transaction and update, and clear the selection (convenience) commitCommand(); - tryAutoRecompute(Obj); - - // clear the selection (convenience) getSelection().clearSelection(); } bool CmdSketcherCloseShape::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } @@ -201,8 +201,8 @@ CmdSketcherConnect::CmdSketcherConnect() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Connect Edges"); - sToolTipText = QT_TR_NOOP("Link end point of element with next elements' starting point"); + sMenuText = QT_TR_NOOP("Connect edges"); + sToolTipText = QT_TR_NOOP("Tie the end point of the element with next element's starting point"); sWhatsThis = "Sketcher_ConnectLines"; sStatusTip = sToolTipText; sPixmap = "Sketcher_ConnectLines"; @@ -262,18 +262,15 @@ void CmdSketcherConnect::activated(int iMsg) } } - // finish the transaction and update + // finish the transaction and update, and clear the selection (convenience) commitCommand(); - tryAutoRecompute(Obj); - - // clear the selection (convenience) getSelection().clearSelection(); } bool CmdSketcherConnect::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } // Select Constraints of selected elements @@ -284,8 +281,8 @@ CmdSketcherSelectConstraints::CmdSketcherSelectConstraints() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Constraints"); - sToolTipText = QT_TR_NOOP("Select the constraints associated to the selected elements"); + sMenuText = QT_TR_NOOP("Select associated constraints"); + sToolTipText = QT_TR_NOOP("Select the constraints associated with the selected geometrical elements"); sWhatsThis = "Sketcher_SelectConstraints"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectConstraints"; @@ -326,9 +323,12 @@ void CmdSketcherSelectConstraints::activated(int iMsg) // push all the constraints int i = 0; for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin(); - it != vals.end(); ++it,++i) { - if ( (*it)->First == GeoId || (*it)->Second == GeoId || (*it)->Third == GeoId){ - Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), Sketcher::PropertyConstraintList::getConstraintName(i).c_str()); + it != vals.end(); ++it,++i) + { + if ((*it)->First == GeoId || (*it)->Second == GeoId || (*it)->Third == GeoId) { + Gui::Selection().addSelection(doc_name.c_str(), + obj_name.c_str(), + Sketcher::PropertyConstraintList::getConstraintName(i).c_str()); } } } @@ -337,7 +337,7 @@ void CmdSketcherSelectConstraints::activated(int iMsg) bool CmdSketcherSelectConstraints::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } // Select Origin @@ -348,8 +348,8 @@ CmdSketcherSelectOrigin::CmdSketcherSelectOrigin() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Origin"); - sToolTipText = QT_TR_NOOP("Select the origin point"); + sMenuText = QT_TR_NOOP("Select origin"); + sToolTipText = QT_TR_NOOP("Select the local origin point of the sketch"); sWhatsThis = "Sketcher_SelectOrigin"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectOrigin"; @@ -361,13 +361,9 @@ void CmdSketcherSelectOrigin::activated(int iMsg) { Q_UNUSED(iMsg); Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); - // ViewProviderSketch * vp = static_cast(Gui::Application::Instance->getViewProvider(docobj)); - // Sketcher::SketchObject* Obj = vp->getSketchObject(); std::string doc_name = Obj->getDocument()->getName(); @@ -377,15 +373,14 @@ void CmdSketcherSelectOrigin::activated(int iMsg) ss << "RootPoint"; if(Gui::Selection().isSelected(doc_name.c_str(), obj_name.c_str(), ss.str().c_str())) - Gui::Selection().rmvSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); + Gui::Selection().rmvSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); else - Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); - + Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); } bool CmdSketcherSelectOrigin::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } // Select Vertical Axis @@ -396,8 +391,8 @@ CmdSketcherSelectVerticalAxis::CmdSketcherSelectVerticalAxis() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Vertical Axis"); - sToolTipText = QT_TR_NOOP("Select the vertical axis"); + sMenuText = QT_TR_NOOP("Select vertical axis"); + sToolTipText = QT_TR_NOOP("Select the local vertical axis of the sketch"); sWhatsThis = "Sketcher_SelectVerticalAxis"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectVerticalAxis"; @@ -409,9 +404,7 @@ void CmdSketcherSelectVerticalAxis::activated(int iMsg) { Q_UNUSED(iMsg); Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); std::string doc_name = Obj->getDocument()->getName(); @@ -424,12 +417,11 @@ void CmdSketcherSelectVerticalAxis::activated(int iMsg) Gui::Selection().rmvSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); else Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); - } bool CmdSketcherSelectVerticalAxis::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } // Select Horizontal Axis @@ -440,8 +432,8 @@ CmdSketcherSelectHorizontalAxis::CmdSketcherSelectHorizontalAxis() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Horizontal Axis"); - sToolTipText = QT_TR_NOOP("Select the horizontal axis"); + sMenuText = QT_TR_NOOP("Select horizontal axis"); + sToolTipText = QT_TR_NOOP("Select the local horizontal axis of the sketch"); sWhatsThis = "Sketcher_SelectHorizontalAxis"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectHorizontalAxis"; @@ -453,9 +445,7 @@ void CmdSketcherSelectHorizontalAxis::activated(int iMsg) { Q_UNUSED(iMsg); Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); std::string doc_name = Obj->getDocument()->getName(); @@ -468,12 +458,11 @@ void CmdSketcherSelectHorizontalAxis::activated(int iMsg) Gui::Selection().rmvSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); else Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); - } bool CmdSketcherSelectHorizontalAxis::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } DEF_STD_CMD_A(CmdSketcherSelectRedundantConstraints) @@ -483,8 +472,8 @@ CmdSketcherSelectRedundantConstraints::CmdSketcherSelectRedundantConstraints() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Redundant Constraints"); - sToolTipText = QT_TR_NOOP("Select Redundant Constraints"); + sMenuText = QT_TR_NOOP("Select redundant constraints"); + sToolTipText = QT_TR_NOOP("Select redundant constraints"); sWhatsThis = "Sketcher_SelectRedundantConstraints"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectRedundantConstraints"; @@ -496,9 +485,7 @@ void CmdSketcherSelectRedundantConstraints::activated(int iMsg) { Q_UNUSED(iMsg); Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); std::string doc_name = Obj->getDocument()->getName(); @@ -514,19 +501,19 @@ void CmdSketcherSelectRedundantConstraints::activated(int iMsg) int i = 0; for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin();it != vals.end(); ++it,++i) { for(std::vector< int >::const_iterator itc= solverredundant.begin();itc != solverredundant.end(); ++itc) { - if ( (*itc) - 1 == i){ - Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), Sketcher::PropertyConstraintList::getConstraintName(i).c_str()); + if ((*itc) - 1 == i) { + Gui::Selection().addSelection(doc_name.c_str(), + obj_name.c_str(), + Sketcher::PropertyConstraintList::getConstraintName(i).c_str()); break; } } - - } } bool CmdSketcherSelectRedundantConstraints::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } DEF_STD_CMD_A(CmdSketcherSelectConflictingConstraints) @@ -536,8 +523,8 @@ CmdSketcherSelectConflictingConstraints::CmdSketcherSelectConflictingConstraints { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Conflicting Constraints"); - sToolTipText = QT_TR_NOOP("Select Conflicting Constraints"); + sMenuText = QT_TR_NOOP("Select conflicting constraints"); + sToolTipText = QT_TR_NOOP("Select conflicting constraints"); sWhatsThis = "Sketcher_SelectConflictingConstraints"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectConflictingConstraints"; @@ -549,11 +536,8 @@ void CmdSketcherSelectConflictingConstraints::activated(int iMsg) { Q_UNUSED(iMsg); Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); - std::string doc_name = Obj->getDocument()->getName(); std::string obj_name = Obj->getNameInDocument(); @@ -566,9 +550,11 @@ void CmdSketcherSelectConflictingConstraints::activated(int iMsg) // push the constraints int i = 0; for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin();it != vals.end(); ++it,++i) { - for(std::vector< int >::const_iterator itc= solverconflicting.begin();itc != solverconflicting.end(); ++itc) { - if ( (*itc) - 1 == i){ - Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), Sketcher::PropertyConstraintList::getConstraintName(i).c_str()); + for (std::vector< int >::const_iterator itc= solverconflicting.begin();itc != solverconflicting.end(); ++itc) { + if ((*itc) - 1 == i) { + Gui::Selection().addSelection(doc_name.c_str(), + obj_name.c_str(), + Sketcher::PropertyConstraintList::getConstraintName(i).c_str()); break; } } @@ -577,7 +563,7 @@ void CmdSketcherSelectConflictingConstraints::activated(int iMsg) bool CmdSketcherSelectConflictingConstraints::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } DEF_STD_CMD_A(CmdSketcherSelectElementsAssociatedWithConstraints) @@ -587,8 +573,8 @@ CmdSketcherSelectElementsAssociatedWithConstraints::CmdSketcherSelectElementsAss { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select Elements associated with constraints"); - sToolTipText = QT_TR_NOOP("Select Elements associated with constraints"); + sMenuText = QT_TR_NOOP("Select associated geometry"); + sToolTipText = QT_TR_NOOP("Select the geometrical elements associated with the selected constraints"); sWhatsThis = "Sketcher_SelectElementsAssociatedWithConstraints"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectElementsAssociatedWithConstraints"; @@ -600,11 +586,8 @@ void CmdSketcherSelectElementsAssociatedWithConstraints::activated(int iMsg) { Q_UNUSED(iMsg); std::vector selection = Gui::Selection().getSelectionEx(); - Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); const std::vector &SubNames = selection[0].getSubNames(); @@ -616,7 +599,7 @@ void CmdSketcherSelectElementsAssociatedWithConstraints::activated(int iMsg) std::string obj_name = Obj->getNameInDocument(); std::stringstream ss; - int selected=0; + int selected = 0; // go through the selected subelements for (std::vector::const_iterator it=SubNames.begin(); it != SubNames.end(); ++it) { @@ -691,15 +674,15 @@ void CmdSketcherSelectElementsAssociatedWithConstraints::activated(int iMsg) } } - if ( selected == 0 ) { + if (selected == 0) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("No constraint selected"), - QObject::tr("At least one constraint must be selected")); + QObject::tr("At least one constraint must be selected")); } } bool CmdSketcherSelectElementsAssociatedWithConstraints::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } DEF_STD_CMD_A(CmdSketcherSelectElementsWithDoFs) @@ -709,8 +692,8 @@ CmdSketcherSelectElementsWithDoFs::CmdSketcherSelectElementsWithDoFs() { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Select solver DoFs"); - sToolTipText = QT_TR_NOOP("Select elements where the solver still detects unconstrained degrees of freedom."); + sMenuText = QT_TR_NOOP("Select unconstrained DoF"); + sToolTipText = QT_TR_NOOP("Select geometrical elements where the solver still detects unconstrained degrees of freedom."); sWhatsThis = "Sketcher_SelectElementsWithDoFs"; sStatusTip = sToolTipText; sPixmap = "Sketcher_SelectElementsWithDoFs"; @@ -722,16 +705,12 @@ void CmdSketcherSelectElementsWithDoFs::activated(int iMsg) { Q_UNUSED(iMsg); getSelection().clearSelection(); - Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); std::string doc_name = Obj->getDocument()->getName(); std::string obj_name = Obj->getNameInDocument(); - std::stringstream ss; auto geos = Obj->getInternalGeometry(); @@ -740,18 +719,17 @@ void CmdSketcherSelectElementsWithDoFs::activated(int iMsg) // have to re-solve using Dense QR. GCS::QRAlgorithm curQRAlg = Obj->getSolvedSketch().getQRAlgorithm(); - if(curQRAlg == GCS::EigenSparseQR) { + if (curQRAlg == GCS::EigenSparseQR) { Obj->getSolvedSketch().setQRAlgorithm(GCS::EigenDenseQR); Obj->solve(false); } - - auto testselectvertex = [&Obj,&ss,&doc_name,&obj_name](int geoId, PointPos pos){ + auto testselectvertex = [&Obj, &ss, &doc_name, &obj_name](int geoId, PointPos pos) { ss.str(std::string()); - if(Obj->getSolvedSketch().hasDependentParameters(geoId, pos)) { + if (Obj->getSolvedSketch().hasDependentParameters(geoId, pos)) { int vertex = Obj->getVertexIndexGeoPos(geoId, pos); - if(vertex>-1) { + if (vertex > -1) { ss << "Vertex" << vertex + 1; Gui::Selection().addSelection(doc_name.c_str(), obj_name.c_str(), ss.str().c_str()); @@ -759,7 +737,7 @@ void CmdSketcherSelectElementsWithDoFs::activated(int iMsg) } }; - auto testselectedge = [&Obj,&ss,&doc_name,&obj_name](int geoId){ + auto testselectedge = [&Obj, &ss, &doc_name, &obj_name](int geoId) { ss.str(std::string()); if(Obj->getSolvedSketch().hasDependentParameters(geoId, Sketcher::none)) { @@ -770,43 +748,41 @@ void CmdSketcherSelectElementsWithDoFs::activated(int iMsg) int geoid = 0; - for(auto geo : geos) { - if(geo->getTypeId() == Part::GeomPoint::getClassTypeId()) { + for (auto geo : geos) { + if (geo->getTypeId() == Part::GeomPoint::getClassTypeId()) { testselectvertex(geoid, Sketcher::start); } - else if(geo->getTypeId() == Part::GeomLineSegment::getClassTypeId() || - geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { + else if (geo->getTypeId() == Part::GeomLineSegment::getClassTypeId() || + geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { testselectvertex(geoid, Sketcher::start); testselectvertex(geoid, Sketcher::end); testselectedge(geoid); } - else if(geo->getTypeId() == Part::GeomCircle::getClassTypeId() || - geo->getTypeId() == Part::GeomEllipse::getClassTypeId() ) { + else if (geo->getTypeId() == Part::GeomCircle::getClassTypeId() || + geo->getTypeId() == Part::GeomEllipse::getClassTypeId()) { testselectvertex(geoid, Sketcher::mid); testselectedge(geoid); } - else if(geo->getTypeId() == Part::GeomArcOfCircle::getClassTypeId() || - geo->getTypeId() == Part::GeomArcOfEllipse::getClassTypeId() || - geo->getTypeId() == Part::GeomArcOfHyperbola::getClassTypeId() || - geo->getTypeId() == Part::GeomArcOfParabola::getClassTypeId() ) { + else if (geo->getTypeId() == Part::GeomArcOfCircle::getClassTypeId() || + geo->getTypeId() == Part::GeomArcOfEllipse::getClassTypeId() || + geo->getTypeId() == Part::GeomArcOfHyperbola::getClassTypeId() || + geo->getTypeId() == Part::GeomArcOfParabola::getClassTypeId()) { testselectvertex(geoid, Sketcher::start); testselectvertex(geoid, Sketcher::end); testselectvertex(geoid, Sketcher::mid); testselectedge(geoid); } - geoid++; } - if(curQRAlg == GCS::EigenSparseQR) { + if (curQRAlg == GCS::EigenSparseQR) { Obj->getSolvedSketch().setQRAlgorithm(GCS::EigenSparseQR); } - } bool CmdSketcherSelectElementsWithDoFs::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } DEF_STD_CMD_A(CmdSketcherRestoreInternalAlignmentGeometry) @@ -817,7 +793,7 @@ CmdSketcherRestoreInternalAlignmentGeometry::CmdSketcherRestoreInternalAlignment sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); sMenuText = QT_TR_NOOP("Show/hide internal geometry"); - sToolTipText = QT_TR_NOOP("Show all internal geometry / hide unused internal geometry"); + sToolTipText = QT_TR_NOOP("Show all internal geometry or hide unused internal geometry"); sWhatsThis = "Sketcher_RestoreInternalAlignmentGeometry"; sStatusTip = sToolTipText; sPixmap = "Sketcher_Element_Ellipse_All"; @@ -834,8 +810,9 @@ void CmdSketcherRestoreInternalAlignmentGeometry::activated(int iMsg) // only one sketch with its subelements are allowed to be selected if (selection.size() != 1) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), - QObject::tr("Select elements from a single sketch.")); + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), + QObject::tr("Select elements from a single sketch.")); return; } @@ -843,19 +820,15 @@ void CmdSketcherRestoreInternalAlignmentGeometry::activated(int iMsg) const std::vector &SubNames = selection[0].getSubNames(); Sketcher::SketchObject* Obj = static_cast(selection[0].getObject()); - std::string doc_name = Obj->getDocument()->getName(); - std::string obj_name = Obj->getNameInDocument(); - std::stringstream ss; - getSelection().clearSelection(); // go through the selected subelements for (std::vector::const_iterator it=SubNames.begin(); it != SubNames.end(); ++it) { // only handle edges - if ( (it->size() > 4 && it->substr(0,4) == "Edge") || - (it->size() > 12 && it->substr(0,12) == "ExternalEdge")) { + if ((it->size() > 4 && it->substr(0,4) == "Edge") || + (it->size() > 12 && it->substr(0,12) == "ExternalEdge")) { int GeoId; - if(it->substr(0,4) == "Edge") + if (it->substr(0,4) == "Edge") GeoId = std::atoi(it->substr(4,4000).c_str()) - 1; else GeoId = -std::atoi(it->substr(12,4000).c_str()) - 2; @@ -866,7 +839,7 @@ void CmdSketcherRestoreInternalAlignmentGeometry::activated(int iMsg) geo->getTypeId() == Part::GeomArcOfEllipse::getClassTypeId() || geo->getTypeId() == Part::GeomArcOfHyperbola::getClassTypeId() || geo->getTypeId() == Part::GeomArcOfParabola::getClassTypeId() || - geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId() ) { + geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { int currentgeoid = Obj->getHighestCurveIndex(); @@ -890,7 +863,6 @@ void CmdSketcherRestoreInternalAlignmentGeometry::activated(int iMsg) } Gui::Command::commitCommand(); - tryAutoRecomputeIfNotSolve(static_cast(Obj)); } } @@ -899,7 +871,7 @@ void CmdSketcherRestoreInternalAlignmentGeometry::activated(int iMsg) bool CmdSketcherRestoreInternalAlignmentGeometry::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } DEF_STD_CMD_A(CmdSketcherSymmetry) @@ -941,7 +913,6 @@ void CmdSketcherSymmetry::activated(int iMsg) } Sketcher::SketchObject* Obj = static_cast(selection[0].getObject()); - getSelection().clearSelection(); int LastGeoId = 0; @@ -972,18 +943,18 @@ void CmdSketcherSymmetry::activated(int iMsg) // reference can be external or non-external LastGeo = Obj->getGeometry(LastGeoId); // Only for supported types - if(LastGeo->getTypeId() == Part::GeomLineSegment::getClassTypeId()) + if (LastGeo->getTypeId() == Part::GeomLineSegment::getClassTypeId()) lastgeotype = line; else lastgeotype = invalid; // lines to make symmetric (only non-external) - if(LastGeoId>=0) { + if (LastGeoId >= 0) { geoids++; stream << LastGeoId << ","; } } - else if(it->size() > 6 && it->substr(0,6) == "Vertex"){ + else if (it->size() > 6 && it->substr(0,6) == "Vertex") { // only if it is a GeomPoint int VtId = std::atoi(it->substr(6,4000).c_str()) - 1; int GeoId; @@ -996,7 +967,7 @@ void CmdSketcherSymmetry::activated(int iMsg) lastgeotype = point; // points to make symmetric - if(LastGeoId>=0) { + if (LastGeoId >= 0) { geoids++; stream << LastGeoId << ","; } @@ -1004,9 +975,9 @@ void CmdSketcherSymmetry::activated(int iMsg) } } - bool lastvertexoraxis=false; + bool lastvertexoraxis = false; // check if last selected element is a Vertex, not being a GeomPoint - if(SubNames.rbegin()->size() > 6 && SubNames.rbegin()->substr(0,6) == "Vertex"){ + if (SubNames.rbegin()->size() > 6 && SubNames.rbegin()->substr(0,6) == "Vertex") { int VtId = std::atoi(SubNames.rbegin()->substr(6,4000).c_str()) - 1; int GeoId; Sketcher::PointPos PosId; @@ -1015,32 +986,32 @@ void CmdSketcherSymmetry::activated(int iMsg) LastGeoId = GeoId; LastPointPos = PosId; lastgeotype = point; - lastvertexoraxis=true; + lastvertexoraxis = true; } } // check if last selected element is horizontal axis - else if(SubNames.rbegin()->size() == 6 && SubNames.rbegin()->substr(0,6) == "H_Axis"){ + else if (SubNames.rbegin()->size() == 6 && SubNames.rbegin()->substr(0,6) == "H_Axis") { LastGeoId = Sketcher::GeoEnum::HAxis; LastPointPos = Sketcher::none; lastgeotype = line; - lastvertexoraxis=true; + lastvertexoraxis = true; } // check if last selected element is vertical axis - else if(SubNames.rbegin()->size() == 6 && SubNames.rbegin()->substr(0,6) == "V_Axis"){ + else if (SubNames.rbegin()->size() == 6 && SubNames.rbegin()->substr(0,6) == "V_Axis") { LastGeoId = Sketcher::GeoEnum::VAxis; LastPointPos = Sketcher::none; lastgeotype = line; - lastvertexoraxis=true; + lastvertexoraxis = true; } // check if last selected element is the root point - else if(SubNames.rbegin()->size() == 9 && SubNames.rbegin()->substr(0,9) == "RootPoint"){ + else if (SubNames.rbegin()->size() == 9 && SubNames.rbegin()->substr(0,9) == "RootPoint") { LastGeoId = Sketcher::GeoEnum::RtPnt; LastPointPos = Sketcher::start; lastgeotype = point; - lastvertexoraxis=true; + lastvertexoraxis = true; } - if ( geoids == 0 || (geoids == 1 && LastGeoId>=0 && !lastvertexoraxis) ) { + if (geoids == 0 || (geoids == 1 && LastGeoId >= 0 && !lastvertexoraxis)) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("A symmetric construction requires " "at least two geometric elements, " @@ -1049,7 +1020,7 @@ void CmdSketcherSymmetry::activated(int iMsg) return; } - if ( lastgeotype == invalid ) { + if (lastgeotype == invalid) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("The last element must be a point " "or a line serving as reference " @@ -1064,10 +1035,10 @@ void CmdSketcherSymmetry::activated(int iMsg) // 2- Last element is a point GeomPoint // 3- Last element is a point (Vertex) - if(LastGeoId>=0 && !lastvertexoraxis) { + if (LastGeoId >= 0 && !lastvertexoraxis) { // if LastGeoId was added remove the last element int index = geoIdList.rfind(','); - index = geoIdList.rfind(',',index-1); + index = geoIdList.rfind(',', index-1); geoIdList.resize(index); } else { @@ -1075,27 +1046,27 @@ void CmdSketcherSymmetry::activated(int iMsg) geoIdList.resize(index); } - geoIdList.insert(0,1,'['); - geoIdList.append(1,']'); + geoIdList.insert(0, 1, '['); + geoIdList.append(1, ']'); - Gui::Command::openCommand("Create Symmetric geometry"); + Gui::Command::openCommand("Create symmetric geometry"); try{ - Gui::cmdAppObjectArgs(Obj, "addSymmetric(%s,%d,%d)", geoIdList.c_str(), LastGeoId, LastPointPos); - + Gui::cmdAppObjectArgs(Obj, + "addSymmetric(%s, %d, %d)", + geoIdList.c_str(), LastGeoId, LastPointPos); Gui::Command::commitCommand(); } catch (const Base::Exception& e) { Base::Console().Error("%s\n", e.what()); Gui::Command::abortCommand(); } - tryAutoRecomputeIfNotSolve(Obj); } bool CmdSketcherSymmetry::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } @@ -1150,132 +1121,131 @@ static const char *cursor_createcopy[]={ "................................", "................................"}; - class DrawSketchHandlerCopy: public DrawSketchHandler +class DrawSketchHandlerCopy: public DrawSketchHandler +{ +public: + DrawSketchHandlerCopy(string geoidlist, int origingeoid, + Sketcher::PointPos originpos, int nelements, + SketcherCopy::Op op) + : Mode(STATUS_SEEK_First) + , geoIdList(geoidlist) + , Origin() + , OriginGeoId(origingeoid) + , OriginPos(originpos) + , nElements(nelements) + , Op(op) + , EditCurve(2) { - public: - DrawSketchHandlerCopy(string geoidlist, int origingeoid, Sketcher::PointPos originpos, int nelements, SketcherCopy::Op op) - : Mode(STATUS_SEEK_First) - , geoIdList(geoidlist) - , Origin() - , OriginGeoId(origingeoid) - , OriginPos(originpos) - , nElements(nelements) - , Op(op) - , EditCurve(2) - { - } + } - virtual ~DrawSketchHandlerCopy(){} - /// mode table - enum SelectMode { - STATUS_SEEK_First, /**< enum value ----. */ - STATUS_End - }; + virtual ~DrawSketchHandlerCopy(){} + /// mode table + enum SelectMode { + STATUS_SEEK_First, /**< enum value ----. */ + STATUS_End + }; - virtual void activated(ViewProviderSketch *sketchgui) - { - setCursor(QPixmap(cursor_createcopy),7,7); - Origin = static_cast(sketchgui->getObject())->getPoint(OriginGeoId, OriginPos); - EditCurve[0] = Base::Vector2d(Origin.x,Origin.y); - } + virtual void activated(ViewProviderSketch *sketchgui) + { + setCursor(QPixmap(cursor_createcopy), 7, 7); + Origin = static_cast(sketchgui->getObject())->getPoint(OriginGeoId, OriginPos); + EditCurve[0] = Base::Vector2d(Origin.x, Origin.y); + } - virtual void mouseMove(Base::Vector2d onSketchPos) - { - if (Mode==STATUS_SEEK_First) { - float length = (onSketchPos - EditCurve[0]).Length(); - float angle = (onSketchPos - EditCurve[0]).GetAngle(Base::Vector2d(1.f,0.f)); - SbString text; - text.sprintf(" (%.1f,%.1fdeg)", length, angle * 180 / M_PI); - setPositionText(onSketchPos, text); - - EditCurve[1] = onSketchPos; - sketchgui->drawEdit(EditCurve); - if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2d(0.0,0.0),AutoConstraint::VERTEX)) { - renderSuggestConstraintsCursor(sugConstr1); - return; - } + virtual void mouseMove(Base::Vector2d onSketchPos) + { + if (Mode == STATUS_SEEK_First) { + float length = (onSketchPos - EditCurve[0]).Length(); + float angle = (onSketchPos - EditCurve[0]).GetAngle(Base::Vector2d(1.f,0.f)); + SbString text; + text.sprintf(" (%.1f, %.1fdeg)", length, angle * 180 / M_PI); + setPositionText(onSketchPos, text); + EditCurve[1] = onSketchPos; + sketchgui->drawEdit(EditCurve); + if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2d(0.0, 0.0), AutoConstraint::VERTEX)) { + renderSuggestConstraintsCursor(sugConstr1); + return; } - applyCursor(); } + applyCursor(); + } - virtual bool pressButton(Base::Vector2d onSketchPos) - { - if (Mode==STATUS_SEEK_First){ - EditCurve[1] = onSketchPos; - sketchgui->drawEdit(EditCurve); - Mode = STATUS_End; - } - - return true; + virtual bool pressButton(Base::Vector2d onSketchPos) + { + if (Mode == STATUS_SEEK_First) { + EditCurve[1] = onSketchPos; + sketchgui->drawEdit(EditCurve); + Mode = STATUS_End; } + return true; + } - virtual bool releaseButton(Base::Vector2d onSketchPos) + virtual bool releaseButton(Base::Vector2d onSketchPos) + { + Q_UNUSED(onSketchPos); + if (Mode == STATUS_End) { - Q_UNUSED(onSketchPos); - if (Mode==STATUS_End){ + Base::Vector2d vector = EditCurve[1] - EditCurve[0]; + unsetCursor(); + resetPositionText(); - Base::Vector2d vector = EditCurve[1]-EditCurve[0]; + int currentgeoid = static_cast(sketchgui->getObject())->getHighestCurveIndex(); + Gui::Command::openCommand("Copy/clone/move geometry"); - unsetCursor(); - resetPositionText(); - - int currentgeoid = static_cast(sketchgui->getObject())->getHighestCurveIndex(); - - Gui::Command::openCommand("Copy/clone/move geometry"); - - try{ - if( Op != SketcherCopy::Move) { - Gui::cmdAppObjectArgs(sketchgui->getObject(), "addCopy(%s,App.Vector(%f,%f,0),%s)", - geoIdList.c_str(), vector.x, vector.y, - (Op == SketcherCopy::Clone?"True":"False")); - } - else { - Gui::cmdAppObjectArgs(sketchgui->getObject(), "addMove(%s,App.Vector(%f,%f,0))", - geoIdList.c_str(), vector.x, vector.y); - } - - Gui::Command::commitCommand(); - } - catch (const Base::Exception& e) { - Base::Console().Error("%s\n", e.what()); - Gui::Command::abortCommand(); - } - - if( Op != SketcherCopy::Move) { - // add auto constraints for the destination copy - if (sugConstr1.size() > 0) { - createAutoConstraints(sugConstr1, currentgeoid+nElements, OriginPos); - sugConstr1.clear(); - } + try{ + if (Op != SketcherCopy::Move) { + Gui::cmdAppObjectArgs(sketchgui->getObject(), + "addCopy(%s, App.Vector(%f, %f, 0), %s)", + geoIdList.c_str(), vector.x, vector.y, + (Op == SketcherCopy::Clone ? "True" : "False")); } else { - if (sugConstr1.size() > 0) { - createAutoConstraints(sugConstr1, OriginGeoId, OriginPos); - sugConstr1.clear(); - } + Gui::cmdAppObjectArgs(sketchgui->getObject(), + "addMove(%s, App.Vector(%f, %f, 0))", + geoIdList.c_str(), vector.x, vector.y); } - - tryAutoRecomputeIfNotSolve(static_cast(sketchgui->getObject())); - - EditCurve.clear(); - sketchgui->drawEdit(EditCurve); - - sketchgui->purgeHandler(); // no code after this line, Handler get deleted in ViewProvider + Gui::Command::commitCommand(); } - return true; + catch (const Base::Exception& e) { + Base::Console().Error("%s\n", e.what()); + Gui::Command::abortCommand(); + } + + if (Op != SketcherCopy::Move) { + // add auto constraints for the destination copy + if (sugConstr1.size() > 0) { + createAutoConstraints(sugConstr1, currentgeoid+nElements, OriginPos); + sugConstr1.clear(); + } + } + else { + if (sugConstr1.size() > 0) { + createAutoConstraints(sugConstr1, OriginGeoId, OriginPos); + sugConstr1.clear(); + } + } + + tryAutoRecomputeIfNotSolve(static_cast(sketchgui->getObject())); + EditCurve.clear(); + sketchgui->drawEdit(EditCurve); + + // no code after this line, Handler gets deleted in ViewProvider + sketchgui->purgeHandler(); } - protected: - SelectMode Mode; - string geoIdList; - Base::Vector3d Origin; - int OriginGeoId; - Sketcher::PointPos OriginPos; - int nElements; - SketcherCopy::Op Op; - std::vector EditCurve; - std::vector sugConstr1; - }; + return true; + } +protected: + SelectMode Mode; + string geoIdList; + Base::Vector3d Origin; + int OriginGeoId; + Sketcher::PointPos OriginPos; + int nElements; + SketcherCopy::Op Op; + std::vector EditCurve; + std::vector sugConstr1; +}; /*---- SketcherCopy definition ----*/ SketcherCopy::SketcherCopy(const char* name): Command(name) @@ -1288,21 +1258,22 @@ void SketcherCopy::activate(SketcherCopy::Op op) // only one sketch with its subelements are allowed to be selected if (selection.size() != 1) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), - QObject::tr("Select elements from a single sketch.")); + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), + QObject::tr("Select elements from a single sketch.")); return; } // get the needed lists and objects const std::vector &SubNames = selection[0].getSubNames(); if (SubNames.empty()) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), - QObject::tr("Select elements from a single sketch.")); + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), + QObject::tr("Select elements from a single sketch.")); return; } Sketcher::SketchObject* Obj = static_cast(selection[0].getObject()); - getSelection().clearSelection(); int LastGeoId = 0; @@ -1319,7 +1290,7 @@ void SketcherCopy::activate(SketcherCopy::Op op) LastPointPos = Sketcher::none; LastGeo = Obj->getGeometry(LastGeoId); // lines to copy - if (LastGeoId>=0) { + if (LastGeoId >= 0) { geoids++; stream << LastGeoId << ","; } @@ -1334,7 +1305,7 @@ void SketcherCopy::activate(SketcherCopy::Op op) LastGeoId = GeoId; LastPointPos = Sketcher::start; // points to copy - if (LastGeoId>=0) { + if (LastGeoId >= 0) { geoids++; stream << LastGeoId << ","; } @@ -1343,7 +1314,7 @@ void SketcherCopy::activate(SketcherCopy::Op op) } // check if last selected element is a Vertex, not being a GeomPoint - if (SubNames.rbegin()->size() > 6 && SubNames.rbegin()->substr(0,6) == "Vertex"){ + if (SubNames.rbegin()->size() > 6 && SubNames.rbegin()->substr(0,6) == "Vertex") { int VtId = std::atoi(SubNames.rbegin()->substr(6,4000).c_str()) - 1; int GeoId; Sketcher::PointPos PosId; @@ -1355,7 +1326,8 @@ void SketcherCopy::activate(SketcherCopy::Op op) } if (geoids < 1) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), QObject::tr("A copy requires at least one selected non-external geometric element")); return; } @@ -1365,8 +1337,8 @@ void SketcherCopy::activate(SketcherCopy::Op op) // remove the last added comma and brackets to make the python list int index = geoIdList.rfind(','); geoIdList.resize(index); - geoIdList.insert(0,1,'['); - geoIdList.append(1,']'); + geoIdList.insert(0, 1, '['); + geoIdList.append(1, ']'); // if the last element is not a point serving as a reference for the copy process // then make the start point of the last element the copy reference (if it exists, if not the center point) @@ -1374,10 +1346,10 @@ void SketcherCopy::activate(SketcherCopy::Op op) if (LastGeo->getTypeId() == Part::GeomCircle::getClassTypeId() || LastGeo->getTypeId() == Part::GeomEllipse::getClassTypeId()) { LastPointPos = Sketcher::mid; - } - else { - LastPointPos = Sketcher::start; - } + } + else { + LastPointPos = Sketcher::start; + } } // Ask the user if he wants to clone or to simple copy @@ -1395,7 +1367,8 @@ void SketcherCopy::activate(SketcherCopy::Op op) } */ - ActivateAcceleratorHandler(getActiveGuiDocument(),new DrawSketchHandlerCopy(geoIdList, LastGeoId, LastPointPos, geoids, op)); + ActivateAcceleratorHandler(getActiveGuiDocument(), + new DrawSketchHandlerCopy(geoIdList, LastGeoId, LastPointPos, geoids, op)); } @@ -1413,7 +1386,7 @@ protected: }; CmdSketcherCopy::CmdSketcherCopy() -:SketcherCopy("Sketcher_Copy") + :SketcherCopy("Sketcher_Copy") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); @@ -1440,7 +1413,7 @@ void CmdSketcherCopy::activate() bool CmdSketcherCopy::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } class CmdSketcherClone : public SketcherCopy @@ -1457,7 +1430,7 @@ protected: }; CmdSketcherClone::CmdSketcherClone() -:SketcherCopy("Sketcher_Clone") + :SketcherCopy("Sketcher_Clone") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); @@ -1483,7 +1456,7 @@ void CmdSketcherClone::activate() bool CmdSketcherClone::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } class CmdSketcherMove : public SketcherCopy @@ -1500,7 +1473,7 @@ protected: }; CmdSketcherMove::CmdSketcherMove() -:SketcherCopy("Sketcher_Move") + :SketcherCopy("Sketcher_Move") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); @@ -1524,16 +1497,15 @@ void CmdSketcherMove::activate() SketcherCopy::activate(SketcherCopy::Move); } - bool CmdSketcherMove::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } DEF_STD_CMD_ACL(CmdSketcherCompCopy) CmdSketcherCompCopy::CmdSketcherCompCopy() -: Command("Sketcher_CompCopy") + : Command("Sketcher_CompCopy") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); @@ -1558,17 +1530,17 @@ void CmdSketcherCompCopy::activated(int iMsg) assert(iMsg < a.size()); pcAction->setIcon(a[iMsg]->icon()); - if (iMsg==0){ + if (iMsg == 0){ CmdSketcherClone sc; sc.activate(); pcAction->setShortcut(QString::fromLatin1(this->sAccel)); } - else if (iMsg==1) { + else if (iMsg == 1) { CmdSketcherCopy sc; sc.activate(); pcAction->setShortcut(QString::fromLatin1(this->sAccel)); } - else if (iMsg==2) { + else if (iMsg == 2) { CmdSketcherMove sc; sc.activate(); pcAction->setShortcut(QString::fromLatin1("")); @@ -1669,139 +1641,137 @@ static const char *cursor_createrectangulararray[]={ "................................", "................................"}; - class DrawSketchHandlerRectangularArray: public DrawSketchHandler +class DrawSketchHandlerRectangularArray: public DrawSketchHandler +{ +public: + DrawSketchHandlerRectangularArray(string geoidlist, int origingeoid, + Sketcher::PointPos originpos, int nelements, bool clone, + int rows, int cols, bool constraintSeparation, + bool equalVerticalHorizontalSpacing) + : Mode(STATUS_SEEK_First) + , geoIdList(geoidlist) + , OriginGeoId(origingeoid) + , OriginPos(originpos) + , nElements(nelements) + , Clone(clone) + , Rows(rows) + , Cols(cols) + , ConstraintSeparation(constraintSeparation) + , EqualVerticalHorizontalSpacing(equalVerticalHorizontalSpacing) + , EditCurve(2) { - public: - DrawSketchHandlerRectangularArray(string geoidlist, int origingeoid, Sketcher::PointPos originpos, int nelements, bool clone, - int rows, int cols, bool constraintSeparation, - bool equalVerticalHorizontalSpacing ) - : Mode(STATUS_SEEK_First) - , geoIdList(geoidlist) - , OriginGeoId(origingeoid) - , OriginPos(originpos) - , nElements(nelements) - , Clone(clone) - , Rows(rows) - , Cols(cols) - , ConstraintSeparation(constraintSeparation) - , EqualVerticalHorizontalSpacing(equalVerticalHorizontalSpacing) - , EditCurve(2) - { - } + } - virtual ~DrawSketchHandlerRectangularArray(){} - /// mode table - enum SelectMode { - STATUS_SEEK_First, /**< enum value ----. */ - STATUS_End - }; - - virtual void activated(ViewProviderSketch *sketchgui) - { - setCursor(QPixmap(cursor_createrectangulararray),7,7); - Origin = static_cast(sketchgui->getObject())->getPoint(OriginGeoId, OriginPos); - EditCurve[0] = Base::Vector2d(Origin.x,Origin.y); - } - - virtual void mouseMove(Base::Vector2d onSketchPos) - { - if (Mode==STATUS_SEEK_First) { - float length = (onSketchPos - EditCurve[0]).Length(); - float angle = (onSketchPos - EditCurve[0]).GetAngle(Base::Vector2d(1.f,0.f)); - SbString text; - text.sprintf(" (%.1f,%.1fdeg)", length, angle * 180 / M_PI); - setPositionText(onSketchPos, text); - - EditCurve[1] = onSketchPos; - sketchgui->drawEdit(EditCurve); - if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2d(0.0,0.0),AutoConstraint::VERTEX)) { - renderSuggestConstraintsCursor(sugConstr1); - return; - } - - } - applyCursor(); - } - - virtual bool pressButton(Base::Vector2d onSketchPos) - { - if (Mode==STATUS_SEEK_First){ - EditCurve[1] = onSketchPos; - sketchgui->drawEdit(EditCurve); - Mode = STATUS_End; - } - - return true; - } - - virtual bool releaseButton(Base::Vector2d onSketchPos) - { - Q_UNUSED(onSketchPos); - if (Mode==STATUS_End){ - - Base::Vector2d vector = EditCurve[1]-EditCurve[0]; - - unsetCursor(); - resetPositionText(); - - Gui::Command::openCommand("Create copy of geometry"); - - try { - Gui::cmdAppObjectArgs(sketchgui->getObject(), "addRectangularArray(%s, App.Vector(%f,%f,0),%s,%d,%d,%s,%f)", - geoIdList.c_str(), vector.x, vector.y, - (Clone?"True":"False"), - Cols, Rows, - (ConstraintSeparation?"True":"False"), - (EqualVerticalHorizontalSpacing?1.0:0.5)); - - Gui::Command::commitCommand(); - } - catch (const Base::Exception& e) { - Base::Console().Error("%s\n", e.what()); - Gui::Command::abortCommand(); - } - - // add auto constraints for the destination copy - if (sugConstr1.size() > 0) { - createAutoConstraints(sugConstr1, OriginGeoId+nElements, OriginPos); - sugConstr1.clear(); - } - - tryAutoRecomputeIfNotSolve(static_cast(sketchgui->getObject())); - - - EditCurve.clear(); - sketchgui->drawEdit(EditCurve); - - sketchgui->purgeHandler(); // no code after this line, Handler get deleted in ViewProvider - } - return true; - } - protected: - SelectMode Mode; - string geoIdList; - Base::Vector3d Origin; - int OriginGeoId; - Sketcher::PointPos OriginPos; - int nElements; - bool Clone; - int Rows; - int Cols; - bool ConstraintSeparation; - bool EqualVerticalHorizontalSpacing; - std::vector EditCurve; - std::vector sugConstr1; + virtual ~DrawSketchHandlerRectangularArray(){} + /// mode table + enum SelectMode { + STATUS_SEEK_First, /**< enum value ----. */ + STATUS_End }; + virtual void activated(ViewProviderSketch *sketchgui) + { + setCursor(QPixmap(cursor_createrectangulararray), 7, 7); + Origin = static_cast(sketchgui->getObject())->getPoint(OriginGeoId, OriginPos); + EditCurve[0] = Base::Vector2d(Origin.x, Origin.y); + } + + virtual void mouseMove(Base::Vector2d onSketchPos) + { + if (Mode==STATUS_SEEK_First) { + float length = (onSketchPos - EditCurve[0]).Length(); + float angle = (onSketchPos - EditCurve[0]).GetAngle(Base::Vector2d(1.f, 0.f)); + SbString text; + text.sprintf(" (%.1f, %.1fdeg)", length, angle * 180 / M_PI); + setPositionText(onSketchPos, text); + + EditCurve[1] = onSketchPos; + sketchgui->drawEdit(EditCurve); + if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2d(0.0, 0.0), AutoConstraint::VERTEX)) + { + renderSuggestConstraintsCursor(sugConstr1); + return; + } + + } + applyCursor(); + } + + virtual bool pressButton(Base::Vector2d onSketchPos) + { + if (Mode == STATUS_SEEK_First) { + EditCurve[1] = onSketchPos; + sketchgui->drawEdit(EditCurve); + Mode = STATUS_End; + } + return true; + } + + virtual bool releaseButton(Base::Vector2d onSketchPos) + { + Q_UNUSED(onSketchPos); + if (Mode == STATUS_End) { + Base::Vector2d vector = EditCurve[1] - EditCurve[0]; + unsetCursor(); + resetPositionText(); + + Gui::Command::openCommand("Create copy of geometry"); + + try { + Gui::cmdAppObjectArgs(sketchgui->getObject(), + "addRectangularArray(%s, App.Vector(%f, %f, 0), %s, %d, %d, %s, %f)", + geoIdList.c_str(), vector.x, vector.y, + (Clone ? "True" : "False"), + Cols, Rows, + (ConstraintSeparation ? "True" : "False"), + (EqualVerticalHorizontalSpacing ? 1.0 : 0.5)); + Gui::Command::commitCommand(); + } + catch (const Base::Exception& e) { + Base::Console().Error("%s\n", e.what()); + Gui::Command::abortCommand(); + } + + // add auto constraints for the destination copy + if (sugConstr1.size() > 0) { + createAutoConstraints(sugConstr1, OriginGeoId+nElements, OriginPos); + sugConstr1.clear(); + } + tryAutoRecomputeIfNotSolve(static_cast(sketchgui->getObject())); + + EditCurve.clear(); + sketchgui->drawEdit(EditCurve); + + // no code after this line, Handler is deleted in ViewProvider + sketchgui->purgeHandler(); + } + return true; + } +protected: + SelectMode Mode; + string geoIdList; + Base::Vector3d Origin; + int OriginGeoId; + Sketcher::PointPos OriginPos; + int nElements; + bool Clone; + int Rows; + int Cols; + bool ConstraintSeparation; + bool EqualVerticalHorizontalSpacing; + std::vector EditCurve; + std::vector sugConstr1; +}; + DEF_STD_CMD_A(CmdSketcherRectangularArray) CmdSketcherRectangularArray::CmdSketcherRectangularArray() -:Command("Sketcher_RectangularArray") + :Command("Sketcher_RectangularArray") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Rectangular Array"); + sMenuText = QT_TR_NOOP("Rectangular array"); sToolTipText = QT_TR_NOOP("Creates a rectangular array pattern of the geometry taking as reference the last selected point"); sWhatsThis = "Sketcher_RectangularArray"; sStatusTip = sToolTipText; @@ -1819,7 +1789,8 @@ void CmdSketcherRectangularArray::activated(int iMsg) // only one sketch with its subelements are allowed to be selected if (selection.size() != 1) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), QObject::tr("Select elements from a single sketch.")); return; } @@ -1827,8 +1798,9 @@ void CmdSketcherRectangularArray::activated(int iMsg) // get the needed lists and objects const std::vector &SubNames = selection[0].getSubNames(); if (SubNames.empty()) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), - QObject::tr("Select elements from a single sketch.")); + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), + QObject::tr("Select elements from a single sketch.")); return; } @@ -1849,11 +1821,10 @@ void CmdSketcherRectangularArray::activated(int iMsg) if (it->size() > 4 && it->substr(0,4) == "Edge") { LastGeoId = std::atoi(it->substr(4,4000).c_str()) - 1; LastPointPos = Sketcher::none; - LastGeo = Obj->getGeometry(LastGeoId); // lines to copy - if (LastGeoId>=0) { + if (LastGeoId >= 0) { geoids++; stream << LastGeoId << ","; } @@ -1868,7 +1839,7 @@ void CmdSketcherRectangularArray::activated(int iMsg) LastGeoId = GeoId; LastPointPos = Sketcher::start; // points to copy - if(LastGeoId>=0) { + if (LastGeoId >= 0) { geoids++; stream << LastGeoId << ","; } @@ -1888,8 +1859,9 @@ void CmdSketcherRectangularArray::activated(int iMsg) } } - if ( geoids < 1 ) { - QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), + if (geoids < 1) { + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Wrong selection"), QObject::tr("A copy requires at least one selected non-external geometric element")); return; } @@ -1899,8 +1871,8 @@ void CmdSketcherRectangularArray::activated(int iMsg) // remove the last added comma and brackets to make the python list int index = geoIdList.rfind(','); geoIdList.resize(index); - geoIdList.insert(0,1,'['); - geoIdList.append(1,']'); + geoIdList.insert(0, 1, '['); + geoIdList.append(1, ']'); // if the last element is not a point serving as a reference for the copy process // then make the start point of the last element the copy reference (if it exists, if not the center point) @@ -1923,25 +1895,24 @@ void CmdSketcherRectangularArray::activated(int iMsg) slad->Rows, slad->Cols, slad->ConstraintSeparation, slad->EqualVerticalHorizontalSpacing)); } - delete slad; } bool CmdSketcherRectangularArray::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), true ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), true); } -// Select Origin DEF_STD_CMD_A(CmdSketcherDeleteAllGeometry) CmdSketcherDeleteAllGeometry::CmdSketcherDeleteAllGeometry() -:Command("Sketcher_DeleteAllGeometry") + :Command("Sketcher_DeleteAllGeometry") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Delete All Geometry"); - sToolTipText = QT_TR_NOOP("Deletes all the geometry and constraints but external geometry"); + sMenuText = QT_TR_NOOP("Delete all geometry"); + sToolTipText = QT_TR_NOOP("Delete all geometry and constraints in the current sketch, " + "with the exception of external geometry"); sWhatsThis = "Sketcher_DeleteAllGeometry"; sStatusTip = sToolTipText; sPixmap = "Sketcher_DeleteGeometry"; @@ -1954,33 +1925,29 @@ void CmdSketcherDeleteAllGeometry::activated(int iMsg) Q_UNUSED(iMsg); int ret = QMessageBox::question(Gui::getMainWindow(), QObject::tr("Delete All Geometry"), - QObject::tr("Are you really sure you want to delete all the geometry and constraints?"), + QObject::tr("Are you really sure you want to delete all geometry and constraints?"), QMessageBox::Yes, QMessageBox::Cancel); // use an equality constraint if (ret == QMessageBox::Yes) { getSelection().clearSelection(); - Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); try { - Gui::Command::openCommand("Delete All Geometry"); + Gui::Command::openCommand("Delete all geometry"); Gui::cmdAppObjectArgs(Obj, "deleteAllGeometry()"); - Gui::Command::commitCommand(); } catch (const Base::Exception& e) { - Base::Console().Error("Failed to delete All Geometry: %s\n", e.what()); + Base::Console().Error("Failed to delete all geometry: %s\n", e.what()); Gui::Command::abortCommand(); } ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher"); - bool autoRecompute = hGrp->GetBool("AutoRecompute",false); + bool autoRecompute = hGrp->GetBool("AutoRecompute", false); - if(autoRecompute) + if (autoRecompute) Gui::Command::updateActive(); else Obj->solve(); @@ -1993,18 +1960,18 @@ void CmdSketcherDeleteAllGeometry::activated(int iMsg) bool CmdSketcherDeleteAllGeometry::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } DEF_STD_CMD_A(CmdSketcherDeleteAllConstraints) CmdSketcherDeleteAllConstraints::CmdSketcherDeleteAllConstraints() -:Command("Sketcher_DeleteAllConstraints") + :Command("Sketcher_DeleteAllConstraints") { sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); - sMenuText = QT_TR_NOOP("Delete All Constraints"); - sToolTipText = QT_TR_NOOP("Deletes all the constraints"); + sMenuText = QT_TR_NOOP("Delete all constraints"); + sToolTipText = QT_TR_NOOP("Delete all constraints in the sketch"); sWhatsThis = "Sketcher_DeleteAllConstraints"; sStatusTip = sToolTipText; sPixmap = "Sketcher_DeleteConstraints"; @@ -2022,17 +1989,13 @@ void CmdSketcherDeleteAllConstraints::activated(int iMsg) if (ret == QMessageBox::Yes) { getSelection().clearSelection(); - Gui::Document * doc= getActiveGuiDocument(); - SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); - Sketcher::SketchObject* Obj= vp->getSketchObject(); try { Gui::Command::openCommand("Delete All Constraints"); Gui::cmdAppObjectArgs(Obj, "deleteAllConstraints()"); - Gui::Command::commitCommand(); } catch (const Base::Exception& e) { @@ -2043,7 +2006,7 @@ void CmdSketcherDeleteAllConstraints::activated(int iMsg) ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher"); bool autoRecompute = hGrp->GetBool("AutoRecompute",false); - if(autoRecompute) + if (autoRecompute) Gui::Command::updateActive(); else Obj->solve(); @@ -2057,7 +2020,7 @@ void CmdSketcherDeleteAllConstraints::activated(int iMsg) bool CmdSketcherDeleteAllConstraints::isActive(void) { - return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); + return isSketcherAcceleratorActive(getActiveGuiDocument(), false); } void CreateSketcherCommandsConstraintAccel(void)