From 33c2b18c33c883fbd24f012a840d4666e55067cf Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sat, 26 Jun 2021 21:39:47 -0500 Subject: [PATCH] Add propery properties to shapes --- source/easymacro.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/source/easymacro.py b/source/easymacro.py index abfc979..42bb52f 100644 --- a/source/easymacro.py +++ b/source/easymacro.py @@ -3350,6 +3350,13 @@ class LOShape(LOBaseObject): def shape_type(self): return self.obj.ShapeType + @property + def properties(self): + return {} + @properties.setter + def properties(self, values): + _set_properties(self.obj, values) + @property def is_image(self): return self.shape_type == self.IMAGE @@ -3527,19 +3534,21 @@ class LODrawPage(LOBaseObject): def create_instance(self, name): return self.doc.createInstance(name) - def add(self, type_shape, args={}): + def add(self, type_shape, options={}): + args = options.copy() """Insert a shape in page, type shapes: Line Rectangle Ellipse Text + Connector """ index = self.count - w = args.get('Width', 3000) - h = args.get('Height', 3000) - x = args.get('X', 1000) - y = args.get('Y', 1000) - name = args.get('Name', f'{type_shape.lower()}{index}') + w = args.pop('Width', 3000) + h = args.pop('Height', 3000) + x = args.pop('X', 1000) + y = args.pop('Y', 1000) + name = args.pop('Name', f'{type_shape.lower()}{index}') service = f'com.sun.star.drawing.{type_shape}Shape' shape = self.create_instance(service) @@ -3547,6 +3556,10 @@ class LODrawPage(LOBaseObject): shape.Position = Point(x, y) shape.Name = name self.obj.add(shape) + + if args: + _set_properties(shape, args) + return LOShape(self.obj[index], index) def remove(self, shape): @@ -6100,7 +6113,7 @@ class LODBServer(object): def __init__(self): self._conn = None - self._error = '' + self._error = 'Not connected' self._type = '' def __str__(self): @@ -6114,7 +6127,7 @@ class LODBServer(object): @property def is_connected(self): - return not bool(self._error) + return not self._conn is None @property def error(self):