Commit graph

39 commits

Author SHA1 Message Date
Alx Sa
5753ac75b4 libgimpconfig: Save legacy XCF grid colors...
...in GimpRGB format.
Resolves #14754

GimpGrid properties are saved and loaded
in XCFs as GimpParasites. When we
converted from GimpRGB to GeglColor
for the fgcolor and bgcolor properties,
we caused those properties to be lost
when saving a 2.10 and below compatible
XCF in GIMP 3.0+.

This patch adds new
gimp_config_get_xcf_version () and
gimp_config_set_xcf_version () API to
libgimpconfig's interface. This allows us to
pass the intended XCF version to the
parasite serialization process, and save
as either GeglColor or GimpRGB compatible
formats based on that value.
2026-01-09 16:53:33 +00:00
Jehan
dc3e815ff0 app, libgimp*, pdb, plug-ins: rename various public API name s/float/double/.
Several types functions were using the wording "float" historically to
mean double-precision, e.g. the float array type (which was in fact a
double array). Or the scanner function gimp_scanner_parse_float() was in
fact returning a double value. What if we wanted someday to actually add
float (usually this naming means in C the single-precision IEEE 754
floating point representation) support? How would we name this?

Now technically it's not entirely wrong (a double is still a floating
point). So I've been wondering if that is because maybe we never planned
to have float and double precision may be good enough for all usage in a
plug-in API (which doesn't have to be as generic so the higher precision
is enough)? But how can we be sure? Also we already had some functions
using the wording double (e.g. gimp_procedure_add_double_argument()), so
let's just go the safe route and use the accurate wording.

The additional change in PDB is internal, but there too, I was also
finding very confusing that we were naming double-precision float as
'float' type. So I took the opportunity to update this. It doesn't
change any signature.

In fact the whole commit doesn't change any type or code logic, only
naming, except for one bug fix in the middle which I encountered while
renaming: in gimp_scanner_parse_deprecated_color(), I discovered a
hidden bug in scanning (color-hsv*) values, which was mistakenly using a
double type for an array of float.
2024-11-02 15:00:03 +01:00
Jehan
f965b659eb libgimpconfig: gimp_config_(de)serialize_strv() should not be public.
These 2 functions are only used in one file each, there are absolutely
zero reasons to make them public. These functions have nothing special.
2024-10-17 22:38:25 +02:00
Lloyd Konneker
3cf3097d62 libgimpconfig: support GStrv aka string array 2023-06-15 17:12:44 +00:00
Michael Natterer
dbd793d631 libgimpconfig: get rid of filenames in all config related APIs
and rename function names which say "gfile" to just "file".
2019-09-21 12:55:12 +02:00
Michael Natterer
82b11c361a libgimpconfig: add function which (de)desialize from/to a GimpParasite 2019-09-21 12:26:29 +02:00
Michael Natterer
3598722020 libgimpconfig: add gimp_config_type_register()
which implements a generalized (not GEGL operation specific) version
of the dynamic config type creation code from gimp-operation-config.c.
2019-09-16 10:48:32 +02:00
Michael Natterer
8cdab31393 app, libgimpconfig: move gimp_param_spec_duplicate() to libgimpconfig 2019-09-14 17:35:32 +02:00
Niels De Graef
284ba5c870 libgimpconfig: Prevent GIR conflicts in GimpConfigWriter
GimpConfigWriter contains several constructors with the convention
`gimp_config_writer_new_* ()`. This will lead to problems however with
languages like Vala, where it cannot disambiguate the following:

```
// calls config_writer_new_string()
Gimp.ConfigWriter w = new ConfigWriter.string("xxx");
// calls config_writer_string()
w.string("xxx")
```

Using `from_` in constructors is general practice in GObject-bsed
libraries because of this.

This also fixes an error when trying to use vapigen on the GIMP .GIR
file.
2019-08-16 10:04:39 +00:00
Michael Natterer
c9b22def51 libgimpconfig: update gimpconfig.def 2019-08-09 18:51:12 +02:00
Michael Natterer
f90e19091d libgimpconfig: make GimpConfigWriter a boxed type 2019-08-07 21:51:30 +02:00
Jehan
a411ee7c38 libgimpconfig: forgot to update gimpconfig.def AGAIN!
Aaaaargh!
2018-07-03 02:01:20 +02:00
Ell
e47ffefab2 libgimpcolor, libgimpconfig: remove deprecated interface functions
Remove the deprectaed foo_interface_get_type() functions, as per
the last two commits.
2018-05-27 05:59:39 -04:00
Ell
5f8643a6ee libgimpconfig: align GimpConfig with the rest of the interfaces
Unlike the last two commits, we don't port GimpConfig to
G_DEFINE_INTERFACE(), since we need to provide a base initializer
for it.  However, this commit aligns it with the rest of our
intefaces, by renaming gimp_config_interface_get_type() to
gimp_config_get_type(), and by performing class initialization for
the interface in a separate function than base initialization.

Keep gimp_config_interface_get_type() around as a deprecated
function, to maintain ABI compatibility.  It will be removed in a
separate commit in master, so that this commit can be easily
cherry-picked to gimp-2-10.
2018-05-27 05:56:34 -04:00
Michael Natterer
7990b1d57c libgimp: update all .def files 2018-05-25 22:13:33 +02:00
Michael Natterer
d36d956770 libgimpconfig: add gimp_file_new_for_config_path() and _get_config_path()
Which turn a UTF-8 encoded config path directly into a GFile and back,
using gimp_config_path_expand() and _unexpand().
2016-09-30 22:03:34 +02:00
Michael Natterer
6b391156be libgimpconfig: add gimp_config_path_unexpand()
which is the opposite of gimp_config_path_expand() and replaces all
occurances of well-known gimprc paths with their respective
identifiers such as ${gimp_data_directory}, ${gimp_directory} etc.
2016-09-01 00:39:34 +02:00
Michael Natterer
a743ae712b libgimpconfig: add "optimize" options for display and softproofing
Honor them in gimp_widget_get_color_transform() and make them
configurable in prefs. The code and GUI avoid the negation in
the lcms "NOOPTIMIZE" flag.
2016-06-06 01:15:26 +02:00
Michael Natterer
8abf1aab5e libgimpconfig: add getters for all GimpColorConfig members
and use them instead of peeking the public object struct.
2016-06-05 23:58:02 +02:00
Michael Natterer
fcf5b708e5 libgimpwidgets: rename gimp_color_config_get_printer_color_profile()
to gimp_color_config_get_simulation_color_profile(), along with
various internal "printer" strings. Also reduce the number of
user-visible "print" stuff from the preferences color management page.
2016-06-05 18:00:24 +02:00
Michael Natterer
5cbe6f2003 libgimpconfig: add a preferred gray profile to GimpColorConfig 2015-12-14 01:54:00 +01:00
Michael Natterer
3565b33019 libgimpconfig: rename the new GimpColorConfig profile accessor functions
gimp_color_config_get_foo_profile() -> get_foo_color_profile()

because the old names clash with possible future accessors for the raw
filename properties.
2015-06-03 09:57:34 +02:00
Michael Natterer
54553487f2 libgimpconfig: add functions to get GimpColorProfiles to GimpColorConfig
gimp_color_config_get_rgb,cmyk,display,printer_profile()
2015-05-06 16:32:17 +02:00
Michael Natterer
32f29db8b0 libgimpconfig: add gimp_config_path_expand_to_files()
which returns a list of newly allocated GFiles.
2014-07-20 17:09:25 +02:00
Michael Natterer
d7812173f4 libgimpconfig: add gimp_config_deserialize_stream()
and gimp_scanner_new_stream().
2014-07-04 03:29:09 +02:00
Michael Natterer
0acbfc3ffa libgimpconfig: add gimp_config_serialize_to_stream()
and gimp_config_writer_new_stream() which take a GOutputStream. Also
fix some new and old corner cases in GimpConfigWriter.
2014-07-03 23:25:21 +02:00
Michael Natterer
6ec5fb80e4 libgimpconfig: add API operating on GFiles instead of filenames
to GimpConfigInterface's wrappers, to GimpConfigWriter and to
GimpScanner.
2014-07-01 01:57:31 +02:00
Michael Natterer
3cc53dab0b libgimpconfig: add gimp_scanner_parse_int64() 2013-06-28 22:02:29 +02:00
Michael Natterer
847deffc86 libgimpbase: add gimp_scanner_parse_boolean()
and complete many api doc stubs.
2011-11-05 17:02:51 +01:00
Martin Nordholts
d6820442b5 libgimpconfig: Also add gimp_config_serialize() to gimpconfig.def 2009-09-26 11:39:43 +02:00
Michael Schumacher
9f699e5441 Added missing export gimp_config_deserialize 2009-09-25 23:59:10 +02:00
Michael Natterer
c65b09921a libgimpconfig/gimpconfig-serialize.[ch] add
2008-05-18  Michael Natterer  <mitch@gimp.org>

	* libgimpconfig/gimpconfig-serialize.[ch]
	* libgimpconfig/gimpconfig.def: add
	gimp_config_serialize_property_by_name().

	* app/gegl/gimpcolorbalanceconfig.c
	* app/gegl/gimpcurvesconfig.c
	* app/gegl/gimphuesaturationconfig.c
	* app/gegl/gimplevelsconfig.c: implement serialize() and
	deserialize() and make sure the properties which change when the
	channel/range property changes are handled correctly. Not too
	ugly but it's still a hack...


svn path=/trunk/; revision=25703
2008-05-18 19:13:28 +00:00
Tor Lillqvist
08edb87340 Add gimp_config_copy.
2008-02-08  Tor Lillqvist  <tml@novell.com>

	* libgimpconfig/gimpconfig.def: Add gimp_config_copy.


svn path=/trunk/; revision=24831
2008-02-08 08:08:43 +00:00
Sven Neumann
63da8bb8ca libgimpconfig/gimpcolorconfig-enums.[ch] libgimpconfig/gimpcolorconfig.c
2006-10-27  Sven Neumann  <sven@gimp.org>

	* libgimpconfig/gimpcolorconfig-enums.[ch]
	* libgimpconfig/gimpcolorconfig.c
	* libgimpconfig/gimpconfig.def: removed unused enum
	GimpColorFileOpenBehaviour.

	* app/core/core-enums.[ch]: added enum GimpColorProfilePolicy.

	* app/config/gimpcoreconfig.[ch]
	* app/config/gimprc-blurbs.h: added property
"color-profile-policy".

	* app/plug-in/Makefile.am
	* app/plug-in/plug-in-icc-profile.[ch]: new files that wrap
usage
	of the lcms plug-in.

	* app/file/file-open.c: implement the user-configured policy for
	embedded color profiles.

	* app/widgets/gimpimageprofileview.c: use the wrapper to call
the
	plug-in-icc-profile-info procedure.

	* app/widgets/gimptoolbox-dnd.c: pass TRUE for "attach_comment"
	parameter to gimp_create_image().

	* app/core/gimptemplate.c
	* app/file/Makefile.am: cosmetic changes.

	* app/Makefile.am: some resorting to make the beast link again.
2006-10-27 13:52:40 +00:00
Simon Budig
a8593d8141 Oops. Need to specify both pdb-skip and skip.
2006-10-25  Simon Budig  <simon@gimp.org>

	* app/vectors/vectors-enums.h: Oops. Need to specify both
	pdb-skip and skip.

	* libgimp/gimp.def
	* libgimpconfig/gimpconfig.def
	* libgimpmath/gimpmath.def
	* libgimpthumb/gimpthumb.def
	* libgimpwidgets/gimpwidgets.def: .def-file maintenance. Hope my
	changes are correct...

	With the help from
	   nm .libs/libgimpfoo-2.0.so |\
	   sed -ne "s/.* T \([a-zA-Z0-9][a-zA-Z0-9_]*\)/\t\1/p" |\
	   (echo EXPORTS ; LC_ALL=C sort )

	* libgimpwidgets/gimppageselector.c: marked stretch_frame_image()
	as static.

	* libgimp/gimpenums.c.tail
	* libgimp/gimpenums.h
	* tools/pdbgen/enums.pl: regenerated.

	* devel-docs/libgimp/tmpl/gimpfontselectbutton.sgml: this changed
	again. WTF?
2006-10-25 16:55:20 +00:00
Sven Neumann
7647db537b added new function to reset a single property to its default value.
2005-04-06  Sven Neumann  <sven@gimp.org>

	* libgimpconfig/gimpconfig-utils.[ch]: added new function to reset
	a single property to its default value.

	* libgimpconfig/gimpconfig.def: updated.

	* app/config/gimpbaseconfig.[ch]: reverted last change.

	* app/base/base.c: use gimp_config_reset_property() instead.
2005-04-06 21:37:40 +00:00
Sven Neumann
5257aa9cbb libgimpconfig/Makefile.am libgimpconfig/gimpconfig.def
2005-02-07  Sven Neumann  <sven@gimp.org>

	* libgimpconfig/Makefile.am
	* libgimpconfig/gimpconfig.def
	* libgimpconfig/gimpconfig.h
	* libgimpconfig/gimpconfigtypes.h: install the GimpColorConfig
	header and include it.

	* libgimpconfig/gimpcolorconfig.[ch]: commented out some options
	that will only be needed later and that will most likely undergo
	some changes.

	* app/config/gimpcoreconfig.[ch]
	* app/config/gimprc-blurbs.h: added GimpColorConfig to GimpRc.
2005-02-07 16:19:08 +00:00
Sven Neumann
4aa2bf9382 libgimpbase/Makefile.am removed these two files again.
2005-01-26  Sven Neumann  <sven@gimp.org>

	* libgimpbase/Makefile.am
	* libgimpbase/gimppath.[ch]: removed these two files again.

	* libgimpconfig/gimpconfig-path.[ch]: merged the path type and
	param spec here. Renamed to GimpConfigPath and GimpParamConfigPath.

	* libgimpbase/gimpbase.h
	* libgimpbase/gimpbasetypes.[ch]
	* libgimpconfig/gimpconfig-deserialize.c
	* libgimpconfig/gimpconfig-params.h
	* app/config/gimpbaseconfig.c
	* app/config/gimpconfig-dump.c
	* app/config/gimpcoreconfig.c
	* app/config/gimpguiconfig.c
	* app/config/gimppluginconfig.c
	* app/widgets/gimppropwidgets.c: changed accordingly.

	* libgimpbase/gimpbase.def: updated.
2005-01-25 23:44:05 +00:00
William Skaggs
a60420e23f Bill Skaggs <weskaggs@primate.ucdavis.edu>
* libgimpconfig/gimpconfig.def: added
2005-01-25 23:26:24 +00:00