[TD]guard against font size zero
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user