1. 16 Jun, 2017 2 commits
    • Dmitry Kazakov's avatar
      Implement KoShape::updateAbsolute() for complex transformation updates · 6f51599f
      Dmitry Kazakov authored
      Historically, transformation code uses extremely weird method of shape
      updates that rely on the event loop. This patch implements a framework
      for moving away from this strategy.
      
      The problem:
      
      When one transforms a shape he needs to update both areas: bounding
      rect of the shape *before* the transform and a bounding rect of the shape
      *after* the transform. Before the patch, the transformation code used the
      system like that:
      
      shape->update();
      shape->setTransformation(newTransform);
      shape->update();
      
      That works only with assumption that the first update() call will *not*
      be executed before setTransform() call. That should be true atm, but it
      is not guaranteed to be so in the future. Therefore, now the update happens
      like that:
      
      const QRectF oldDirtyRect = shape->boundingRect();
      shape->setTransformation(newTransform);
      shape->updateAbsolute(oldDirtyRect | shape->boundingRect());
      6f51599f
    • Dmitry Kazakov's avatar
      Fix artifacts when rendering shapes with miter join set · cb6516b8
      Dmitry Kazakov authored
      1) Miter limit in Qt should be normalized by line width.
      2) When transforming the insets we should just take maximum
         of insets, not bounding rect. Miters can extend into any
         direction, so not only +-45deg.
      cb6516b8
  2. 15 Jun, 2017 2 commits
  3. 14 Jun, 2017 3 commits
  4. 13 Jun, 2017 9 commits
  5. 12 Jun, 2017 3 commits
  6. 11 Jun, 2017 3 commits
  7. 10 Jun, 2017 3 commits
  8. 09 Jun, 2017 7 commits
  9. 08 Jun, 2017 6 commits
  10. 07 Jun, 2017 2 commits