1. 25 Nov, 2020 2 commits
  2. 24 Nov, 2020 2 commits
  3. 23 Nov, 2020 4 commits
  4. 21 Nov, 2020 2 commits
  5. 20 Nov, 2020 1 commit
  6. 19 Nov, 2020 3 commits
    • Agata Cacko's avatar
      Fix assert on New Layer From Visible on invisible active layer · d25e08a3
      Agata Cacko authored
      Before this commit, Krita would assert on New Layer from Visible
      when used on invisible layer. This commit fixes this.
      Buckle up, it's going to be a ride :)
      In 2016 there was a problem that invisible layers would show up
      when they were merged, see bug 359707.
      As a solution, "just remove the layers separately instead of
      merging" strategy was used.
      In 2018 it turned out that in case when putAfter (the layer
      Krita puts the merged result above of) is invisible, it gets
      removed, so then it's null and Krita tries to merge other layers
      in instead of putAfter, see bug 395903.
      As a solution, if putAfter was invisible, one of the visible
      nodes-to-be-merged were assigned to putAfter to replace the
      original putAfter node, to make sure that when original putAfter
      is removed, some other layer is doing its job.
      (The fact that it's a soon-to-be-merged layer is not a problem).
      In 2020 it turned out that there is quite a lot of actions
      that are possible in locked groups. It required some more changes
      to the code. See bug 406697.
      A solution included a change to the relevant code such that
      invisible putAfter would be unconditionally replaced with
      one of the nodes from the to-be-merged list, and then
      if putAfter had no parent, Krita would encounter an assert.
      Problem with this behaviour:
      In case of newLayerFromVisible(), mergedNodes list would only
      contain a root node (which has no parent). If the putAfter is
      invisible, then it's replaced with "one of" mergedNodes, which
      means the root node. Which means it's going to assert.
      However it's not always necessary to replace putAfter with one
      of the to-be-merged nodes. It's only needed when it's going to
      be removed. Hence moving the replacing into the if.
      Because root is not invisible, the list of invisible nodes
      will be empty and nothing will be replaced and nothing will
      be removed.
      NOTE: I also added a new condition: '&& cleanupNodes'.
      It's not stricly necessary to cover all usecases of
      mergeMultipleNodesImpl, because the only usecase where
      cleanupNodes is false is the newLayerFromVisible case
      (which will fail the first condition).
      However it makes it more future-proof since the only case
      those nodes needs to be removed is when cleanupNodes is true
      (otherwise removing nodes would be a dataloss bug).
      NOTE2: It's possible that putAfter replacement needs one more
      check (to see if it is in fact in the invisibleNodes list).
      I couldn't find a situation  where it was needed, though,
      so I left it as it is.
      (cherry picked from commit c1ab1ee9)
    • Amy spark's avatar
      macOS: fix unicode whitespace in batch_codesign -.-' · 937983d7
      Amy spark authored
      (cherry picked from commit 2e5608c3)
    • Amy spark's avatar
      macOS: codesign the Spotlight Importer · e1f60896
      Amy spark authored
      (cherry picked from commit 0d4e877d)
  7. 18 Nov, 2020 2 commits
  8. 17 Nov, 2020 5 commits
  9. 16 Nov, 2020 7 commits
    • Sharaf Zaman's avatar
      ChromeOS: make theme's background to be black · 5b7f6804
      Sharaf Zaman authored
      QPA plugin sets theme background as the window background. Previously
      this was bright pink, which makes things look a bit ugly while resizing.
    • Amy spark's avatar
      macOS: Fix double-free in the thumbnail generator · 922270b9
      Amy spark authored
      not noticed until I enabled ARC, and even then, it only appears in the Console...
      (cherry picked from commit 400b68e2)
    • Dmitry Kazakov's avatar
      Merge branch 'kazakov/mesh-transform-T13577' into krita/4.3 · 137ccc23
      Dmitry Kazakov authored
      # Conflicts:
      #	plugins/tools/tool_transform2/tool_transform_args.cc
    • Amy spark's avatar
      Upgrade macOS integration plugins · 1a320dc6
      Amy spark authored
      This commit brings a massive refactor to the existing plugins for macOS:
      - Adds QuickLook Thumbnailing (10.15+) support.
      - Adds Spotlight metadata support.
      - It drops NSTasks for reading the KRA file in favor of a bundled
      minizip library. NSTask is usable from QuickLook generators, but not
      from Spotlight (mdimporter/mdworker).
      - It adds license headers throughout the updated code, recognising the
      original authors of the Quicklook plugin.
      The README and packaging scripts have been updated to reflect these changes.
      The LICENSE (GPLv2) has been removed to make it consistent with the rest
      of Krita; feel free to contact me if this is wrong.
      CCMAIL: kimageshop@kde.org
      (cherry picked from commit b5375c4d)
      (cherry picked from commit accdfe1f)
    • Sharaf Zaman's avatar
      Android: don't set nameFilters when exporting · 7f211e12
      Sharaf Zaman authored
      Android docs suggest two ways to pass mime info to the Storage Framework
      1. Intent#setType() -- when mimetype belongs to some specific category e.g image/*
      2. Intent#EXTRA_MIME_TYPES -- for disjoint ones.
      But Qt always uses the first mimetype in the list as setType, which for certain
      concrete mimeTypes (like image/jpeg), defaults the extension to .jpg which
      we/user can't change.
    • Sharaf Zaman's avatar
      Android: Enable free form window · 0fc095c4
      Sharaf Zaman authored
      for some some reason, we need this despite it being the default.
    • Amy spark's avatar
      SeExpr: rebrand library · bdebaf91
      Amy spark authored
      (cherry picked from commit c429f4f8)
      (cherry picked from commit 96ab15bf)
      (cherry picked from commit 22e4eced)
  10. 15 Nov, 2020 2 commits
  11. 12 Nov, 2020 10 commits