diff --git a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp index 89b01c4c1e..694b7d661b 100644 --- a/src/Mod/TechDraw/Gui/QGIViewDimension.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewDimension.cpp @@ -283,7 +283,7 @@ void QGIViewDimension::updateDim() QFont font = datumLabel->getFont(); font.setFamily(QString::fromUtf8(vp->Font.getValue())); - int fontSize = QGIView::exactFontSize(vp->Font.getValue(), vp->Fontsize.getValue()); + int fontSize = QGIView::exactFontSize(vp->Font.getValue(), std::max(1.0, vp->Fontsize.getValue())); font.setPixelSize(fontSize); datumLabel->setFont(font); diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp index 98377ee8f5..85d01a6dd0 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp @@ -349,3 +349,41 @@ std::vector ViewProviderDimension::claimChildren() const } +void ViewProviderDimension::finishRestoring() +{ + fixTextSize(); + fixArrowSize(); + + ViewProviderDrawingView::finishRestoring(); +} + + +void ViewProviderDimension::fixTextSize() +{ + App::Document* ourDoc = getDocument()->getDocument(); + if (checkMiniumumDocumentVersion(ourDoc, 1, 1)) { + return; + } + + double size = Fontsize.getValue(); + if (size == 0.0) { + size = Preferences::dimFontSizeMM(); + Fontsize.setValue(size); + } +} + + +void ViewProviderDimension::fixArrowSize() +{ + App::Document* ourDoc = getDocument()->getDocument(); + if (checkMiniumumDocumentVersion(ourDoc, 1, 1)) { + return; + } + + double size = Arrowsize.getValue(); + if (size == 0.0) { + size = Preferences::dimFontSizeMM(); + Arrowsize.setValue(size); + } +} + diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.h b/src/Mod/TechDraw/Gui/ViewProviderDimension.h index f5a6b6c38c..8ea232e243 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.h @@ -78,6 +78,7 @@ public: bool setEdit(int ModNum) override; bool doubleClicked() override; bool onDelete(const std::vector & parms) override; + void finishRestoring() override; TechDraw::DrawViewDimension* getViewObject() const override; @@ -93,6 +94,8 @@ public: std::vector claimChildren() const override; + void fixTextSize(); + void fixArrowSize(); protected: void handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property * prop) override;