Changeset 2258
- Timestamp:
- 03/06/08 00:25:09 (7 months ago)
- Files:
-
- gaphas/trunk/gaphas/item.py (modified) (7 diffs)
- gaphas/trunk/gaphas/tests/test_line.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphas/trunk/gaphas/item.py
r2257 r2258 447 447 self._line_width = 2 448 448 self._fuzziness = 0 449 self._orthogonal = []449 self._orthogonal_constraints = [] 450 450 self._horizontal = False 451 451 self._head_angle = self._tail_angle = 0 … … 463 463 fuzziness = reversible_property(lambda s: s._fuzziness, _set_fuzziness) 464 464 465 def _set_orthogonal_constraints(self, orthogonal): 465 def _update_orthogonal_constraints(self, orthogonal): 466 """ 467 Update the constraints required to maintain the orthogonal line. 468 The actual constraints attribute (``_orthogonal_constraints``) is 469 observed, so the undo system will update the contents properly 470 """ 466 471 if not self.canvas: 467 self._orthogonal = orthogonal and [ None ] or []472 self._orthogonal_constraints = orthogonal and [ None ] or [] 468 473 return 469 474 470 for c in self._orthogonal :475 for c in self._orthogonal_constraints: 471 476 self.canvas.solver.remove_constraint(c) 472 self._orthogonal = []473 477 474 478 if not orthogonal: … … 480 484 eq = EqualsConstraint #lambda a, b: a - b 481 485 add = self.canvas.solver.add_constraint 482 cons = self._orthogonal486 cons = [] 483 487 rest = self._horizontal and 1 or 0 484 488 for pos, (h0, h1) in enumerate(zip(h, h[1:])): … … 489 493 self.canvas.solver.request_resolve(h1.x) 490 494 self.canvas.solver.request_resolve(h1.y) 495 self._set_orthogonal_constraints(cons) 491 496 self.request_update() 497 498 @observed 499 def _set_orthogonal_constraints(self, orthogonal_constraints): 500 """ 501 Setter for the constraints maintained. Required for the undo system. 502 """ 503 self._orthogonal_constraints = orthogonal_constraints 504 505 reversible_property(lambda s: s._orthogonal_constraints, _set_orthogonal_constraints) 492 506 493 507 @observed … … 498 512 False 499 513 """ 500 self._ set_orthogonal_constraints(orthogonal)501 502 orthogonal = reversible_property(lambda s: bool(s._orthogonal ), _set_orthogonal)514 self._update_orthogonal_constraints(orthogonal) 515 516 orthogonal = reversible_property(lambda s: bool(s._orthogonal_constraints), _set_orthogonal) 503 517 504 518 @observed … … 519 533 """ 520 534 self._inner_set_horizontal(horizontal) 521 self._ set_orthogonal_constraints(self._orthogonal)535 self._update_orthogonal_constraints(self._orthogonal_constraints) 522 536 523 537 horizontal = reversible_property(lambda s: s._horizontal, _set_horizontal) … … 535 549 """ 536 550 super(Line, self).teardown_canvas() 537 for c in self._orthogonal :551 for c in self._orthogonal_constraints: 538 552 self.canvas.solver.remove_constraint(c) 539 553 gaphas/trunk/gaphas/tests/test_line.py
r2256 r2258 48 48 assert len(canvas.solver._constraints) == 2 49 49 50 print 'undo_list:', undo_list51 50 undo() 52 51 52 assert not line.horizontal 53 53 assert len(canvas.solver._constraints) == 2, canvas.solver._constraints 54 54 55 line.horizontal = True 56 57 assert line.horizontal 58 assert len(canvas.solver._constraints) == 2, canvas.solver._constraints 55 59 56 60 # vim:sw=4:et
