1. 18 May, 2017 4 commits
  2. 17 May, 2017 3 commits
  3. 16 May, 2017 6 commits
  4. 15 May, 2017 3 commits
  5. 14 May, 2017 1 commit
  6. 11 May, 2017 4 commits
    • Dmitry Kazakov's avatar
      Disable tile data pool · 48e1c0cf
      Dmitry Kazakov authored
      It looks like at least in some circumstances it can make rendering of
      the image 5-30% slower. I will disable it by default until further
      details are investigated.
      If you modified your performance settings, this auto-disabling will
      not work. You should disable it manually by setting its size to 0%
      in Preferences->Performace tab.
      The testing, where the slowdown was registered, was done on 4k
      image using KisProjectionBenchmark.
    • Dmitry Kazakov's avatar
      Small UI fix for magic wand tool · c3aa636d
      Dmitry Kazakov authored
      Made small UI fix for "Contiguous Area Selection tool" (or "magic wand tool") as suggested in this theme (first part): https://forum.kde.org/viewtopic.php?f=288&t=140179
      Changed "fuziness" slider value from 0-200 to 1-100. I think it don't make sense to use 0 (because it doesn't select anything) or 100+ (because it select everything)
      Also changed slider step from 10 to 1 and made it exponential (1-20 values is most common)
      The patch by Radian <xenys25@gmail.com>
      Reviewers: #krita, rempt, dkazakov
      Reviewed By: #krita, dkazakov
      Differential Revision: https://phabricator.kde.org/D5793
    • Dmitry Kazakov's avatar
    • Dmitry Kazakov's avatar
      Rewrite for KoColorSpaceRegistry to fix multithreading and deadlocks · 8852506e
      Dmitry Kazakov authored
      Basically, we have two levels of locks in the registry:
      1) (outer level) is Private::registrylock, which controls the structures
         of the color space registry itself
      2) (inner level) is KoColorProfileStorage::Private::lock controls
         the structures related to profiles.
      The locks can be taken individually, but if you are going to take both
      of them, you should always follow the order 1) registry; 2) profiles.
      Otherwise you'll get a deadlock.
      All the dependent classes (KoColorConversionSystem and KoColorSpaceFactory)
      now do not use the direct links to the registry. Instead, they use special
      private interfaces that skip recursive locking and ensure we don't have
  7. 10 May, 2017 1 commit
    • Dmitry Kazakov's avatar
      Add -Werror=delete-incomplete · 53a506aa
      Dmitry Kazakov authored
      Deletion of an incomplete type is extremely dangerous and usually
      causes memory leaks, so just make it a build error instead, so we
      couldn't miss it.
  8. 08 May, 2017 1 commit
  9. 06 May, 2017 1 commit
  10. 04 May, 2017 1 commit
    • Eugene Ingerman's avatar
      Healing brush tool · ec5837d1
      Eugene Ingerman authored
      {T3589} task. Added new tool to seamlessly fill in areas in the image.
      Demo is available here: https://youtu.be/jI87VzDtkPY
      Test Plan:
      Note that this code runs much slower when compiled in debug mode than in release mode. Please, test release for performance issues.
      1. Press the "bandaid" tool.
      2. Use brush to paint over the area you want patched.
      3. Area should be replaced with reasonable image that blends with the image around it.
      Reviewers: #krita, dkazakov, rempt
      Reviewed By: #krita, dkazakov, rempt
      Differential Revision: https://phabricator.kde.org/D5327
  11. 02 May, 2017 1 commit
  12. 01 May, 2017 4 commits
    • Dmitry Kazakov's avatar
      Fix crash when switching color-filtered layers too quickly · 561a2e83
      Dmitry Kazakov authored
      Sometimes, during the removal process, the model emits currentChanged()
      signal, which may cause a double-recursion, which causes a crash.
    • Halla Rempt's avatar
      Remove unused method · a01f9449
      Halla Rempt authored
    • Dmitry Kazakov's avatar
      Don't use dbgKrita in places that are used for debugging only · e29b1a5e
      Dmitry Kazakov authored
      comparePaintDevicesClever() and MeasureAvgPortion are used either in
      tests or while debugging. They are not used in any production code,
      so having to enable entire-Krita debugging to see their result is
      just wastes the time.
    • Dmitry Kazakov's avatar
      Don't let the user close the document while saving is in progress · 3ce218ca
      Dmitry Kazakov authored
      Ideally, we should postpone closing till the saving is finished,
      but it is impossible to do right now, because doc->setModified()
      is called outside the saving lock held. Later, when we refactor
      the saving code and the modified state will be cleared under
      the lock, we can easily use KisSignalCompressor to close the
      The crash itself happened because the hack in KisPart::removeView()
      just skipped the deinitialization of the view and the input manager
      was still connected to the canvas that was destroyed.
  13. 28 Apr, 2017 6 commits
  14. 27 Apr, 2017 4 commits
    • László Fazekas's avatar
      fix CSV file saver crash · 82bcbd7b
      László Fazekas authored
    • Halla Rempt's avatar
      Remove superfluous line · da5528ed
      Halla Rempt authored
    • Dmitry Kazakov's avatar
      Fix writing of 16-bit transparency masks to a PSD file · 989a4797
      Dmitry Kazakov authored
    • Dmitry Kazakov's avatar
      Rewrite alpha colorspaces using templates and make them correct · cf54d5bd
      Dmitry Kazakov authored
      1) Non-U8 alpha color spaces were not connected to the color
         conversion system. Therefore, one couldn't convert to/from
         them any data
      2) The code of their methods were blindly copied from U8 color space,
         therefore all the functions (incl. toQColor/fromQColor/difference)
         just read wrong values from pointers (quint8 instead of quint16 or
      3) Now all the alpha color spaces are rewritten using a common template
         and the same code reused for all of them, with correct pointer
         conversions using KoColorSpaceMaths.
      4) The new color spaces are converted to the conversion system using
         existing Factory::colorConversionLinks() framework. Yes, they are
         created using factories.
      Open Questions:
      1) In KoColorSpaceRegistry there are some special cases about persistent
         storage of d->alphaCs and 'OwnedByRegistryRegistryDeletes' flags. I
         couldn't find any info about it, so it might be incorrect.