diff --git a/src/Mod/TechDraw/App/DrawPage.cpp b/src/Mod/TechDraw/App/DrawPage.cpp index 9a1e700c5a..a3261900f0 100644 --- a/src/Mod/TechDraw/App/DrawPage.cpp +++ b/src/Mod/TechDraw/App/DrawPage.cpp @@ -141,9 +141,11 @@ void DrawPage::onChanged(const App::Property* prop) for(std::vector::const_iterator it = vals.begin(); it < vals.end(); ++it) { TechDraw::DrawView *view = dynamic_cast(*it); if (view != NULL && view->ScaleType.isValue("Page")) { - view->Scale.touch(); + if(std::abs(view->Scale.getValue() - Scale.getValue()) > FLT_EPSILON) { + view->Scale.setValue(Scale.getValue()); + } } - } + } } else if (prop == &ProjectionType) { // touch all ortho views in the Page as they may be dependent on Projection Type const std::vector &vals = Views.getValues(); diff --git a/src/Mod/TechDraw/Gui/CommandDecorate.cpp b/src/Mod/TechDraw/Gui/CommandDecorate.cpp index bd8a8c501f..9edf97d005 100644 --- a/src/Mod/TechDraw/Gui/CommandDecorate.cpp +++ b/src/Mod/TechDraw/Gui/CommandDecorate.cpp @@ -298,6 +298,47 @@ bool CmdTechDrawToggleFrame::isActive(void) return (havePage && haveView); } +//=========================================================================== +// TechDraw_RedrawPage +//=========================================================================== + +DEF_STD_CMD_A(CmdTechDrawRedrawPage); + +CmdTechDrawRedrawPage::CmdTechDrawRedrawPage() + : Command("TechDraw_RedrawPage") +{ + sAppModule = "TechDraw"; + sGroup = QT_TR_NOOP("TechDraw"); + sMenuText = QT_TR_NOOP("Redraw a page"); + sToolTipText = QT_TR_NOOP("Redraw a page"); + sWhatsThis = "TechDraw_RedrawPage"; + sStatusTip = sToolTipText; + sPixmap = "TechDraw_Tree_Page_Sync"; +} + +void CmdTechDrawRedrawPage::activated(int iMsg) +{ + Q_UNUSED(iMsg); + TechDraw::DrawPage* page = DrawGuiUtil::findPage(this); + if (!page) { + return; + } + std::string PageName = page->getNameInDocument(); + bool keepUpdated = page->KeepUpdated.getValue(); + if (!keepUpdated) { + doCommand(Doc,"App.activeDocument().%s.KeepUpdated = True",PageName.c_str()); + doCommand(Doc,"App.activeDocument().%s.KeepUpdated = False",PageName.c_str()); + } else { + page->requestPaint(); + } +} + +bool CmdTechDrawRedrawPage::isActive(void) +{ + bool havePage = DrawGuiUtil::needPage(this); + return (havePage); +} + void CreateTechDrawCommandsDecorate(void) { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); @@ -306,6 +347,7 @@ void CreateTechDrawCommandsDecorate(void) rcCmdMgr.addCommand(new CmdTechDrawNewGeomHatch()); rcCmdMgr.addCommand(new CmdTechDrawImage()); rcCmdMgr.addCommand(new CmdTechDrawToggleFrame()); + rcCmdMgr.addCommand(new CmdTechDrawRedrawPage()); } //=========================================================================== diff --git a/src/Mod/TechDraw/Gui/Resources/TechDraw.qrc b/src/Mod/TechDraw/Gui/Resources/TechDraw.qrc index bede76852f..e43b0cf269 100644 --- a/src/Mod/TechDraw/Gui/Resources/TechDraw.qrc +++ b/src/Mod/TechDraw/Gui/Resources/TechDraw.qrc @@ -4,6 +4,7 @@ icons/TechDraw_Tree_Hatch.svg icons/TechDraw_Tree_Page.svg icons/TechDraw_Tree_Page_Unsync.svg + icons/TechDraw_Tree_Page_Sync.svg icons/TechDraw_Tree_PageTemplate.svg icons/TechDraw_Tree_ProjGroup.svg icons/TechDraw_Tree_Section.svg diff --git a/src/Mod/TechDraw/Gui/Resources/icons/TechDraw_Tree_Page_Sync.svg b/src/Mod/TechDraw/Gui/Resources/icons/TechDraw_Tree_Page_Sync.svg new file mode 100644 index 0000000000..137b24e6dd --- /dev/null +++ b/src/Mod/TechDraw/Gui/Resources/icons/TechDraw_Tree_Page_Sync.svg @@ -0,0 +1,642 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + + + reload + refresh + view + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Gui/Workbench.cpp b/src/Mod/TechDraw/Gui/Workbench.cpp index e8e1aa67ef..08ed28bbb8 100644 --- a/src/Mod/TechDraw/Gui/Workbench.cpp +++ b/src/Mod/TechDraw/Gui/Workbench.cpp @@ -34,14 +34,6 @@ using namespace TechDrawGui; -#if 0 // needed for Qt's lupdate utility -// qApp->translate("Workbench", "TechDraw"); - qApp->translate("Workbench", "TechDraw Pages"); - qApp->translate("Workbench", "TechDraw Views"); - qApp->translate("Workbench", "TechDraw Dimensions"); -#endif - -/// @namespace TechDrawGui @class Workbench TYPESYSTEM_SOURCE(TechDrawGui::Workbench, Gui::StdWorkbench) Workbench::Workbench() @@ -130,6 +122,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const *decor << "TechDraw_Symbol"; *decor << "TechDraw_Image"; *decor << "TechDraw_ToggleFrame"; + *decor << "TechDraw_RedrawPage"; return root; } @@ -180,6 +173,7 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const *decor << "TechDraw_Symbol"; *decor << "TechDraw_Image"; *decor << "TechDraw_ToggleFrame"; + *decor << "TechDraw_RedrawPage"; return root; }