1. 18 Mar, 2018 1 commit
    • Jehan's avatar
      app, libgimp, pdb: add "distance-metric" property to GimpPDBContext. · e164aee7
      Jehan authored
      This property is currently only used for gimp_edit_blend() to control
      how are computed distances. In the future, it could be used for more
      functions making use of "gegl:distance-transform" operation, or even for
      other algorithms, if relevant.
      This new property obviously comes with 2 new PDB calls:
      gimp_context_get_distance_metric() & gimp_context_set_distance_metric()
  2. 12 Feb, 2018 1 commit
    • Jehan's avatar
      app: keep track of number of errors and traces in GimpCriticalDialog. · 34fe992f
      Jehan authored
      We don't want an infinite number of traces because it takes some time to
      get. Until now I was keeping track of traces in app/errors.c, but that
      was very sucky because then I was limiting traces per session. Instead
      save them as a variable of a GimpCriticalDialog instance. Therefore only
      generate the traces for WARNING/CRITICAL at the last second, when
      calling the dialog.
      When too many traces are displayed, just fallback to just add error
      messages only. But then even errors without traces can be time-consuming
      (if you have dozens of thousands of errors in a few seconds, as I had
      the other day, updating the dialog for all of them would just freeze the
      whole application for a long time).
      So also keep track of errors as well and as last fallback, just send the
      remaining errors to the stderr.
  3. 11 Feb, 2018 1 commit
  4. 05 Feb, 2018 2 commits
  5. 28 Jan, 2018 1 commit
    • Jehan's avatar
      app: new error dialog to backtrace and encourage people to report bugs. · 9fdf3555
      Jehan authored
      GIMP will now try to get a backtrace (on Unix machines only for now,
      using g_on_error_stack_trace(); for Windows, we will likely have to look
      into DrMinGW).
      This is now applied to CRITICAL errors only, which usually means major
      bugs but are currently mostly hidden unless you run GIMP in terminal. We
      limit to 3 backtraces, because many CRITICAL typically get into domino
      effect and cause more CRITICALs (for instance when a g_return*_if_fail()
      returns too early).
  6. 02 Jan, 2018 1 commit
    • Michael Natterer's avatar
      Bug 762443 - Levels tool Output Level sliders works incorrectly · dce93c7d
      Michael Natterer authored
      Add "clamp-input" (which clamps the input values to [0..1])
      and "clamp-output" (which clips the final result to [0..1]),
      properties, parameters and GUI to:
      - GimpLevelsConfig
      - GimpOperationLevels
      - The levels tool dialog
      - The gimp_drawable_levels() PDB API
      The old deprecated gimp_levels() PDB API now sets both clamping
      options to TRUE which restores the 2.8 behavior.
      Also reorder some stuff in GimpLevelsConfig and elsewhere so the
      levels parameters are always in the same order.
  7. 17 Dec, 2017 5 commits
  8. 30 Oct, 2017 1 commit
    • Ell's avatar
      app, pdb: prevent custom gradient from being renamed · bccef430
      Ell authored
      Make internal data objects non-renamable, even if they're writable,
      through gimp_data_is_name_editable().  Currently, the only such
      object is the custom gradient.
      Prevent changing the name of non-renamable data by making the name
      entry of GimpDataEditor non-editable whenever
      gimp_viewable_is_name_editable() is FALSE, even if the data is
      otherwise editable.
      Prevent the vairous PDB -rename() functions from renaming non-
      renamable data, by adding a GimpPDBDataAccess flags type,
      specifying the desired access mode for the data -- any combination
      of READ, WRITE, and RENAME -- and replacing the 'writable'
      parameter of the gimp_pdb_get_foo() functions with an 'access'
      parameter.  Change the various .pdb files to use READ where they'd
      used FALSE, and WRITE where they'd used TRUE; use RENAME, isntead
      of WRITE, in the -rename() functions.
  9. 22 Oct, 2017 1 commit
  10. 05 Sep, 2017 1 commit
  11. 03 Sep, 2017 1 commit
  12. 30 Aug, 2017 1 commit
  13. 21 Aug, 2017 1 commit
    • Michael Natterer's avatar
      Move the new "default_new_layer_mode" APIs to the image... · e16c8a23
      Michael Natterer authored
      ...in both the core and libgimp.
      Images now know what the default mode for new layers is:
      - NORMAL for empty images
      - NORMAL for images with any non-legacy layer
      - NORMAL_LEGAVY for images with only legacy layers
      This changes behavior when layers are created from the UI, but *also*
      when created by plug-ins (yes there is a compat issue here):
      - Most (all?) single-layer file importers now create NORMAL layers
      - Screenshot, Webpage etc also create NORMAL layers
      Scripts that create images from scratch (logos etc) should not be
      affected because they usually have NORMAL_LEGACY hardcoded.
      3rd party plug-ins and scripts will also behave old-style unless they
      get ported to gimp_image_get_default_new_layer_mode().
  14. 20 Aug, 2017 2 commits
  15. 19 Aug, 2017 1 commit
  16. 05 Aug, 2017 1 commit
  17. 15 Jul, 2017 1 commit
  18. 22 Jun, 2017 1 commit
  19. 03 Jun, 2017 2 commits
  20. 28 May, 2017 1 commit
  21. 04 May, 2017 2 commits
  22. 01 May, 2017 2 commits
  23. 19 Apr, 2017 1 commit
  24. 10 Apr, 2017 1 commit
  25. 06 Apr, 2017 1 commit
    • Ell's avatar
      pdb: add debug group; add debug-timer-{start,end} procs · 16bebedc
      Ell authored
      Add a debug procedure group, living in 'debug.pdb', which would host
      useful debug helper functions.  Functions in this group are not part
      of the stable API, and may be changed at any point.
      All procedures added to 'debug.pdb' should have a 'debug_' prefix,
      and use the new std_pdb_debug() macro, which adds the proper "here be
      dragons" warning to their description.
      Add two debug procedures: gimp-debug-timer-start() and
      gimp-debug-timer-end(), which measure elapsed time, a la
      GIMP_TIMER_{START,END}, and can be used to profile script-fu
  26. 03 Apr, 2017 1 commit
    • Ell's avatar
      app: integer-ify position/offset members of GimpSourceCore · 7c7a1b63
      Ell authored
      We don't support subpixel source sampling, so there's no use in
      pretending that we do.  Demoting everything to int as soon as
      possible helps guarantee that these values are at least rounded
      properly and in fewer places.
      Make sure we always round coordinates down, and not toward zero.
      Keep using floats only in the signatures of the relevant PDB
  27. 21 Mar, 2017 1 commit
  28. 26 Feb, 2017 3 commits
  29. 20 Feb, 2017 1 commit