Sketcher: Intersection externals
This commit is contained in:
committed by
WandererFan
parent
f3c79302c4
commit
0e5e071d72
@@ -1434,7 +1434,63 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// ======================================================================================
|
||||
// Group for external tools =============================================
|
||||
|
||||
class CmdSketcherCompExternal: public Gui::GroupCommand
|
||||
{
|
||||
public:
|
||||
CmdSketcherCompExternal()
|
||||
: GroupCommand("Sketcher_CompExternal")
|
||||
{
|
||||
sAppModule = "Sketcher";
|
||||
sGroup = "Sketcher";
|
||||
sMenuText = QT_TR_NOOP("Create external");
|
||||
sToolTipText = QT_TR_NOOP("Create external edges linked to external geometries.");
|
||||
sWhatsThis = "Sketcher_CompExternal";
|
||||
sStatusTip = sToolTipText;
|
||||
eType = ForEdit;
|
||||
|
||||
setCheckable(false);
|
||||
|
||||
addCommand("Sketcher_External");
|
||||
addCommand("Sketcher_Intersection");
|
||||
}
|
||||
|
||||
void updateAction(int mode) override
|
||||
{
|
||||
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
|
||||
if (!pcAction) {
|
||||
return;
|
||||
}
|
||||
|
||||
QList<QAction*> al = pcAction->actions();
|
||||
int index = pcAction->property("defaultAction").toInt();
|
||||
switch (static_cast<GeometryCreationMode>(mode)) {
|
||||
case GeometryCreationMode::Normal:
|
||||
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_External"));
|
||||
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_Intersection"));
|
||||
getAction()->setIcon(al[index]->icon());
|
||||
break;
|
||||
case GeometryCreationMode::Construction:
|
||||
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_External_Constr"));
|
||||
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_Intersection_Constr"));
|
||||
getAction()->setIcon(al[index]->icon());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const char* className() const override
|
||||
{
|
||||
return "CmdSketcherCompExternal";
|
||||
}
|
||||
|
||||
bool isActive() override
|
||||
{
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
};
|
||||
|
||||
// Externals - Projection ==================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherExternal)
|
||||
|
||||
@@ -1443,8 +1499,10 @@ CmdSketcherExternal::CmdSketcherExternal()
|
||||
{
|
||||
sAppModule = "Sketcher";
|
||||
sGroup = "Sketcher";
|
||||
sMenuText = QT_TR_NOOP("Create external geometry");
|
||||
sToolTipText = QT_TR_NOOP("Create an edge linked to an external geometry");
|
||||
sMenuText = QT_TR_NOOP("Create external projection geometry");
|
||||
sToolTipText = QT_TR_NOOP("Create the projection edges of an external geometry.\n"
|
||||
"External edges can be either defining or construction geometries.\n"
|
||||
"You can use the toggle construction tool.");
|
||||
sWhatsThis = "Sketcher_External";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Sketcher_External";
|
||||
@@ -1465,6 +1523,39 @@ bool CmdSketcherExternal::isActive()
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
|
||||
// Externals - Intersection ==================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherIntersection)
|
||||
|
||||
CmdSketcherIntersection::CmdSketcherIntersection()
|
||||
: Command("Sketcher_Intersection")
|
||||
{
|
||||
sAppModule = "Sketcher";
|
||||
sGroup = "Sketcher";
|
||||
sMenuText = QT_TR_NOOP("Create external intersection geometry");
|
||||
sToolTipText =
|
||||
QT_TR_NOOP("Create the intersection edges of an external geometry with the sketch plane.\n"
|
||||
"External edges can be either defining or construction geometries.\n"
|
||||
"You can use the toggle construction tool.");
|
||||
sWhatsThis = "Sketcher_Intersection";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Sketcher_Intersection";
|
||||
sAccel = "G, I";
|
||||
eType = ForEdit;
|
||||
}
|
||||
|
||||
CONSTRUCTION_UPDATE_ACTION(CmdSketcherIntersection, "Sketcher_Intersection")
|
||||
|
||||
void CmdSketcherIntersection::activated(int iMsg)
|
||||
{
|
||||
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerExternal>(true));
|
||||
}
|
||||
|
||||
bool CmdSketcherIntersection::isActive(void)
|
||||
{
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
|
||||
// ======================================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherCarbonCopy)
|
||||
@@ -2069,6 +2160,8 @@ void CreateSketcherCommandsCreateGeo()
|
||||
rcCmdMgr.addCommand(new CmdSketcherSplit());
|
||||
rcCmdMgr.addCommand(new CmdSketcherCompCurveEdition());
|
||||
rcCmdMgr.addCommand(new CmdSketcherExternal());
|
||||
rcCmdMgr.addCommand(new CmdSketcherIntersection());
|
||||
rcCmdMgr.addCommand(new CmdSketcherCompExternal());
|
||||
rcCmdMgr.addCommand(new CmdSketcherCarbonCopy());
|
||||
rcCmdMgr.addCommand(new CmdSketcherCompLine());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user