Sketcher: Joint Line and Polyline in a command group.
This commit is contained in:
committed by
Chris Hennes
parent
7e0cf657f4
commit
cb0a2d2809
@@ -81,11 +81,12 @@ CmdSketcherToggleConstruction::CmdSketcherToggleConstruction()
|
||||
// list of toggle construction commands
|
||||
Gui::CommandManager& rcCmdMgr = Gui::Application::Instance->commandManager();
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreateLine");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreatePolyline");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CompLine");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreateRectangle");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreateRectangle_Center");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreateOblong");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CompCreateRectangles");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreatePolyline");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreateArcSlot");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreateSlot");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CompSlot");
|
||||
|
||||
@@ -102,6 +102,60 @@ GeometryCreationMode geometryCreationMode = GeometryCreationMode::Normal;
|
||||
|
||||
/* Sketch commands =======================================================*/
|
||||
|
||||
// Comp for line tools =============================================
|
||||
|
||||
class CmdSketcherCompLine: public Gui::GroupCommand
|
||||
{
|
||||
public:
|
||||
CmdSketcherCompLine()
|
||||
: GroupCommand("Sketcher_CompLine")
|
||||
{
|
||||
sAppModule = "Sketcher";
|
||||
sGroup = "Sketcher";
|
||||
sMenuText = QT_TR_NOOP("Create polyline");
|
||||
sToolTipText = QT_TR_NOOP("Create a polyline in the sketch. 'M' Key cycles behaviour");
|
||||
sWhatsThis = "Sketcher_CompLine";
|
||||
sStatusTip = sToolTipText;
|
||||
eType = ForEdit;
|
||||
|
||||
setCheckable(false);
|
||||
|
||||
addCommand("Sketcher_CreatePolyline");
|
||||
addCommand("Sketcher_CreateLine");
|
||||
}
|
||||
|
||||
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_CreatePolyline"));
|
||||
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateLine"));
|
||||
getAction()->setIcon(al[index]->icon());
|
||||
break;
|
||||
case GeometryCreationMode::Construction:
|
||||
al[0]->setIcon(
|
||||
Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePolyline_Constr"));
|
||||
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateLine_Constr"));
|
||||
getAction()->setIcon(al[index]->icon());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const char* className() const override
|
||||
{
|
||||
return "CmdSketcherCompLine";
|
||||
}
|
||||
};
|
||||
|
||||
// Line ================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherCreateLine)
|
||||
|
||||
CmdSketcherCreateLine::CmdSketcherCreateLine()
|
||||
@@ -131,6 +185,37 @@ bool CmdSketcherCreateLine::isActive()
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
|
||||
// Polyline ================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherCreatePolyline)
|
||||
|
||||
CmdSketcherCreatePolyline::CmdSketcherCreatePolyline()
|
||||
: Command("Sketcher_CreatePolyline")
|
||||
{
|
||||
sAppModule = "Sketcher";
|
||||
sGroup = "Sketcher";
|
||||
sMenuText = QT_TR_NOOP("Create polyline");
|
||||
sToolTipText = QT_TR_NOOP("Create a polyline in the sketch. 'M' Key cycles behaviour");
|
||||
sWhatsThis = "Sketcher_CreatePolyline";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Sketcher_CreatePolyline";
|
||||
sAccel = "G, M";
|
||||
eType = ForEdit;
|
||||
}
|
||||
|
||||
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreatePolyline, "Sketcher_CreatePolyline")
|
||||
|
||||
void CmdSketcherCreatePolyline::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
ActivateHandler(getActiveGuiDocument(), new DrawSketchHandlerLineSet());
|
||||
}
|
||||
|
||||
bool CmdSketcherCreatePolyline::isActive()
|
||||
{
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
|
||||
|
||||
/* Create Box =======================================================*/
|
||||
|
||||
@@ -361,38 +446,6 @@ bool CmdSketcherCompCreateRectangles::isActive()
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
|
||||
// ======================================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherCreatePolyline)
|
||||
|
||||
CmdSketcherCreatePolyline::CmdSketcherCreatePolyline()
|
||||
: Command("Sketcher_CreatePolyline")
|
||||
{
|
||||
sAppModule = "Sketcher";
|
||||
sGroup = "Sketcher";
|
||||
sMenuText = QT_TR_NOOP("Create polyline");
|
||||
sToolTipText = QT_TR_NOOP("Create a polyline in the sketch. 'M' Key cycles behaviour");
|
||||
sWhatsThis = "Sketcher_CreatePolyline";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Sketcher_CreatePolyline";
|
||||
sAccel = "G, M";
|
||||
eType = ForEdit;
|
||||
}
|
||||
|
||||
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreatePolyline, "Sketcher_CreatePolyline")
|
||||
|
||||
void CmdSketcherCreatePolyline::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
ActivateHandler(getActiveGuiDocument(), new DrawSketchHandlerLineSet());
|
||||
}
|
||||
|
||||
bool CmdSketcherCreatePolyline::isActive()
|
||||
{
|
||||
return isCommandActive(getActiveGuiDocument());
|
||||
}
|
||||
|
||||
|
||||
// ======================================================================================
|
||||
|
||||
DEF_STD_CMD_AU(CmdSketcherCreateArc)
|
||||
@@ -2248,4 +2301,5 @@ void CreateSketcherCommandsCreateGeo()
|
||||
rcCmdMgr.addCommand(new CmdSketcherCompCurveEdition());
|
||||
rcCmdMgr.addCommand(new CmdSketcherExternal());
|
||||
rcCmdMgr.addCommand(new CmdSketcherCarbonCopy());
|
||||
rcCmdMgr.addCommand(new CmdSketcherCompLine());
|
||||
}
|
||||
|
||||
@@ -285,6 +285,22 @@ inline void SketcherAddWorkbenchSketchEditModeActions(Gui::ToolBarItem& sketch)
|
||||
template<typename T>
|
||||
void SketcherAddWorkbenchGeometries(T& geom);
|
||||
|
||||
template<typename T>
|
||||
void SketcherAddWorkspaceLines(T& geom);
|
||||
|
||||
template<>
|
||||
inline void SketcherAddWorkspaceLines<Gui::MenuItem>(Gui::MenuItem& geom)
|
||||
{
|
||||
geom << "Sketcher_CreatePolyline"
|
||||
<< "Sketcher_CreateLine";
|
||||
}
|
||||
|
||||
template<>
|
||||
inline void SketcherAddWorkspaceLines<Gui::ToolBarItem>(Gui::ToolBarItem& geom)
|
||||
{
|
||||
geom << "Sketcher_CompLine";
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void SketcherAddWorkspaceArcs(T& geom);
|
||||
|
||||
@@ -405,11 +421,10 @@ inline void SketcherAddWorkspaceCurveEdition<Gui::ToolBarItem>(Gui::ToolBarItem&
|
||||
template<typename T>
|
||||
inline void SketcherAddWorkbenchGeometries(T& geom)
|
||||
{
|
||||
geom << "Sketcher_CreatePoint"
|
||||
<< "Sketcher_CreateLine";
|
||||
geom << "Sketcher_CreatePoint";
|
||||
SketcherAddWorkspaceLines(geom);
|
||||
SketcherAddWorkspaceArcs(geom);
|
||||
geom << "Separator"
|
||||
<< "Sketcher_CreatePolyline";
|
||||
geom << "Separator";
|
||||
SketcherAddWorkspaceRectangles(geom);
|
||||
SketcherAddWorkspaceRegularPolygon(geom);
|
||||
SketcherAddWorkspaceslots(geom);
|
||||
|
||||
Reference in New Issue
Block a user