1. 16 Jun, 2017 1 commit
    • 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
  2. 17 Feb, 2017 1 commit
  3. 06 Feb, 2017 1 commit
  4. 05 Jan, 2017 1 commit
  5. 30 Dec, 2016 1 commit
  6. 29 Dec, 2016 1 commit
  7. 23 Dec, 2016 2 commits
  8. 26 Jan, 2016 1 commit
  9. 09 Jan, 2016 1 commit
  10. 26 Nov, 2015 2 commits
  11. 17 Sep, 2015 1 commit
  12. 10 Sep, 2015 1 commit
  13. 07 Sep, 2015 1 commit
  14. 27 Sep, 2014 1 commit
  15. 30 May, 2014 1 commit
    • Dmitry Kazakov's avatar
      Implemented type-safe translations for undo actions · 9e143a4e
      Dmitry Kazakov authored
      See documentation to a KUndo2MagicString class.
      
      Now KUndo2Command cannot accept a usual string as the operation text().
      The supplied text must pass through the kundo2_i18n() function, which
      tells the developer to use (qtundo-format) which is mandatory for all the
      undo-related strings (because in some languages they should be shown in
      different cases in undo/redo action and in undo history, and the
      translators should use Magic Split for them).
      9e143a4e
  16. 06 Jun, 2012 1 commit
  17. 08 Oct, 2011 1 commit
    • Boudewijn Rempt's avatar
      Separate KoResourceManager for canvas and document · 0b2d5353
      Boudewijn Rempt authored
      KoResourceManager was used in two places: the canvas and document
      classes. This gave rise to endless confusion about which resource
      manager should be used where and contains what. The KoResourceManager
      api also contained methods that were only relevant when used from
      a document and others that were only relevant when used from a canvas.
      
      This patch splits the resourcemanager into two public and one private
      class. The public classes are KoDocumentResourceManager and
      KoCanvasResourceManager, the private class is KoResourceManager. The
      public classes defer to the private class for code-sharing purposes.
      
      The old KoCanvasResource and KoDocumentResource enums have been taken
      into the classes themselves.
      0b2d5353
  18. 24 Jun, 2011 1 commit
  19. 21 Jun, 2011 1 commit
  20. 22 Mar, 2011 1 commit
    • Jan Hambrecht's avatar
      make handle radius and grab sensitivity application wide settings · 72d501bf
      Jan Hambrecht authored
      changes the scope of handle radius and grab sensitivity from per canvas
      to per application, i.e. the are shared via the shape controllers
      resource manager. added some convenience methods to KoToolBase and
      KoInteractionStrategy to have fewer places where these settings are
      pulle from the proper resource manager.
      both settings are now correctly read and saved to the applications
      config file.
      72d501bf
  21. 04 Jul, 2010 1 commit
  22. 29 Jan, 2010 1 commit
  23. 23 Jan, 2010 2 commits
  24. 28 Dec, 2009 1 commit
  25. 16 Dec, 2008 1 commit
  26. 23 Aug, 2008 1 commit
    • Thomas Zander's avatar
      Fixes: slowness on embedded devices. · cfc2b625
      Thomas Zander authored
      Details: On embedded devices like n810 (which uses an Arm processor) usage
      of double is incredably expensive.  In almost all cases our usage of double
      can be done just as well using floats on those devices.
      This is something that Qt does as well using the type 'qreal' which is a
      double on all modern platforms but float on those that don't have double
      natively.  So we get the best of both worlds by replacing double with qreal.
      
      svn path=/trunk/koffice/; revision=851499
      cfc2b625
  27. 01 Dec, 2007 1 commit
  28. 25 Nov, 2007 2 commits
  29. 15 Oct, 2007 1 commit
  30. 15 Aug, 2007 1 commit
    • Jan Hambrecht's avatar
      Changed api for transformation related methods in KoShape. · c0983937
      Jan Hambrecht authored
      When doing shape transformations one has to know that there
      are two coordinate systems involved. The first one is the
      global (absolute) coordinates system, the one that corresponds
      to the document. The second is the local coordinates system
      that is only relevant to a single shape. To distinguish on
      which coordinate system a methods works, there is the
      "absolute" prefix for the methods dealing with the global,
      document based coordinate system.
      
      methods working relative to the globale coordinate system:
      
      absolutePosition()
      setAbsolutePsotion()
      absoluteTransformation() -> was transformationMatrix before
      applyAbsoluteTransformation() -> was applyTransformation()
      
      methods working relative to the shape coordinate system:
      
      position()
      setPosition()
      rotate()
      setShear()
      setScale()
      transformation()
      setTransformation()
      applyTransformation()
      
      Additionally i removed the moveBy methods which used to
      be relative to the global coordinate system. I removed
      that one as one can simply type
      setAbsolutePosition( absolutePosition() + QPoinF(dx,dy) )
      to have the same effect as before.
      
      I hope that makes it easier to use transformation of
      shapes.
      
      
      svn path=/trunk/koffice/; revision=700574
      c0983937
  31. 14 Aug, 2007 1 commit
  32. 03 Aug, 2007 1 commit
    • Thomas Zander's avatar
      Alter the KoShapeTransformCommand to not be iterative (i.e. store diffs) anymore · 609036a2
      Thomas Zander authored
      as that is not really a good API for a command.  This breach in contract was most
      visible when doing undo twice which is not suppost to have any additional effect.
      Also alter the ones using the command to use the new API.
      
      This fixes the bug that if you presed 'escape' in the middle of doing a
      rotate/shear/resize the shape did not go back to what it should have been.
      
      svn path=/trunk/koffice/; revision=695896
      609036a2
  33. 31 Jul, 2007 1 commit
    • Thomas Zander's avatar
      Thanks to the new kDebug stuff, which is based on qDebug, we no longer · cf7bde75
      Thomas Zander authored
      need to pass an endline and there will be a space placed between
      arguments automatically.
      This means that everywhere we added those manually we get duplicates, so
      lets get rid of those.
      
      oh; here is the perl script I used; (regexps rock!)
      
      #!/usr/bin/perl -ni
      
      s/(kDebug\s*\(.*?)(\s*<<\s*endl\s*;)/$1;/;
      while(s/(kDebug\s*\(.*)((\\n|\s+)\")/$1"/s) {}
      print $_;
      
      svn path=/trunk/koffice/; revision=694641
      cf7bde75
  34. 01 Jul, 2007 1 commit
  35. 24 Jun, 2007 1 commit
  36. 28 May, 2007 1 commit
    • Thomas Zander's avatar
      So, here I was, happily implementing a rather trivial method in the text tool · 54fd6d52
      Thomas Zander authored
      when I realize that I need a viewConverter instance passed into the method.
      So I alter the signature and add the variable to the call in kword.
      Only to realize that I can't do it since I have a const problem.  The method
      is const, but the variable getter is not.  Hmm, hang on; but it _should_ be const
      since it just returns a variable...
      Ok, long story short; I ended up altering quite some method signatures and added
      const to some interfaces (and all their implementations).
      
      Oh, and I also implemented this trivial input-method query method ;)
      
      svn path=/trunk/koffice/; revision=669084
      54fd6d52