[TD]guard against font size zero

This commit is contained in:
wandererfan
2025-11-24 22:48:15 -05:00
parent 0ae68113a3
commit b28ec26e54
3 changed files with 42 additions and 1 deletions

View File

@@ -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);

View File

@@ -349,3 +349,41 @@ std::vector<App::DocumentObject*> 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);
}
}

View File

@@ -78,6 +78,7 @@ public:
bool setEdit(int ModNum) override;
bool doubleClicked() override;
bool onDelete(const std::vector<std::string> & parms) override;
void finishRestoring() override;
TechDraw::DrawViewDimension* getViewObject() const override;
@@ -93,6 +94,8 @@ public:
std::vector<App::DocumentObject*> claimChildren() const override;
void fixTextSize();
void fixArrowSize();
protected:
void handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property * prop) override;