Sketcher: clean up the sketcher B-spline 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.
This commit is contained in:
vocx-fc
2020-10-15 18:34:45 -05:00
committed by wmayer
parent 3ce832896d
commit 9936004fbc

View File

@@ -55,13 +55,12 @@ using namespace std;
using namespace SketcherGui;
using namespace Sketcher;
bool isSketcherBSplineActive(Gui::Document *doc, bool actsOnSelection )
bool isSketcherBSplineActive(Gui::Document *doc, bool actsOnSelection)
{
if (doc) {
// checks if a Sketch Viewprovider is in Edit and is in no special mode
if (doc->getInEdit() && doc->getInEdit()->isDerivedFrom(SketcherGui::ViewProviderSketch::getClassTypeId())) {
if (static_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit())
->getSketchMode() == ViewProviderSketch::STATUS_NONE) {
if (static_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit())->getSketchMode() == ViewProviderSketch::STATUS_NONE) {
if (!actsOnSelection)
return true;
else if (Gui::Selection().countObjectsOfType(Sketcher::SketchObject::getClassTypeId()) > 0)
@@ -69,16 +68,13 @@ bool isSketcherBSplineActive(Gui::Document *doc, bool actsOnSelection )
}
}
}
return false;
}
void ActivateBSplineHandler(Gui::Document *doc,DrawSketchHandler *handler)
{
if (doc) {
if (doc->getInEdit() && doc->getInEdit()->isDerivedFrom
(SketcherGui::ViewProviderSketch::getClassTypeId())) {
if (doc->getInEdit() && doc->getInEdit()->isDerivedFrom(SketcherGui::ViewProviderSketch::getClassTypeId())) {
SketcherGui::ViewProviderSketch* vp = static_cast<SketcherGui::ViewProviderSketch*> (doc->getInEdit());
vp->purgeHandler();
vp->activateHandler(handler);
@@ -89,11 +85,8 @@ void ActivateBSplineHandler(Gui::Document *doc,DrawSketchHandler *handler)
void ShowRestoreInformationLayer(SketcherGui::ViewProviderSketch* vp, char * visibleelementname)
{
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher/General");
bool status = hGrp->GetBool(visibleelementname, true);
hGrp->SetBool(visibleelementname, !status);
vp->showRestoreInformationLayer();
}
@@ -101,11 +94,11 @@ void ShowRestoreInformationLayer(SketcherGui::ViewProviderSketch* vp, char * vis
DEF_STD_CMD_A(CmdSketcherBSplineDegree)
CmdSketcherBSplineDegree::CmdSketcherBSplineDegree()
:Command("Sketcher_BSplineDegree")
: Command("Sketcher_BSplineDegree")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Show/Hide B-spline degree");
sMenuText = QT_TR_NOOP("Show/hide B-spline degree");
sToolTipText = QT_TR_NOOP("Switches between showing and hiding the degree for all B-splines");
sWhatsThis = "Sketcher_BSplineDegree";
sStatusTip = sToolTipText;
@@ -118,28 +111,25 @@ void CmdSketcherBSplineDegree::activated(int iMsg)
{
Q_UNUSED(iMsg);
Gui::Document * doc= getActiveGuiDocument();
Gui::Document * doc = getActiveGuiDocument();
SketcherGui::ViewProviderSketch* vp = static_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit());
ShowRestoreInformationLayer(vp, "BSplineDegreeVisible");
}
bool CmdSketcherBSplineDegree::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), false );
return isSketcherBSplineActive(getActiveGuiDocument(), false);
}
// Show/Hide B-spline polygon
DEF_STD_CMD_A(CmdSketcherBSplinePolygon)
CmdSketcherBSplinePolygon::CmdSketcherBSplinePolygon()
:Command("Sketcher_BSplinePolygon")
: Command("Sketcher_BSplinePolygon")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Show/Hide B-spline control polygon");
sMenuText = QT_TR_NOOP("Show/hide B-spline control polygon");
sToolTipText = QT_TR_NOOP("Switches between showing and hiding the control polygons for all B-splines");
sWhatsThis = "Sketcher_BSplinePolygon";
sStatusTip = sToolTipText;
@@ -152,28 +142,25 @@ void CmdSketcherBSplinePolygon::activated(int iMsg)
{
Q_UNUSED(iMsg);
Gui::Document * doc= getActiveGuiDocument();
Gui::Document * doc = getActiveGuiDocument();
SketcherGui::ViewProviderSketch* vp = static_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit());
ShowRestoreInformationLayer(vp, "BSplineControlPolygonVisible");
}
bool CmdSketcherBSplinePolygon::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), false );
return isSketcherBSplineActive(getActiveGuiDocument(), false);
}
// Show/Hide B-spline comb
DEF_STD_CMD_A(CmdSketcherBSplineComb)
CmdSketcherBSplineComb::CmdSketcherBSplineComb()
:Command("Sketcher_BSplineComb")
: Command("Sketcher_BSplineComb")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Show/Hide B-spline curvature comb");
sMenuText = QT_TR_NOOP("Show/hide B-spline curvature comb");
sToolTipText = QT_TR_NOOP("Switches between showing and hiding the curvature comb for all B-splines");
sWhatsThis = "Sketcher_BSplineComb";
sStatusTip = sToolTipText;
@@ -186,28 +173,25 @@ void CmdSketcherBSplineComb::activated(int iMsg)
{
Q_UNUSED(iMsg);
Gui::Document * doc= getActiveGuiDocument();
Gui::Document * doc = getActiveGuiDocument();
SketcherGui::ViewProviderSketch* vp = static_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit());
ShowRestoreInformationLayer(vp, "BSplineCombVisible");
}
bool CmdSketcherBSplineComb::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), false );
return isSketcherBSplineActive(getActiveGuiDocument(), false);
}
//
DEF_STD_CMD_A(CmdSketcherBSplineKnotMultiplicity)
CmdSketcherBSplineKnotMultiplicity::CmdSketcherBSplineKnotMultiplicity()
:Command("Sketcher_BSplineKnotMultiplicity")
: Command("Sketcher_BSplineKnotMultiplicity")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Show/Hide B-spline knot multiplicity");
sMenuText = QT_TR_NOOP("Show/hide B-spline knot multiplicity");
sToolTipText = QT_TR_NOOP("Switches between showing and hiding the knot multiplicity for all B-splines");
sWhatsThis = "Sketcher_BSplineKnotMultiplicity";
sStatusTip = sToolTipText;
@@ -220,24 +204,21 @@ void CmdSketcherBSplineKnotMultiplicity::activated(int iMsg)
{
Q_UNUSED(iMsg);
Gui::Document * doc= getActiveGuiDocument();
Gui::Document * doc = getActiveGuiDocument();
SketcherGui::ViewProviderSketch* vp = static_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit());
ShowRestoreInformationLayer(vp, "BSplineKnotMultiplicityVisible");
}
bool CmdSketcherBSplineKnotMultiplicity::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), false );
return isSketcherBSplineActive(getActiveGuiDocument(), false);
}
// Composite drop down menu for show/hide geometry information layer
DEF_STD_CMD_ACLU(CmdSketcherCompBSplineShowHideGeometryInformation)
CmdSketcherCompBSplineShowHideGeometryInformation::CmdSketcherCompBSplineShowHideGeometryInformation()
: Command("Sketcher_CompBSplineShowHideGeometryInformation")
: Command("Sketcher_CompBSplineShowHideGeometryInformation")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
@@ -251,16 +232,15 @@ CmdSketcherCompBSplineShowHideGeometryInformation::CmdSketcherCompBSplineShowHid
void CmdSketcherCompBSplineShowHideGeometryInformation::activated(int iMsg)
{
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
Gui::Command * cmd;
if (iMsg==0)
if (iMsg == 0)
cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineDegree");
else if (iMsg==1)
else if (iMsg == 1)
cmd = rcCmdMgr.getCommandByName("Sketcher_BSplinePolygon");
else if (iMsg==2)
else if (iMsg == 2)
cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineComb");
else if (iMsg==3)
else if (iMsg == 3)
cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineKnotMultiplicity");
else
return;
@@ -311,21 +291,33 @@ void CmdSketcherCompBSplineShowHideGeometryInformation::languageChange()
QList<QAction*> a = pcAction->actions();
QAction* c1 = a[0];
c1->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation","Show/Hide B-spline degree"));
c1->setToolTip(QApplication::translate("Sketcher_BSplineDegree","Switches between showing and hiding the degree for all B-splines"));
c1->setStatusTip(QApplication::translate("Sketcher_BSplineDegree","Switches between showing and hiding the degree for all B-splines"));
c1->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation",
"Show/hide B-spline degree"));
c1->setToolTip(QApplication::translate("Sketcher_BSplineDegree",
"Switches between showing and hiding the degree for all B-splines"));
c1->setStatusTip(QApplication::translate("Sketcher_BSplineDegree",
"Switches between showing and hiding the degree for all B-splines"));
QAction* c2 = a[1];
c2->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation","Show/Hide B-spline control polygon"));
c2->setToolTip(QApplication::translate("Sketcher_BSplinePolygon","Switches between showing and hiding the control polygons for all B-splines"));
c2->setStatusTip(QApplication::translate("Sketcher_BSplinePolygon","Switches between showing and hiding the control polygons for all B-splines"));
c2->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation",
"Show/hide B-spline control polygon"));
c2->setToolTip(QApplication::translate("Sketcher_BSplinePolygon",
"Switches between showing and hiding the control polygons for all B-splines"));
c2->setStatusTip(QApplication::translate("Sketcher_BSplinePolygon",
"Switches between showing and hiding the control polygons for all B-splines"));
QAction* c3 = a[2];
c3->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation","Show/Hide B-spline curvature comb"));
c3->setToolTip(QApplication::translate("Sketcher_BSplineComb","Switches between showing and hiding the curvature comb for all B-splines"));
c3->setStatusTip(QApplication::translate("Sketcher_BSplineComb","Switches between showing and hiding the curvature comb for all B-splines"));
c3->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation",
"Show/hide B-spline curvature comb"));
c3->setToolTip(QApplication::translate("Sketcher_BSplineComb",
"Switches between showing and hiding the curvature comb for all B-splines"));
c3->setStatusTip(QApplication::translate("Sketcher_BSplineComb",
"Switches between showing and hiding the curvature comb for all B-splines"));
QAction* c4 = a[3];
c4->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation","Show/Hide B-spline knot multiplicity"));
c4->setToolTip(QApplication::translate("Sketcher_BSplineKnotMultiplicity","Switches between showing and hiding the knot multiplicity for all B-splines"));
c4->setStatusTip(QApplication::translate("Sketcher_BSplineKnotMultiplicity","Switches between showing and hiding the knot multiplicity for all B-splines"));
c4->setText(QApplication::translate("CmdSketcherCompBSplineShowHideGeometryInformation",
"Show/hide B-spline knot multiplicity"));
c4->setToolTip(QApplication::translate("Sketcher_BSplineKnotMultiplicity",
"Switches between showing and hiding the knot multiplicity for all B-splines"));
c4->setStatusTip(QApplication::translate("Sketcher_BSplineKnotMultiplicity",
"Switches between showing and hiding the knot multiplicity for all B-splines"));
}
void CmdSketcherCompBSplineShowHideGeometryInformation::updateAction(int /*mode*/)
@@ -334,19 +326,19 @@ void CmdSketcherCompBSplineShowHideGeometryInformation::updateAction(int /*mode*
bool CmdSketcherCompBSplineShowHideGeometryInformation::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), false );
return isSketcherBSplineActive(getActiveGuiDocument(), false);
}
// Convert to NURB
// Convert to NURBS
DEF_STD_CMD_A(CmdSketcherConvertToNURB)
CmdSketcherConvertToNURB::CmdSketcherConvertToNURB()
:Command("Sketcher_BSplineConvertToNURB")
: Command("Sketcher_BSplineConvertToNURB")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Convert Geometry to B-spline");
sToolTipText = QT_TR_NOOP("Converts the given Geometry to a B-spline");
sMenuText = QT_TR_NOOP("Convert geometry to B-spline");
sToolTipText = QT_TR_NOOP("Converts the selected geometry to a B-spline");
sWhatsThis = "Sketcher_BSplineConvertToNURB";
sStatusTip = sToolTipText;
sPixmap = "Sketcher_BSplineApproximate";
@@ -375,25 +367,21 @@ void CmdSketcherConvertToNURB::activated(int iMsg)
openCommand("Convert to NURBS");
for (unsigned int i=0; i<SubNames.size(); i++ ) {
for (size_t i=0; i < SubNames.size(); i++) {
// only handle edges
if (SubNames[i].size() > 4 && SubNames[i].substr(0,4) == "Edge") {
int GeoId = std::atoi(SubNames[i].substr(4,4000).c_str()) - 1;
Gui::cmdAppObjectArgs(selection[0].getObject(), "convertToNURBS(%d) ", GeoId);
nurbsized = true;
}
else if (SubNames[i].size() > 12 && SubNames[i].substr(0,12) == "ExternalEdge") {
int GeoId = - (std::atoi(SubNames[i].substr(12,4000).c_str()) + 2);
Gui::cmdAppObjectArgs(selection[0].getObject(), "convertToNURBS(%d) ", GeoId);
nurbsized = true;
}
}
if(!nurbsized) {
if (!nurbsized) {
abortCommand();
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
QObject::tr("None of the selected elements is an edge."));
@@ -401,24 +389,23 @@ void CmdSketcherConvertToNURB::activated(int iMsg)
else {
commitCommand();
}
tryAutoRecomputeIfNotSolve(Obj);
}
bool CmdSketcherConvertToNURB::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), true );
return isSketcherBSplineActive(getActiveGuiDocument(), true);
}
// Increase degree of the spline
DEF_STD_CMD_A(CmdSketcherIncreaseDegree)
CmdSketcherIncreaseDegree::CmdSketcherIncreaseDegree()
:Command("Sketcher_BSplineIncreaseDegree")
: Command("Sketcher_BSplineIncreaseDegree")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Increase degree");
sMenuText = QT_TR_NOOP("Increase B-spline degree");
sToolTipText = QT_TR_NOOP("Increases the degree of the B-spline");
sWhatsThis = "Sketcher_BSplineIncreaseDegree";
sStatusTip = sToolTipText;
@@ -446,29 +433,26 @@ void CmdSketcherIncreaseDegree::activated(int iMsg)
openCommand("Increase spline degree");
bool ignored=false;
bool ignored = false;
for (unsigned int i=0; i<SubNames.size(); i++ ) {
for (size_t i=0; i < SubNames.size(); i++) {
// only handle edges
if (SubNames[i].size() > 4 && SubNames[i].substr(0,4) == "Edge") {
int GeoId = std::atoi(SubNames[i].substr(4,4000).c_str()) - 1;
const Part::Geometry * geo = Obj->getGeometry(GeoId);
if (geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) {
Gui::cmdAppObjectArgs(selection[0].getObject(), "increaseBSplineDegree(%d) ", GeoId);
// add new control points
Gui::cmdAppObjectArgs(selection[0].getObject(), "exposeInternalGeometry(%d)", GeoId);
}
else {
ignored=true;
ignored = true;
}
}
}
if(ignored) {
if (ignored) {
QMessageBox::warning(Gui::getMainWindow(),
QObject::tr("Wrong selection"),
QObject::tr("At least one of the selected "
@@ -476,15 +460,13 @@ void CmdSketcherIncreaseDegree::activated(int iMsg)
}
commitCommand();
tryAutoRecomputeIfNotSolve(Obj);
getSelection().clearSelection();
}
bool CmdSketcherIncreaseDegree::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), true );
return isSketcherBSplineActive(getActiveGuiDocument(), true);
}
@@ -493,7 +475,7 @@ bool CmdSketcherIncreaseDegree::isActive(void)
// Decrease degree of the spline
// DEF_STD_CMD_A(CmdSketcherDecreaseDegree)
// CmdSketcherDecreaseDegree::CmdSketcherDecreaseDegree()
// :Command("Sketcher_BSplineDecreaseDegree")
// : Command("Sketcher_BSplineDecreaseDegree")
// {
// ...
// }
@@ -502,7 +484,7 @@ bool CmdSketcherIncreaseDegree::isActive(void)
DEF_STD_CMD_A(CmdSketcherIncreaseKnotMultiplicity)
CmdSketcherIncreaseKnotMultiplicity::CmdSketcherIncreaseKnotMultiplicity()
:Command("Sketcher_BSplineIncreaseKnotMultiplicity")
: Command("Sketcher_BSplineIncreaseKnotMultiplicity")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
@@ -540,7 +522,7 @@ void CmdSketcherIncreaseKnotMultiplicity::activated(int iMsg)
// get the needed lists and objects
const std::vector<std::string> &SubNames = selection[0].getSubNames();
if(SubNames.size()>1) {
if (SubNames.size() > 1) {
// Check that only one object is selected,
// as we need only one object to get the new GeoId after multiplicity change
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
@@ -554,38 +536,36 @@ void CmdSketcherIncreaseKnotMultiplicity::activated(int iMsg)
bool applied = false;
bool notaknot = true;
boost::uuids::uuid bsplinetag;
int GeoId;
Sketcher::PointPos PosId;
getIdsFromName(SubNames[0], Obj, GeoId, PosId);
if(isSimpleVertex(Obj, GeoId, PosId)) {
if (isSimpleVertex(Obj, GeoId, PosId)) {
const std::vector<Sketcher::Constraint *> &vals = Obj->Constraints.getValues();
const std::vector< Sketcher::Constraint * > &vals = Obj->Constraints.getValues();
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin(); it != vals.end(); ++it) {
if((*it)->Type == Sketcher::InternalAlignment && (*it)->First == GeoId && (*it)->AlignmentType == Sketcher::BSplineKnotPoint)
for (std::vector<Sketcher::Constraint *>::const_iterator it= vals.begin(); it != vals.end(); ++it) {
if ((*it)->Type == Sketcher::InternalAlignment
&& (*it)->First == GeoId
&& (*it)->AlignmentType == Sketcher::BSplineKnotPoint)
{
bsplinetag = Obj->getGeometry((*it)->Second)->getTag();
notaknot = false;
try {
Gui::cmdAppObjectArgs(selection[0].getObject(), "modifyBSplineKnotMultiplicity(%d,%d,%d) ",
(*it)->Second, (*it)->InternalAlignmentIndex + 1, 1);
Gui::cmdAppObjectArgs(selection[0].getObject(),
"modifyBSplineKnotMultiplicity(%d, %d, %d) ",
(*it)->Second, (*it)->InternalAlignmentIndex + 1, 1);
applied = true;
// Warning: GeoId list might have changed
// as the consequence of deleting pole circles and
// particularly B-spline GeoID might have changed.
}
catch (const Base::CADKernelError& e) {
e.ReportException();
if(e.getTranslatable()) {
if (e.getTranslatable()) {
QMessageBox::warning(Gui::getMainWindow(),
QObject::tr("CAD Kernel Error"),
QObject::tr(e.getMessage().c_str()));
@@ -594,30 +574,25 @@ void CmdSketcherIncreaseKnotMultiplicity::activated(int iMsg)
}
catch (const Base::Exception& e) {
e.ReportException();
if(e.getTranslatable()) {
if (e.getTranslatable()) {
QMessageBox::warning(Gui::getMainWindow(),
QObject::tr("Input Error"),
QObject::tr(e.getMessage().c_str()));
}
getSelection().clearSelection();
}
break; // we have already found our knot.
break; // we have already found our knot.
}
}
}
if(notaknot){
if (notaknot) {
QMessageBox::warning(Gui::getMainWindow(),
QObject::tr("Wrong selection"),
QObject::tr("None of the selected elements is a knot of a B-spline"));
}
if(applied)
if (applied)
{
// find new geoid for B-spline as GeoId might have changed
const std::vector< Part::Geometry * > &gvals = Obj->getInternalGeometry();
@@ -632,8 +607,7 @@ void CmdSketcherIncreaseKnotMultiplicity::activated(int iMsg)
}
}
if(ngfound) {
if (ngfound) {
try {
// add internalalignment for new pole
Gui::cmdAppObjectArgs(selection[0].getObject(), "exposeInternalGeometry(%d)", ngeoid);
@@ -642,11 +616,10 @@ void CmdSketcherIncreaseKnotMultiplicity::activated(int iMsg)
Base::Console().Error("%s\n", e.what());
getSelection().clearSelection();
}
}
}
if(!applied) {
if (!applied) {
abortCommand();
}
else {
@@ -654,24 +627,22 @@ void CmdSketcherIncreaseKnotMultiplicity::activated(int iMsg)
}
tryAutoRecomputeIfNotSolve(Obj);
getSelection().clearSelection();
}
bool CmdSketcherIncreaseKnotMultiplicity::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), true );
return isSketcherBSplineActive(getActiveGuiDocument(), true);
}
DEF_STD_CMD_A(CmdSketcherDecreaseKnotMultiplicity)
CmdSketcherDecreaseKnotMultiplicity::CmdSketcherDecreaseKnotMultiplicity()
:Command("Sketcher_BSplineDecreaseKnotMultiplicity")
: Command("Sketcher_BSplineDecreaseKnotMultiplicity")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
sMenuText = QT_TR_NOOP("Decrease multiplicity");
sMenuText = QT_TR_NOOP("Decrease knot multiplicity");
sToolTipText = QT_TR_NOOP("Decreases the multiplicity of the selected knot of a B-spline");
sWhatsThis = "Sketcher_BSplineDecreaseKnotMultiplicity";
sStatusTip = sToolTipText;
@@ -705,7 +676,7 @@ void CmdSketcherDecreaseKnotMultiplicity::activated(int iMsg)
// get the needed lists and objects
const std::vector<std::string> &SubNames = selection[0].getSubNames();
if(SubNames.size()>1) {
if (SubNames.size() > 1) {
// Check that only one object is selected,
// as we need only one object to get the new GeoId after multiplicity change
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
@@ -719,53 +690,49 @@ void CmdSketcherDecreaseKnotMultiplicity::activated(int iMsg)
bool applied = false;
bool notaknot = true;
boost::uuids::uuid bsplinetag;
int GeoId;
Sketcher::PointPos PosId;
getIdsFromName(SubNames[0], Obj, GeoId, PosId);
if(isSimpleVertex(Obj, GeoId, PosId)) {
if (isSimpleVertex(Obj, GeoId, PosId))
{
const std::vector< Sketcher::Constraint * > &vals = Obj->Constraints.getValues();
for (std::vector< Sketcher::Constraint * >::const_iterator it= vals.begin(); it != vals.end(); ++it) {
if((*it)->Type == Sketcher::InternalAlignment && (*it)->First == GeoId && (*it)->AlignmentType == Sketcher::BSplineKnotPoint)
if ((*it)->Type == Sketcher::InternalAlignment
&& (*it)->First == GeoId
&& (*it)->AlignmentType == Sketcher::BSplineKnotPoint)
{
bsplinetag = Obj->getGeometry((*it)->Second)->getTag();
notaknot = false;
try {
Gui::cmdAppObjectArgs(selection[0].getObject(), "modifyBSplineKnotMultiplicity(%d,%d,%d) ",
Gui::cmdAppObjectArgs(selection[0].getObject(),
"modifyBSplineKnotMultiplicity(%d, %d, %d) ",
(*it)->Second, (*it)->InternalAlignmentIndex + 1, -1);
applied = true;
// Warning: GeoId list might have changed as the consequence of deleting pole circles and
// particularly B-spline GeoID might have changed.
}
catch (const Base::Exception& e) {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Error"),
QObject::tr(getStrippedPythonExceptionString(e).c_str()));
getSelection().clearSelection();
}
break; // we have already found our knot.
break; // we have already found our knot.
}
}
}
if(notaknot){
if (notaknot) {
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
QObject::tr("None of the selected elements is a knot of a B-spline"));
}
if(applied)
if (applied)
{
// find new geoid for B-spline as GeoId might have changed
const std::vector< Part::Geometry * > &gvals = Obj->getInternalGeometry();
@@ -780,8 +747,7 @@ void CmdSketcherDecreaseKnotMultiplicity::activated(int iMsg)
}
}
if(ngfound) {
if (ngfound) {
try {
// add internalalignment for new pole
Gui::cmdAppObjectArgs(selection[0].getObject(), "exposeInternalGeometry(%d)", ngeoid);
@@ -793,7 +759,7 @@ void CmdSketcherDecreaseKnotMultiplicity::activated(int iMsg)
}
}
if(!applied) {
if (!applied) {
abortCommand();
}
else {
@@ -801,13 +767,12 @@ void CmdSketcherDecreaseKnotMultiplicity::activated(int iMsg)
}
tryAutoRecomputeIfNotSolve(Obj);
getSelection().clearSelection();
}
bool CmdSketcherDecreaseKnotMultiplicity::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), true );
return isSketcherBSplineActive(getActiveGuiDocument(), true);
}
@@ -815,7 +780,7 @@ bool CmdSketcherDecreaseKnotMultiplicity::isActive(void)
DEF_STD_CMD_ACLU(CmdSketcherCompModifyKnotMultiplicity)
CmdSketcherCompModifyKnotMultiplicity::CmdSketcherCompModifyKnotMultiplicity()
: Command("Sketcher_CompModifyKnotMultiplicity")
: Command("Sketcher_CompModifyKnotMultiplicity")
{
sAppModule = "Sketcher";
sGroup = QT_TR_NOOP("Sketcher");
@@ -830,12 +795,11 @@ void CmdSketcherCompModifyKnotMultiplicity::activated(int iMsg)
{
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
Gui::Command * cmd;
if (iMsg==0)
if (iMsg == 0)
cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineIncreaseKnotMultiplicity");
else if (iMsg==1)
else if (iMsg == 1)
cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineDecreaseKnotMultiplicity");
else
return;
@@ -882,14 +846,19 @@ void CmdSketcherCompModifyKnotMultiplicity::languageChange()
QList<QAction*> a = pcAction->actions();
QAction* c1 = a[0];
c1->setText(QApplication::translate("CmdSketcherCompModifyKnotMultiplicity","Increase knot multiplicity"));
c1->setToolTip(QApplication::translate("Sketcher_BSplineIncreaseKnotMultiplicity","Increases the multiplicity of the selected knot of a B-spline"));
c1->setStatusTip(QApplication::translate("Sketcher_BSplineIncreaseKnotMultiplicity","Increases the multiplicity of the selected knot of a B-spline"));
c1->setText(QApplication::translate("CmdSketcherCompModifyKnotMultiplicity",
"Increase knot multiplicity"));
c1->setToolTip(QApplication::translate("Sketcher_BSplineIncreaseKnotMultiplicity",
"Increases the multiplicity of the selected knot of a B-spline"));
c1->setStatusTip(QApplication::translate("Sketcher_BSplineIncreaseKnotMultiplicity",
"Increases the multiplicity of the selected knot of a B-spline"));
QAction* c2 = a[1];
c2->setText(QApplication::translate("CmdSketcherCompModifyKnotMultiplicity","Decrease knot multiplicity"));
c2->setToolTip(QApplication::translate("Sketcher_BSplineDecreaseKnotMultiplicity","Decreases the multiplicity of the selected knot of a B-spline"));
c2->setStatusTip(QApplication::translate("Sketcher_BSplineDecreaseKnotMultiplicity","Decreases the multiplicity of the selected knot of a B-spline"));
c2->setText(QApplication::translate("CmdSketcherCompModifyKnotMultiplicity",
"Decrease knot multiplicity"));
c2->setToolTip(QApplication::translate("Sketcher_BSplineDecreaseKnotMultiplicity",
"Decreases the multiplicity of the selected knot of a B-spline"));
c2->setStatusTip(QApplication::translate("Sketcher_BSplineDecreaseKnotMultiplicity",
"Decreases the multiplicity of the selected knot of a B-spline"));
}
void CmdSketcherCompModifyKnotMultiplicity::updateAction(int /*mode*/)
@@ -898,7 +867,7 @@ void CmdSketcherCompModifyKnotMultiplicity::updateAction(int /*mode*/)
bool CmdSketcherCompModifyKnotMultiplicity::isActive(void)
{
return isSketcherBSplineActive( getActiveGuiDocument(), false );
return isSketcherBSplineActive(getActiveGuiDocument(), false);
}
void CreateSketcherCommandsBSpline(void)