1. 21 Jun, 2019 1 commit
  2. 10 Oct, 2018 1 commit
    • Eoin O'Neill's avatar
      Global Kinetic Scrolling Added · 49da9070
      Eoin O'Neill authored
      This patch takes the concept of Kinetic Scrolling and
      exapands it, applying it uniformly across Krita's UI.
      It also adds middle click as a kinetic scroll option
      which is set as default, to keep consistency with the
      canvas view (middle click pan.) Also added more
      configuration file settings for extra kinetic scrolling
      feel modifications.
      49da9070
  3. 05 Aug, 2018 1 commit
  4. 04 Jan, 2018 1 commit
    • Dmitry Kazakov's avatar
      Refactor KisSequentialIterator to use java-style iteration · f352cc1d
      Dmitry Kazakov authored
      This patch touches quite a lot of stuff throughout the entire Krita,
      please report any crashes you get because of that!
      
      Technical details:
      
      The sequential iterator (alongside the hline and vline) iterators had
      an inherent problem: when called with an empty rect it just crashed
      with SIGSEGV (hlive and vline iterators just have a hack to read/write
      at least one pixel when called with an empty rect). This problem happens
      because of the structure of API we use: we call nextPixel() **after** the
      first cycle of iteration, that is we will read/write at least one pixel
      even when the requested rect is empty(!).
      
      Now the iterator inserts one "virtual" pixel before every iteration that
      allows the user to call nextPixel() **before** the the first iteration
      and stop the cycle in case the check fails.
      
      See example code snippets in kis_sequential_iterator.h
      
      CC:kimageshop@kde.org
      BUG:388272
      f352cc1d
  5. 25 May, 2017 1 commit
  6. 08 May, 2017 1 commit
  7. 27 Feb, 2017 1 commit
    • Boudewijn Rempt's avatar
      Delete KisView on closing a view. · 6f614b5f
      Boudewijn Rempt authored
      This first makes KoCanvasBase a QObject; that used to be impossible
      because other calligra applications canvas classes multiply inherited
      QWidget and KoCanvasBase. That is no longer a consideration.
      
      Then every local use of a pointer to KoCanvasBase or KisCanvas2 is
      protected by QPointer. Now every canvas observer knows when a canvas
      has disappeared.
      
      But the canvas is deleted before the canvascontroller widget; that means
      that when deleting the canvas, the canvas controller widget would get
      confused because the canvas observers' canvas has already been deleted:
      unsetCanvas wouldn't be called on the canvas observers, so the logic here
      is now that if unsetCanvas is called when deleting the canvas controller
      widget, unsetCanvas is always called on all observers.
      
      Note: no dockers crash even if unsetCanvas isn't called at the right time,
      but it's still proper to call unsetCanvas to allow dockers to clean up
      things like local models linked to the layer model.
      6f614b5f
  8. 19 Oct, 2016 1 commit
  9. 09 Sep, 2016 1 commit
  10. 24 Aug, 2016 2 commits
  11. 30 Jul, 2016 1 commit
    • Eugene Ingerman's avatar
      Add antialiasing to createThumbnailDevice · 2a1987a8
      Eugene Ingerman authored
      Summary:
      1. Added oversampling/antialising to createThumbnailDevice. Interpolation is done using KisTransformWorker with bilinear interpolation. Added parameter that controls oversampling ratio.
      2. Added benchmark for new thumbnail code. Results for 6Kx8K image turned into 640px thumbnail see below. About 2x hit in time for 2x oversampling. Quality with 2x oversampling is much better than no oversampling. 4x oversampling slightly better, but not dramatically. See below.
      3. Changed oversampling for overview widget to 2x.
      4. Fixed caching of oversampled thumbnails.
      5. Fixed up functions calls to createThumbnail.
      
      {F156583}
      No Oversampling
      
      {F156585}
      2x Oversampling
      
      {F156586}
      4x Oversampling
      
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnail()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnail():
           161 msecs per iteration (total: 161, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailCached()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailCached():
           0.000059 msecs per iteration (total: 62, iterations: 1048576)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQ()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQ():
           3,962 msecs per iteration (total: 3,962, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample2x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample2x():
           269 msecs per iteration (total: 269, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample3x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample3x():
           489 msecs per iteration (total: 489, iterations: 1)
      PASS   : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample4x()
      RESULT : KisThumbnailBenchmark::benchmarkCreateThumbnailHiQcreateThumbOversample4x():
           701 msecs per iteration (total: 701, iterations: 1)
      
      Test Plan: Run KisThumbnailBenchmark.
      
      Reviewers: rempt, dkazakov, woltherav
      
      Reviewed By: rempt, woltherav
      
      Subscribers: woltherav
      
      Differential Revision: https://phabricator.kde.org/D1979
      2a1987a8
  12. 22 Apr, 2016 1 commit
  13. 30 Mar, 2016 1 commit
    • Boudewijn Rempt's avatar
      Fix loading the plugins again on OSX · d7256489
      Boudewijn Rempt authored
      We have two (well, three, but the tests don't work yet) situations:
      after make install, and after deploying. After install, plugins are
      in lib/kritaplugins, after deploy in PlugIns. To avoid trying to
      load way too many plugins, assume that all Krita plugins start with
      "krita".
      
      Also, move all dockers to plugins/dockers, from plugins/extensions/dockers.
      d7256489