| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | """Provides the object code for the Text object.""" |
| | |
| | |
| | |
| |
|
| | |
| | |
| | from PySide.QtCore import QT_TRANSLATE_NOOP |
| |
|
| | import FreeCAD as App |
| | from draftobjects.draft_annotation import DraftAnnotation |
| | from draftutils import gui_utils |
| | from draftutils.messages import _log |
| |
|
| |
|
| | class Text(DraftAnnotation): |
| | """The Draft Text object.""" |
| |
|
| | def __init__(self, obj): |
| | obj.Proxy = self |
| | self.Type = "Text" |
| | self.set_properties(obj) |
| |
|
| | def set_properties(self, obj): |
| | """Add properties to the object and set them.""" |
| | properties = obj.PropertiesList |
| |
|
| | if "Placement" not in properties: |
| | _tip = QT_TRANSLATE_NOOP( |
| | "App::Property", "The placement of the base point " "of the first line" |
| | ) |
| | obj.addProperty("App::PropertyPlacement", "Placement", "Base", _tip, locked=True) |
| | obj.Placement = App.Placement() |
| |
|
| | if "Text" not in properties: |
| | _tip = QT_TRANSLATE_NOOP( |
| | "App::Property", |
| | "The text displayed by this object.\n" |
| | "It is a list of strings; each element " |
| | "in the list will be displayed " |
| | "in its own line.", |
| | ) |
| | obj.addProperty("App::PropertyStringList", "Text", "Base", _tip, locked=True) |
| | obj.Text = [] |
| |
|
| | def onDocumentRestored(self, obj): |
| | """Execute code when the document is restored.""" |
| | super().onDocumentRestored(obj) |
| | gui_utils.restore_view_object(obj, vp_module="view_text", vp_class="ViewProviderText") |
| |
|
| | vobj = getattr(obj, "ViewObject", None) |
| | if vobj is None: |
| | return |
| |
|
| | |
| | if self.stored_type is not None: |
| | self.update_properties_0v21(obj, vobj) |
| |
|
| | if hasattr(vobj, "LineWidth") or hasattr(vobj, "LineColor"): |
| | self.update_properties_1v1(obj, vobj) |
| |
|
| | def update_properties_0v21(self, obj, vobj): |
| | """Update view properties.""" |
| | |
| | |
| | |
| | vobj.DisplayMode = "World" if vobj.DisplayMode == "Screen" else "Screen" |
| | _log("v0.21, " + obj.Name + ", renamed 'DisplayMode' options to 'World/Screen'") |
| |
|
| | def update_properties_1v1(self, obj, vobj): |
| | if hasattr(vobj, "LineWidth"): |
| | vobj.setPropertyStatus("LineWidth", "-LockDynamic") |
| | vobj.removeProperty("LineWidth") |
| | if hasattr(vobj, "LineColor"): |
| | vobj.setPropertyStatus("LineColor", "-LockDynamic") |
| | vobj.removeProperty("LineColor") |
| | _log("v1.1, " + obj.Name + ", removed view properties") |
| |
|
| | def loads(self, state): |
| | |
| | |
| | self.stored_type = state |
| | self.Type = "Text" |
| |
|
| |
|
| | |
| | DraftText = Text |
| |
|
| | |
| |
|