1. 31 Oct, 2018 1 commit
    • Michael Natterer's avatar
      Issue #2379 - Crash on saving · c55f2308
      Michael Natterer authored
      file_save(): make sure we always set an error on failure
      
      file_save_dialog_save_image(): additionally, check that "error" exists
      before dereferencing it.
      c55f2308
  2. 29 Sep, 2018 1 commit
    • Ell's avatar
      Issue #2222 - Warp Transform doesn't commit changes upon saving ... · ae628a86
      Ell authored
      ... the XCF file
      
      Add a "saving" signal to GimpImage, which is emitted when the image
      is about to be saved or exported (but before it's actually saved/
      exported).  Connect to this signal in tool-manager, and commit the
      current tool in response (unless its GimpToolControl::preserve is
      TRUE).
      ae628a86
  3. 21 Jul, 2018 1 commit
    • Michael Natterer's avatar
      Initial space invasion commit in GIMP · e09e563a
      Michael Natterer authored
      All babl formats now have a space equivalent to a color profile,
      determining the format's primaries and TRCs. This commit makes GIMP
      aware of this.
      
      libgimp:
      
      - enum GimpPrecision: rename GAMMA values to NON_LINEAR and keep GAMMA
        as deprecated aliases, add PERCEPTUAL values so we now have LINEAR,
        NON_LINEAR and PERCPTUAL for each encoding, matching the babl
        encoding variants RGB, R'G'B' and R~G~B~.
      
      - gimp_color_transform_can_gegl_copy() now returns TRUE if both
        profiles can return a babl space, increasing the amount of fast babl
        color conversions significantly.
      
      - TODO: no solution yet for getting libgimp drawable proxy buffers in
        the right format with space.
      
      plug-ins:
      
      - follow the GimpPrecision change.
      
      - TODO: everything else unchanged and partly broken or sub-optimal,
        like setting a new image's color profile too late.
      
      app:
      
      - add enum GimpTRCType { LINEAR, NON_LINEAR, PERCEPTUAL } as
        replacement for all "linear" booleans.
      
      - change gimp-babl functions to take babl spaces and GimpTRCType
        parameters and support all sorts of new perceptual ~ formats.
      
      - a lot of places changed in the early days of goat invasion didn't
        take advantage of gimp-babl utility functions and constructed
        formats manually. They all needed revisiting and many now use much
        simpler code calling gimp-babl API.
      
      - change gimp_babl_format_get_color_profile() to really extract a
        newly allocated color profile from the format, and add
        gimp_babl_get_builtin_color_profile() which does the same as
        gimp_babl_format_get_color_profile() did before. Visited all callers
        to decide whether they are looking for the format's actual profile,
        or for one of the builtin profiles, simplifying code that only needs
        builtin profiles.
      
      - drawables have a new get_space_api(), get_linear() is now get_trc().
      
      - images now have a "layer space" and an API to get it,
        gimp_image_get_layer_format() returns formats in that space.
      
      - an image's layer space is created from the image's color profile,
        change gimpimage-color-profile to deal with that correctly
      
      - change many babl_format() calls to babl_format_with_space() and take
        the space from passed formats or drawables
      
      - add function gimp_layer_fix_format_space() which replaces the
        layer's buffer with one that has the image's layer format, but
        doesn't change pixel values
      
      - use gimp_layer_fix_format_space() to make sure layers loaded from
        XCF and created by plug-ins have the right space when added to the
        image, because it's impossible to always assign the right space upon
        layer creation
      
      - "assign color profile" and "discard color profile" now require use
        of gimp_layer_fix_format_space() too because the profile is now
        embedded in all formats via the space.  Add
        gimp_image_assign_color_profile() which does all that and call it
        instead of a simple gimp_image_set_color_profile(), also from the
        PDB set-color-profile functions, which are essentially "assign" and
        "discard" calls.
      
      - generally, make sure a new image's color profile is set before
        adding layers to it, gimp_image_set_color_profile() is more than
        before considered know-what-you-are-doing API.
      
      - take special precaution in all places that call
        gimp_drawable_convert_type(), we now must pass a new_profile from
        all callers that convert layers within the same image (such as
        image_convert_type, image_convert_precision), because the layer's
        new space can't be determined from the image's layer format during
        the call.
      
      - change all "linear" properties to "trc", in all config objects like
        for levels and curves, in the histogram, in the widgets. This results
        in some GUI that now has three choices instead of two.
        TODO: we might want to reduce that back to two later.
      
      - keep "linear" boolean properties around as compat if needed for file
        pasring, but always convert the parsed parsed boolean to
        GimpTRCType.
      
      - TODO: the image's "enable color management" switch is currently
        broken, will fix that in another commit.
      e09e563a
  4. 11 Jul, 2018 1 commit
  5. 20 May, 2018 1 commit
  6. 11 Feb, 2018 1 commit
  7. 19 Nov, 2017 1 commit
  8. 04 May, 2017 1 commit
  9. 17 Feb, 2017 2 commits
  10. 26 Jan, 2017 1 commit
  11. 22 Jan, 2017 1 commit
    • Michael Natterer's avatar
      Bug 734657 - Import as 32-bit floating-point linear by default · 27519fc7
      Michael Natterer authored
      Optionally convert all imported (not XCFs) images to 32 bit linear
      floating point, and optionally add a little noise in order to
      distribute the colors minimally. The new options are on a new "Image
      Import & Export" prefs page that needs a new icon. Original dithering
      patch by pippin.
      27519fc7
  12. 21 Dec, 2016 1 commit
  13. 07 Nov, 2016 1 commit
    • Michael Natterer's avatar
      app: file_open_image(): fix opening of unknown remote files · 5e2a6185
      Michael Natterer authored
      This got lost when dropping the file-uri plug-in and switching to
      interal download using GIO. The file-uri plug-in would just download
      whatever remote thing and open it locally, using local magic matching.
      
      We now do the same internally and try the magic matching again on the
      downloaded file.
      5e2a6185
  14. 08 Jul, 2016 1 commit
  15. 03 Jul, 2016 1 commit
    • Massimo Valentini's avatar
      Bug 768273: Rapid sequence of commands causes crash · a93cea0e
      Massimo Valentini authored
      do not access progress object after destruction.
      
      silence warnings like:
      
      (gimp-2.8:1): GLib-GObject-WARNING **: gsignal.c:2635: instance '0x17083f0' has no handler with id '56146'
      
      (gimp-2.8:1): Gimp-Plug-In-CRITICAL **: plug_in_icc_profile_apply_rgb: assertion 'progress == NULL || GIMP_IS_PROGRESS (progress)' failed
      a93cea0e
  16. 15 Jun, 2016 1 commit
  17. 19 May, 2016 1 commit
  18. 03 Jan, 2016 1 commit
    • Michael Natterer's avatar
      app: move some stuff out of app/file/ · 5455b8bf
      Michael Natterer authored
      file-procedure.[ch] is gone and its functions moved to
      GimpPlugInManager where they belong (the manager keeps around the
      lists of load, save and export procedures).
      
      Utility functions from file-utils.[ch] that have nothing to do with
      image files moved to core/gimp-utils.[ch].
      5455b8bf
  19. 01 Jan, 2016 2 commits
  20. 09 Sep, 2015 1 commit
    • Michael Natterer's avatar
      Bug 754774 - Choosing "convert" upon import results in wrong colors... · 145a05ac
      Michael Natterer authored
      ...being displayed
      
      Need to call gimp_image_flush() on all newly opened images so whatever
      image states are properly updated:
      
      Call file_open_sanitize_image() at the end of loading (after profile
      import), and re-enable the flush() call in the function.
      
      Also, don't fiddle with undo disabling and enabling in
      gimp_image_import_color_profile(). Instead, disable undo before
      calling the function.
      145a05ac
  21. 23 Aug, 2015 1 commit
    • Michael Natterer's avatar
      app: implement the "Convert to RGB Working Space" import dialog in the core · b51ee77e
      Michael Natterer authored
      Add gimp_image_import_color_profile(), a GUI vtable entry
      query_profile_policy() and a new dialog which returns the profile
      policy and the profile to convert to. Get rid of the wrapper that
      calls the lcms plug-in for that dialog, the plug-in is now completely
      unused.
      
      This commit doesn't add any new features, it's just the former lcms
      plug-in dialog implemented in app/ (except the little fix that it is
      now aware of linear vs. gamma images).
      b51ee77e
  22. 16 Aug, 2015 1 commit
  23. 02 Aug, 2015 1 commit
  24. 16 Jun, 2015 1 commit
  25. 02 May, 2015 1 commit
  26. 29 Apr, 2015 1 commit
    • Michael Natterer's avatar
      Bug 748505 - Don't do nothing and report no error when trying to open a fifo · 2480d693
      Michael Natterer authored
      Remove the check for opening a regular file from
      file_open_dialog_response() and call the functions in file-open
      unconditionally. This is the actual fix because the check was simply
      bailing out with no message or anything when trying to open a
      non-regular file, whereas the checks in file-open return proper error
      messsages.
      
      In file_open_image(), do the checks for being a regular and readable
      file first, so we don't run into reading from other files when trying
      to figure the file format.
      2480d693
  27. 09 Jan, 2015 1 commit
  28. 07 Oct, 2014 1 commit
  29. 28 Sep, 2014 1 commit
  30. 02 Aug, 2014 1 commit
  31. 31 Jul, 2014 1 commit
  32. 28 Jul, 2014 1 commit
  33. 23 Jul, 2014 3 commits
  34. 13 Jul, 2014 1 commit
  35. 12 Jul, 2014 2 commits