Skip to content

Commit

Permalink
DrawViewBalloon: add units there as well
Browse files Browse the repository at this point in the history
since OriginX/Y depend on DrawView base X/Y

- also adapt the balloon test accordingly
  • Loading branch information
donovaly authored and WandererFan committed Dec 2, 2019
1 parent 7ef0d47 commit e583b2a
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 14 deletions.
21 changes: 21 additions & 0 deletions src/Mod/TechDraw/App/DrawViewBalloon.cpp
Expand Up @@ -128,6 +128,27 @@ void DrawViewBalloon::onDocumentRestored()

}

void DrawViewBalloon::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
// transforms properties that had been changed
{
// also check for changed properties of the base class
DrawView::handleChangedPropertyType(reader, TypeName, prop);

// property OriginX had the App::PropertyFloat and was changed to App::PropertyLength
if (prop == &OriginX && strcmp(TypeName, "App::PropertyFloat") == 0) {
App::PropertyInteger OriginXProperty;
// restore the PropertyInteger to be able to set its value
OriginXProperty.Restore(reader);
OriginX.setValue(OriginXProperty.getValue());
}
// property OriginY had the App::PropertyFloat and was changed to App::PropertyLength
else if (prop == &OriginY && strcmp(TypeName, "App::PropertyFloat") == 0) {
App::PropertyFloat OriginYProperty;
OriginYProperty.Restore(reader);
OriginY.setValue(OriginYProperty.getValue());
}
}


short DrawViewBalloon::mustExecute() const
{
Expand Down
6 changes: 4 additions & 2 deletions src/Mod/TechDraw/App/DrawViewBalloon.h
Expand Up @@ -27,6 +27,7 @@
# include <App/DocumentObject.h>
# include <App/FeaturePython.h>
# include <App/PropertyLinks.h>
# include <App/PropertyUnits.h>

#include "DrawView.h"

Expand All @@ -53,8 +54,8 @@ class TechDrawExport DrawViewBalloon : public TechDraw::DrawView
App::PropertyEnumeration EndType;
App::PropertyEnumeration Symbol;
App::PropertyFloat SymbolScale;
App::PropertyFloat OriginX;
App::PropertyFloat OriginY;
App::PropertyLength OriginX;
App::PropertyLength OriginY;
App::PropertyBool OriginIsSet;
App::PropertyFloat TextWrapLen;

Expand All @@ -79,6 +80,7 @@ class TechDrawExport DrawViewBalloon : public TechDraw::DrawView
protected:
void onChanged(const App::Property* prop);
virtual void onDocumentRestored();
virtual void handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property * prop);

This comment has been minimized.

Copy link
@vocx-fc

vocx-fc Dec 2, 2019

Contributor

@donovaly Same as in #2748, you should use spaces instead of tabs for indentation.


private:
};
Expand Down
25 changes: 13 additions & 12 deletions src/Mod/TechDraw/TDTest/DVBalloonTest.py
Expand Up @@ -8,6 +8,7 @@
from __future__ import print_function

import FreeCAD
from FreeCAD import Units
import Part
import Measure
import TechDraw
Expand Down Expand Up @@ -38,36 +39,36 @@ def DVBalloonTest():
view1 = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View')
FreeCAD.ActiveDocument.View.Source = [FreeCAD.ActiveDocument.Box]
rc = page.addView(view1)
view1.X = 30
view1.Y = 150
view1.X = Units.Quantity(30.0,Units.Length)
view1.Y = Units.Quantity(150.0,Units.Length)
view2 = FreeCAD.activeDocument().addObject('TechDraw::DrawViewPart','View001')
FreeCAD.activeDocument().View001.Source = [FreeCAD.activeDocument().Sphere]
rc = page.addView(view2)
view2.X = 220
view2.Y = 150
view2.X = Units.Quantity(220.0,Units.Length)
view2.Y = Units.Quantity(150.0,Units.Length)
FreeCAD.ActiveDocument.recompute()

print("Place balloon")
balloon1 = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewBalloon','Balloon1')
balloon1.sourceView=view1
balloon1.OriginIsSet=1
balloon1.OriginX=view1.X + 20
balloon1.OriginY=view1.Y + 20
balloon1.OriginX=view1.X + Units.Quantity(20.0,Units.Length)
balloon1.OriginY=view1.Y + Units.Quantity(20.0,Units.Length)
balloon1.Text="1"
balloon1.Y=balloon1.OriginX + 20
balloon1.X=balloon1.OriginY + 20
balloon1.Y=balloon1.OriginX + Units.Quantity(20.0,Units.Length)
balloon1.X=balloon1.OriginY + Units.Quantity(20.0,Units.Length)

print("adding balloon1 to page")
rc = page.addView(balloon1)

balloon2 = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewBalloon','Balloon2')
balloon2.sourceView=view2
balloon2.OriginIsSet=1
balloon2.OriginX=view2.X + 20
balloon2.OriginY=view2.Y + 20
balloon2.OriginX=view2.X + Units.Quantity(20.0,Units.Length)
balloon2.OriginY=view2.Y + Units.Quantity(20.0,Units.Length)
balloon2.Text="2"
balloon2.Y=balloon2.OriginX + 20
balloon2.X=balloon2.OriginY + 20
balloon2.Y=balloon2.OriginX + Units.Quantity(20.0,Units.Length)
balloon2.X=balloon2.OriginY + Units.Quantity(20.0,Units.Length)

print("adding balloon2 to page")
rc = page.addView(balloon2)
Expand Down

0 comments on commit e583b2a

Please sign in to comment.