1. 11 Sep, 2019 2 commits
  2. 10 Sep, 2019 1 commit
  3. 08 Sep, 2019 4 commits
  4. 30 Aug, 2019 1 commit
  5. 29 Aug, 2019 1 commit
    • Michael Natterer's avatar
      app, libgimp: get rid of all ID GTypes and ID param specs · 392f00ba
      Michael Natterer authored
      Turn all ID param specs into object param specs (e.g. GimpParamImageID
      becomes GimpParamImage) and convert between IDs and objects in
      gimpgpparams.c directly above the the wire protocol, so all of app/,
      libgimp/ and plug-ins/ can deal directly with objects down to the
      lowest level and not care about IDs.
      
      Use the actual object param specs for procedure arguments and return
      values again instead of a plain g_param_spec_object() and bring back
      the none_ok parameter.
      
      This implies changing the PDB type checking functions to work on pure
      integers instead of IDs (one can't check whether object creation is
      possible if performing that check requires the object to already
      exist).
      
      For example gimp_foo_is_valid() becomes gimp_foo_id_is_valid() and is
      not involved in automatic object creation magic at the protocol
      level. Added wrappers which still say gimp_foo_is_valid() and take the
      respective objects.
      
      Adapted all code, and it all becomes nicer and less convoluted, even
      the generated PDB wrappers in app/ and libgimp/.
      392f00ba
  6. 19 Aug, 2019 1 commit
    • Michael Natterer's avatar
      Change the "handles uri" flag of file procedures to "handle remote" · de121374
      Michael Natterer authored
      And always pass URIs to all file procedures, the ones what didn't
      register as "handles remove" will only ever get local file:// URIs.
      
      Change all file plug-ins (also legacy ones) to expect URIs instead
      of filenames, and convert to local paths in the plug-in.
      
      The wire protocol should now be almost 100% clean of non-UTF-8 strings.
      de121374
  7. 17 Aug, 2019 1 commit
    • Michael Natterer's avatar
      app: stop canonicalizing procedure names · 11ce199c
      Michael Natterer authored
      on behalf of plug-in authors who have no style or can't type.
      
      Instead, simply reject non-canonical procedure names and remove all
      code that keeps aroud the original non-canonical shit just to pass it
      back to the plug-in.
      11ce199c
  8. 15 Aug, 2019 1 commit
  9. 28 Jul, 2019 1 commit
    • Michael Natterer's avatar
      app, libgimp, libgimpbase: plug-in and PDB protocol refactoring part two · 32ea28b6
      Michael Natterer authored
      - Change the wire protocol's GPProcInstall to transmit the entire
        information needed for constructing all GParamSpecs we use, don't
        use GimpPDBArgType in GPProcInstall but an enum private to the wire
        protocol plus the GParamSpec's GType name. Bump the wire protocol
        version.
      
      - Add gimpgpparamspecs.[ch] in both app/plug-in/ and libgimp/ which
        take care of converting between GPParamDef and GParamSpec. They
        share code as far as possible.
      
      - Change pluginrc writing and parsing to re-use GPParamDef and the
        utility functions from gimpgpparamspecs.
      
      - Remove gimp_pdb_compat_param_spec() from app/pdb/gimp-pdb-compat.[ch],
        the entire core uses proper GParamSpecs from the wire protocol now,
        the whole file will follow down the drain once we use a GValue
        representation on the wire too.
      
      - In gimp_plug_in_handle_proc_install(), change the "run-mode"
        parameter to a GParamSpecEnum(GIMP_TYPE_RUN_MODE) (if it is not
        already an enum). and change all places in app/ to treat it as an
        enum value.
      
      - plug-ins: fix cml-explorer to register correctly, a typo in
        "run-mode" was never noticed until now.
      
      - Add gimpgpcompat.[ch] in libgimp to deal with all the transforms
        between old-style wire communication and using GParamSpec and
        GValue, it contains some functions that are subject to change or
        even removal in the next steps.
      
      - Change the libgimp GimpProcedure and GimpPlugIn in many ways to be
        able to actually install procedures the new way.
      
      - plug-ins: change goat-exercise to completely use the new GimpPlugIn
        and GimpProcedure API, look here to see how plug-ins will look in
        the future, of course subject to change until this is finished.
      
      - Next: changing GPParam to transmit all information about a GValue.
      32ea28b6
  10. 31 May, 2019 1 commit
  11. 30 May, 2019 1 commit
  12. 27 May, 2019 1 commit
  13. 29 Apr, 2019 1 commit
  14. 12 Apr, 2019 1 commit
    • Jehan's avatar
      app: new "gex" format (GIMP Extension). · 406279e4
      Jehan authored
      File extension (.gex) may still change if anything better is proposed.
      This format is currently just a compressed archive containing the
      extension data (plug-in, brushes or whatever) and the metadata file.
      
      For now, opening such file will simply install it as a new extension,
      keeping all file permissions and structure. Of course in the future, it
      will have to trigger a confirmation dialog.
      
      Currently the compression used is zip, which is just a first draft. This
      is not a decisive choice as well. We could use some tarball compressed
      in whatever other compression algorithm. I use libarchive as a new
      dependency to support unarchiving as it seems to be a common library
      (and since it is already used by AppStream-glib anyway, this doesn't add
      any actual dependency, just make it direct).
      406279e4
  15. 03 Mar, 2019 2 commits
  16. 19 Feb, 2019 4 commits
  17. 16 Feb, 2019 1 commit
  18. 12 Feb, 2019 1 commit
    • Michael Natterer's avatar
      app, plug-ins: move pattern saving to the core · b29ecfb5
      Michael Natterer authored
      but only the actual saving code, not the export magic and dialog.
      
      Add new internal procedure file-pat-save-internal which is not
      registered as a file procedure and always works non-interactively on
      the passed arguments and only saves the passed drawable. Use the new
      internal procedure from the file-pat-save code and remove all file
      writing code from the plug-in.
      
      This way all pattern file writing code duplication is killed, while
      the whole export mechanism is completely unchanged.
      b29ecfb5
  19. 11 Feb, 2019 2 commits