1. 23 Feb, 2012 1 commit
    • Boudewijn Rempt's avatar
      Correctly merge two layers · b1e180ca
      Boudewijn Rempt authored
      We need to merge both layers using the right properties on a third
      paint device and then use that for the combined layer.
  2. 05 Feb, 2012 1 commit
    • Dmitry Kazakov's avatar
      Fixed a really tricky bug in walkers · 5ea31706
      Dmitry Kazakov authored
      He-he ;)
      It happened due to the following:
      1) Undo of removeLayer command added a layer and issued setDirty
         for this node
      2) The scheduler calculated the walker for this update and put it
         into the queue
      3) Undo of addLayer command removed one of the layers of the stack,
         leaving the queued walker in a very interesting state.
      The point is that the walker stored a shared pointer to the removed
      node, so it still had access to it and there were no crashes, but its
      behavior was not obvious (read "unpredictable").
      So I extended the meaning of the walker's checksum. Now it depends on
      the graph sequence number as well, so the walker is recalculated when
      he gets to know its data is outdated.
      About Graph Sequence Number.
      Now KisNodeGraphListener maintains an integer which shows current "version"
      of the graph or its "sequence number". This integer is incremented on every
      change made to the graph. So if you have some information about the graph
      which was acquired while the sequence number was X and now you see the number
      equals to Y, you should know your information is outdated and someone has
      changed the graph since then.
  3. 31 Jan, 2012 2 commits
    • Dmitry Kazakov's avatar
      Removed old-style insert/remove signals from KisImage · 8f2770a1
      Dmitry Kazakov authored
      void sigLayersChanged(KisGroupLayerSP rootLayer);
      void sigPostLayersChanged(KisGroupLayerSP rootLayer);
      void sigAboutToAddANode(KisNode *parent, int index);
      void sigNodeHasBeenAdded(KisNode *parent, int index);
      void sigAboutToRemoveANode(KisNode *parent, int index);
      void sigNodeHasBeenRemoved(KisNode *parent, int index);
      All of their usecases are now covered with the three signals:
      void sigNodeAddedAsync(KisNodeSP node);
      void sigRemoveNodeAsync(KisNodeSP node);
      void sigLayersChangedAsync();
    • Dmitry Kazakov's avatar
      Removed node-move signals from the image · 0fcd59ed
      Dmitry Kazakov authored
      1) We don't use them anywhere
      2) On moving a node two signals are emitted: remove + insert
  4. 08 Jan, 2012 1 commit
    • Dmitry Kazakov's avatar
      Finished porting KisShapeController to two-stage signals processing · 2b15f28e
      Dmitry Kazakov authored
      Yay! Now it doesn't depend on multithreading of the KisImage at all!
      The updates of the internal shapes representation are done in two stage
      way like it is done for all the signals of KisCanvas2. First connection
      is direct and fetches the data from the image and the second is automatic
      and executed in the context of UI thread.
      I introduced four new signals for the image:
          void sigNodeAddedAsync(KisNodeSP node);
          void sigNodeMovedAsync(KisNodeSP node);
          void sigRemoveNodeAsync(KisNodeSP node);
          void sigLayersChangedAsync();
      They are supposed to supersede old 7 signals in the nearest future.
      This is the biggest part of refactoring needed for closing bug 290708.
      Now the only thing left is to port KisNodeModel to use dummies stored
      inside KisShapesController.
  5. 03 Jan, 2012 1 commit
  6. 02 Jan, 2012 4 commits
  7. 24 Dec, 2011 2 commits
  8. 28 Nov, 2011 3 commits
  9. 26 Nov, 2011 1 commit
    • Boudewijn Rempt's avatar
      Fix hang in scratchpad · ba8ef2a3
      Boudewijn Rempt authored
      Use QObject to do the memory management of the KisDefaultBounds object,
      this time. We cannot use pass-by-value because we have a subclass for
      KisDefaultBounds after all.
  10. 21 Nov, 2011 2 commits
    • Boudewijn Rempt's avatar
      Refactor KisDefaultBounds again · 1b6d9635
      Boudewijn Rempt authored
      This time, pass all by value, to avoid the memory management issues that
      crop up when sometimes paint devices share defaultbounds, sometimes
      create them, sometimes get them passed and should delete them.
      For a simple class like this, passing by value is not a huge burden, so
      shouldn't be a problem.
    • Boudewijn Rempt's avatar
      Make compile on Windows · e8e7c88c
      Boudewijn Rempt authored
      There was some really big mess with KisDefaultBounds. I have had to
      reorder the includes and make KisDefaultBounds owned by the paintdevice.
      Also, I split the file in two, one for KisDefaultBounds one for
  11. 20 Nov, 2011 1 commit
  12. 15 Nov, 2011 1 commit
    • Boudewijn Rempt's avatar
      Make loading images work again · 09b21963
      Boudewijn Rempt authored
      NOT the right fix, but right now Krita cannot load ora or kra because
      the asynch process never finished. Dmitry -- can you come up with the
      right fix? I'm committing this so Deevad can get back to work :-)
  13. 13 Nov, 2011 3 commits
  14. 12 Nov, 2011 1 commit
  15. 06 Nov, 2011 1 commit
  16. 23 Oct, 2011 3 commits
  17. 21 Sep, 2011 1 commit
  18. 18 Sep, 2011 1 commit
  19. 17 Sep, 2011 2 commits
  20. 10 Sep, 2011 1 commit
    • Dmitry Kazakov's avatar
      Connected scheduler's queues to the global progress bar · 2004a2bf
      Dmitry Kazakov authored
      From now on the use of KisProgressUpdater created by KisProgressInterface
      should be deprecated, because the progress of all the actions is displayed
      by the scheduler automatically. You should just split your task into
      several jobs. To show the progress of a single task you can still use
      the progress bars in the layer box.
  21. 08 Sep, 2011 1 commit
    • Dmitry Kazakov's avatar
      Ported image scale to processings · 8a7cef2f
      Dmitry Kazakov authored
      1) no updater feedback for KisImageManager::scaleCurrentImage
      2) size changed signal is emitted twice
      3) scaleOnlyShapes workaround
  22. 22 Aug, 2011 1 commit
  23. 19 Aug, 2011 2 commits
    • Dmitry Kazakov's avatar
      Fixed crash in KisKraSaverTest · 5c3e3210
      Dmitry Kazakov authored
      The walkers may store shared pointers to nodes, so they may request
      selection updates from deleted undo adapters
    • Dmitry Kazakov's avatar
      Relax the update condition · bb236089
      Dmitry Kazakov authored
      We should be able to update even when the image is locked: the updates
      are queued in such cases.
      The only drawback of such relaxation is that some old code calls setDirty
      insane number of times, e.g. KisColorSpaceConvertVisitor. This should
      be fixed by porting this visitor to 'processing' framework.
  24. 13 Aug, 2011 1 commit
  25. 12 Aug, 2011 2 commits