[TD]guard against font size zero

(cherry picked from commit 475d46c3d0)
This commit is contained in:
wandererfan
2025-12-09 05:25:53 +01:00
committed by Max Wilfinger
parent f216df1126
commit bfda3e194f
3 changed files with 42 additions and 1 deletions
+1 -1
View File
@@ -276,7 +276,7 @@ void QGIViewDimension::updateDim()
auto labelText = dim->getFormattedDimensionValue(Format::FORMATTED);
auto 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);
@@ -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);
}
}
@@ -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;