1. 02 Oct, 2018 1 commit
  2. 06 Dec, 2017 1 commit
  3. 24 Sep, 2017 1 commit
  4. 06 Nov, 2016 1 commit
    • Craig Watson's avatar
      Fix saving of polygons' fill rule · 8365f2f7
      Craig Watson authored
      Up until now, the fill rule of a polygon was always saved as even-odd,
      despite the fact that in most if not all cases, polygons are drawn with
      winding fill within OpenBoard.
      Saving is now fixed, but there is no way to know upon loading whether
      the polygon was correctly saved or whether; so for now, we just set the
      fill rule to Winding when loading a polygon.
      8365f2f7
  5. 15 Oct, 2016 1 commit
    • Craig Watson's avatar
      Added stroke simplification algorithm · df71f158
      Craig Watson authored
      If enabled in the preferences menu, pen and marker strokes will be
      replaced by a simplified stroke after they are drawn.
      
      The algorithm is very basic (for now): if three points are almost lined
      up (the threshold angle can be specified in the config file), then the
      middle one is removed. This is repeated over the whole stroke; new
      polygons are then generated based on the simplified stroke points.
      
      This typically cuts down on number of points and polygons by a factor of
      about 10, while having minimal visual impact.
      df71f158
  6. 09 Oct, 2016 1 commit
    • Craig Watson's avatar
      Removed blending of adjacent polygons in marker strokes · 02205e86
      Craig Watson authored
      Due to antialiasing, adjacent polygons are separated by a very fine
      space. The previous solution attempted to hide this by adding a border
      to the polygons. The border of adjacent polygons would overlap, which
      was visible (despite the attempted color correction) and, more
      importantly, caused massive lags especially on Linux.
      
      Therefore it has been removed but feel free to revert this commit some
      day and try to fix this more cleanly.
      02205e86
  7. 13 May, 2016 1 commit
  8. 09 May, 2016 2 commits
  9. 26 Apr, 2016 1 commit
  10. 15 Feb, 2016 1 commit
  11. 08 Dec, 2015 1 commit
  12. 10 Nov, 2015 1 commit
    • Craig Watson's avatar
      Removed UBGraphicsPolygonItem::shape() · 7a4e9d2e
      Craig Watson authored
      Long version:
      
      UBGraphicsPolygonItem::shape() sometimes caused OpenBoard to crash due to
      inifinite recursion. This is easily replicated by trying to use the
      highlighting tool.
      
      The reason is: shape() calls boundingRect(); this function's definition is:
      
           QRectF QGraphicsPolygonItem::boundingRect() const
           {
                Q_D(const QGraphicsPolygonItem);
                if (d->boundingRect.isNull()) {
                    qreal pw = pen().style() == Qt::NoPen ? qreal(0) : pen().widthF();
                    if (pw == 0.0)
                        d->boundingRect = d->polygon.boundingRect();
                    else
                        d->boundingRect = shape().controlPointRect();
                }
                return d->boundingRect;
            }
      
      In the case where pw != 0, the shape() function is called. However, it
      is shape() from the derived class, not the base class, which is called.
      In other words, UBGraphicsPolygonItem::shape() is called rather than
      QGraphicsPolygonItem::shape().
      
      This means that boundingRect() is called again from within shape(), and
      so on, causing the program to crash.
      
      The fix was simply to remove UBGraphicsPolygonItem::shape(), as it
      appears to provide the same (or very similar) functionality to that of
      the base class's shape() function.
      
      In case this shape() function actually is needed, another workaround
      should be implemented to prevent this infinite recursion.
      7a4e9d2e
  13. 13 May, 2014 1 commit
  14. 16 Apr, 2014 1 commit
  15. 15 Apr, 2014 2 commits
  16. 14 Aug, 2013 1 commit
  17. 29 Apr, 2013 2 commits
  18. 27 Feb, 2013 1 commit
  19. 19 Feb, 2013 1 commit
  20. 27 Sep, 2012 1 commit
  21. 06 Sep, 2012 1 commit
  22. 03 Sep, 2012 1 commit
  23. 31 Aug, 2012 2 commits
  24. 27 Aug, 2012 1 commit
  25. 24 Aug, 2012 1 commit
  26. 23 Aug, 2012 1 commit
  27. 08 Aug, 2012 1 commit
    • Aleksei Kanash's avatar
      Reworked items copying mechanism. · 81a49e95
      Aleksei Kanash authored
      Now coping creates a full copy of already created item. Copy has it's own content (like video, audio or folder) and stores original item properties (like locked, pos, size, freezed e.t.c.).
      81a49e95
  28. 09 Jul, 2012 1 commit
  29. 29 May, 2012 1 commit
  30. 11 May, 2012 2 commits
  31. 09 May, 2012 1 commit
  32. 02 May, 2012 1 commit
  33. 25 Apr, 2012 1 commit
  34. 24 Apr, 2012 1 commit
  35. 05 Apr, 2012 1 commit