1. 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
  2. 14 Aug, 2013 1 commit
  3. 04 Jun, 2013 1 commit
  4. 29 Apr, 2013 2 commits
  5. 27 Feb, 2013 1 commit
  6. 27 Sep, 2012 1 commit
  7. 27 Aug, 2012 1 commit
  8. 24 Aug, 2012 1 commit
  9. 23 Aug, 2012 1 commit
  10. 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
  11. 09 Jul, 2012 1 commit
  12. 29 May, 2012 1 commit
  13. 11 May, 2012 2 commits
  14. 09 May, 2012 1 commit
  15. 02 May, 2012 1 commit
  16. 25 Apr, 2012 1 commit
  17. 24 Apr, 2012 1 commit
  18. 05 Apr, 2012 1 commit
  19. 29 Mar, 2012 1 commit
  20. 10 Nov, 2011 1 commit
  21. 02 Aug, 2011 1 commit
  22. 19 Apr, 2011 1 commit