1. 17 Jul, 2018 1 commit
    • Ell's avatar
      app, pdb: add gimp-register-file-handler-priority procedure · b4ac9568
      Ell authored
      Add a gimp-register-file-handler-priority procedure, which can be
      used to set the priority of a file-handler procedure.  When more
      than one file-handler procedure matches a file, the procedure with
      the lowest priority is used; if more than one procedure has the
      lowest priority, it is unspecified which one of them is used.  The
      default priority of file-handler procedures is 0.
      
      Add the necessary plumbing (plus some fixes) to the plug-in manager
      to handle file-handler priorities.  In particular, use two
      different lists for each type of file-handler procedures: one meant
      for searching, and is sorted according to priority, and one meant
      for display, and is sorted alphabetically.
      b4ac9568
  2. 18 Jun, 2018 2 commits
  3. 06 Jun, 2018 1 commit
    • Michael Natterer's avatar
      app, libgimp*: remove the config option to disable tooltips · b3620517
      Michael Natterer authored
      Also remove all traces of it from the plug-in protocol and raise the
      protocol version to 0x0100 (we now allow features and therefore
      version bumps in stable, and the master protocol version should always
      be higher). Fix the code that aborts plug-in startup on protocol
      version mismatch, we can't use gimp_message() because we have no
      protocol.
      b3620517
  4. 29 May, 2018 1 commit
    • Ell's avatar
      libgimpbase, libgimp, app: pass icon theme dir to plug-ins through config · 97925de8
      Ell authored
      Pass the current icon theme directory to plug-ins through the
      config message, and add a gimp_icon_theme_dir() libgimp function
      for retrieving it.  Note that we already have a similar
      gimp_icon_get_theme_dir() PDB function, which we keep around, since
      it can be used to dynamically query for the current icon dir,
      unlike the former, and since it returns a dynamically-allocated
      string, while the rest of the config-related functions return
      statically allocated strings.
      
      Use the new function, instead of gimp_get_icon_theme_dir(), in
      gimp_ui_init().  This allows gimp_ui_init() to run without making
      any PDB calls.  Consequently, this allows us to start plug-ins that
      call gimp_ui_init() without entering the main loop in the main app.
      We're going to add a plug-in that displays an interactive dialog
      while the main app is blocking waiting for an operation to
      complete, and we need to be able to start the plug-in without
      entering the main loop, to avoid the possibility of arbitrary code
      being executed during the wait.
      
      Bump the protocol version.
      97925de8
  5. 25 May, 2018 1 commit
  6. 20 May, 2018 2 commits
  7. 07 May, 2018 1 commit
    • Ell's avatar
      pdb: add gimp-image-{freeze,thaw}-{layers,channels,vectors} · 40e3406b
      Ell authored
      These procedures freeze/thaw the corresponding containers of the
      image, allowing plug-ins that perform many changes affecting any of
      these containers to suppress updates to the corresponding dialogs,
      significantly improving performance.
      40e3406b
  8. 23 Apr, 2018 1 commit
  9. 16 Apr, 2018 2 commits
  10. 15 Apr, 2018 1 commit
    • Michael Natterer's avatar
      Bug 795230 - Rename Blend tool and provide PDB compatibility · 50536e1c
      Michael Natterer authored
      Add new PDB group "drawable_edit" which has all procedures from the
      "edit" group which are not cut/copy/paste.
      
      The new group's procedures don't have opacity, paint_mode
      etc. arguments but take them from the context instead. Unlike the old
      gimp-edit-fill, gimp-drawable-edit-fill now uses the context's opacity
      and paint_mode.
      
      The new gimp-drawable-edit-gradient-fill procedure uses even more
      context properties which are also newly added with this commit
      (gradient_color_space, gradient_repeat_mode, gradient_reverse).
      
      And some cleanup in context.pdb.
      
      This is still WIP, nothing in the edit group is depcreated yet.
      50536e1c
  11. 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()
      e164aee7
  12. 19 Jan, 2018 1 commit
    • Jehan's avatar
      libgimp: add gimp_get_pdb_status() to return the status of last... · 2e18c80c
      Jehan authored
      ... procedure call.
      This is needed for plug-ins which depends on other plug-in's procedures.
      If for instance, the second-level plug-in is interrupted interactively,
      we don't want to process this as an error but as a cancellation.
      Therefore we need to know the returned value of the plug-in. Currently
      only way was to use gimp_get_pdb_error() but that was returning a
      human-readable error, not a computer-processable error.
      2e18c80c
  13. 11 Jan, 2018 1 commit
  14. 22 Oct, 2017 1 commit
  15. 03 Sep, 2017 1 commit
  16. 30 Aug, 2017 1 commit
  17. 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().
      e16c8a23
  18. 20 Aug, 2017 1 commit
  19. 04 May, 2017 1 commit
    • Michael Natterer's avatar
      app, pdb, libgimp: make the raw image importer configurable · 560340e8
      Michael Natterer authored
      Add "import-raw-plug-in" to gimprc, and a new procedure
      gimp_register_file_handler_raw(). On startup, remove all load
      procedures that are marked as "handles raw" but are not implemented by
      the configured plug-in. Add the list of available plug-ins to prefs ->
      import/export. Register all file-darktable procedures as handling raw.
      560340e8
  20. 06 Apr, 2017 1 commit
  21. 20 Feb, 2017 1 commit
  22. 01 Feb, 2017 1 commit
  23. 08 Jan, 2017 1 commit
  24. 03 Jan, 2017 2 commits
  25. 29 Oct, 2016 1 commit
    • Michael Natterer's avatar
      Bug 769738 - Add color tags/labels for layers/channels/paths · 31fcd79d
      Michael Natterer authored
      Add property "color-tag" of type enum GimpColorTag to GimpItem so all
      layers, channels and paths can be tagged with a color.
      
      For interoperability, use the color list from Krita which is a
      superset of Photoshop's colors.
      
      Features a "Color Tag" submenu in the layers, channels and paths
      menus, a row of color radio buttons in the properties dialogs,
      undo and PDB API.
      
      As a side effect, some common code is now factores out into
      items-actions.[ch] and items-commands.[ch] which adds visible, linked
      and lock actions for layers and channels.
      31fcd79d
  26. 20 Sep, 2016 2 commits
  27. 25 Jan, 2016 1 commit
  28. 17 Jan, 2016 2 commits
  29. 16 Jan, 2016 2 commits
  30. 04 Jan, 2016 1 commit
  31. 02 Jan, 2016 1 commit
  32. 09 Dec, 2015 1 commit
  33. 10 Nov, 2015 1 commit