[TD]Transition to on demand page updates ph1
This commit is contained in:
@@ -234,6 +234,43 @@ bool CmdTechDrawNewPage::isActive(void)
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// TechDraw_Redraw
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdTechDrawRedraw)
|
||||
|
||||
CmdTechDrawRedraw::CmdTechDrawRedraw()
|
||||
: Command("TechDraw_Redraw")
|
||||
{
|
||||
sAppModule = "TechDraw";
|
||||
sGroup = QT_TR_NOOP("TechDraw");
|
||||
sMenuText = QT_TR_NOOP("Redraw a page");
|
||||
sToolTipText = QT_TR_NOOP("Redraw a page");
|
||||
sWhatsThis = "TechDraw_Redraw";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "actions/techdraw-forceredraw";
|
||||
}
|
||||
|
||||
void CmdTechDrawRedraw::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
TechDraw::DrawPage* page = DrawGuiUtil::findPage(this);
|
||||
if (!page) {
|
||||
return;
|
||||
}
|
||||
Gui::WaitCursor wc;
|
||||
|
||||
page->redrawCommand();
|
||||
}
|
||||
|
||||
bool CmdTechDrawRedraw::isActive(void)
|
||||
{
|
||||
bool havePage = DrawGuiUtil::needPage(this);
|
||||
bool haveView = DrawGuiUtil::needView(this,false);
|
||||
return (havePage && haveView);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// TechDraw_NewView
|
||||
//===========================================================================
|
||||
@@ -561,9 +598,12 @@ void CmdTechDrawProjGroup::activated(int iMsg)
|
||||
Gui::WaitCursor wc;
|
||||
|
||||
openCommand("Create Projection Group");
|
||||
|
||||
std::string multiViewName = getUniqueObjectName("ProjGroup");
|
||||
doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawProjGroup','%s')",multiViewName.c_str());
|
||||
doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),multiViewName.c_str());
|
||||
doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawProjGroup','%s')",
|
||||
multiViewName.c_str());
|
||||
doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",
|
||||
PageName.c_str(),multiViewName.c_str());
|
||||
|
||||
App::DocumentObject *docObj = getDocument()->getObject(multiViewName.c_str());
|
||||
auto multiView( static_cast<TechDraw::DrawProjGroup *>(docObj) );
|
||||
@@ -578,7 +618,6 @@ void CmdTechDrawProjGroup::activated(int iMsg)
|
||||
doCommand(Doc,"App.activeDocument().%s.Anchor.RotationVector = FreeCAD.Vector(%.3f,%.3f,%.3f)",
|
||||
multiViewName.c_str(), dirs.second.x,dirs.second.y,dirs.second.z);
|
||||
getDocument()->setStatus(App::Document::Status::SkipRecompute, false);
|
||||
doCommand(Doc,"App.activeDocument().%s.Anchor.recompute()", multiViewName.c_str());
|
||||
} else {
|
||||
std::pair<Base::Vector3d,Base::Vector3d> dirs = DrawGuiUtil::get3DDirAndRot();
|
||||
getDocument()->setStatus(App::Document::Status::SkipRecompute, true);
|
||||
@@ -587,13 +626,14 @@ void CmdTechDrawProjGroup::activated(int iMsg)
|
||||
doCommand(Doc,"App.activeDocument().%s.Anchor.RotationVector = FreeCAD.Vector(%.3f,%.3f,%.3f)",
|
||||
multiViewName.c_str(), dirs.second.x,dirs.second.y,dirs.second.z);
|
||||
getDocument()->setStatus(App::Document::Status::SkipRecompute, false);
|
||||
doCommand(Doc,"App.activeDocument().%s.Anchor.recompute()", multiViewName.c_str());
|
||||
}
|
||||
commitCommand(); //write the undo
|
||||
|
||||
doCommand(Doc,"App.activeDocument().%s.Anchor.recompute()", multiViewName.c_str());
|
||||
commitCommand();
|
||||
updateActive();
|
||||
|
||||
// create the rest of the desired views
|
||||
Gui::Control().showDialog(new TaskDlgProjGroup(multiView,true));
|
||||
|
||||
}
|
||||
|
||||
bool CmdTechDrawProjGroup::isActive(void)
|
||||
@@ -1276,6 +1316,7 @@ void CreateTechDrawCommands(void)
|
||||
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewPageDef());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewPage());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawRedraw());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewView());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewActiveView());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewViewSection());
|
||||
|
||||
Reference in New Issue
Block a user