Commit Graph

332 Commits

Author SHA1 Message Date
Michael Natterer 4a5b740828 libgimpconfig: add GIMP_CONFIG_PROP_INT64() and GIMP_CONFIG_PROP_UINT64()
While all serialize and deserialize code is supporting 64-bit ints for
quite a while, we didn't have convenience macros to install properties.
2017-07-23 15:17:12 +02:00
Jehan 7999cfbeef libgimp*: tab cleaning. 2017-06-17 11:38:18 +02:00
Michael Natterer caef6d0deb libgimp*: various doc fixes 2017-06-03 21:22:12 +02:00
Ell 3ca48a0b30 enums: don't use comments in generated enum recipes
Works in bash, but apparently not portable.
2017-06-02 11:15:43 -04:00
Ell f16ba7d1a7 libgimpconfig: remove negative value handling from gimp_scanner_parse_color()
Handled internally by gimp_scanner_parse_float(), since last commit.
2017-05-27 16:40:26 -04:00
Ell b8505a4eac libgimpconfig: fix negative float parsing 2017-05-27 15:50:56 -04:00
Ell 5bcde32caf enums: run gimp-mkenums from the build dir
Commit 1e6acbd4e1 modified the
generated enum recipes to run gimp-mkenums from the source
directory, instead of the build directory, so that only the
basenames of the corresponding header files would appear in
the comment at the top of the generated files.  This was a
mistake -- $(GIMP_MKENUMS) is expecting to be invoked from the
build directory.

Switch back to running gimp-mkenums from the build directory.  To
avoid including the relative path from the build directory to the
source directory in the generated file, add a @basename@ production
variable to gimp-mkenums, which exapnds to the basename of the
input file, and use it instead of @filename@ in the recipes for the
generated enum files.
2017-05-22 20:29:18 -04:00
Ell f9fa0d1b18 enums: don't write generated enum files to src-dir if unchanged
When regenerating an enum file, don't copy it back to the source
directory if it hasn't actually changed.  This allows using a read-
only source directory where the enum header is newer than the
generated file, as long as they're not really out of sync.

OTOH, *do* touch the generated source-dir file even when unchanged,
in order to avoid re-running its recipe on the next build, however,
allow this to silently fail (which is harmless).
2017-05-22 17:58:04 -04:00
Michael Natterer 05874c1268 libgimpconfig: don't gimp_rgb_clamp() in gimp_scanner_parse_color()
so config files can now contain oog RGB values too.
2017-05-19 02:05:57 +02:00
Michael Natterer f807cbe10b libgimpconfig: change GimpColorConfig's out-of-gamut color to magenta
I have no clue why it was some gray.
2017-05-16 22:43:21 +02:00
Ell 1e6acbd4e1 enums: generate enum files in source dir
We check them into git, so this makes it easier to keep them in
sync when using a separate build directory.

Case in point -- this commit also syncs a few enum files that went
out-of-sync with their headers.
2017-05-06 17:26:16 -04:00
Michael Natterer 7111eadf3b libgimpconfig: gimp_config_reset_properties(): reset only changed properties
This avoids a lot of useless notifications when resetting an object,
and fixes e.g. the "reset tool options" behavior of GimpTransformTool,
which did completely reset itself instead of just behaving like all
non-default options had changed.

And probably breaks some things that were relying on these redundant
notifications.
2017-02-09 12:38:10 +01:00
Michael Natterer 4fb62427a2 libgimpconfig: better compat enum handling in gimp_config_deserialize_enum()
The compat enum's GType is now attached to the original enum's GType,
not to the individual GParamSpec.
2017-01-08 20:16:47 +01:00
Michael Natterer 7ab80eaa09 libgimpconfig: support "compat enums" in gimp_config_deserialize_enum()
If the enum value is not found among the nicks and names of the
GParamSpec's actual enum type, check if it has a "gimp-compat-enum"
GType attached as QData, and try the lookup there.
2017-01-06 23:09:39 +01:00
Michael Natterer 865d8796e0 libgimpconfig: gimp_scanner_parse_color(): parse nevative color values
instead of choking and aborting parsing of the entire config file. The
negative values are still clamped away after parsing, but at least we
properly read them now.
2016-10-18 22:34:51 +02:00
Michael Natterer bafe4419c6 libgimpconfig: (de)serialize GFile properties as config paths
so they are found in relocated prefixes / user configs.
2016-10-17 18:55:50 +02:00
Michael Natterer 1e69bbdef6 libgimpconfig: don't unref the GFile in gimp_config_serialize_value()
g_value_get_object() doesn't return a new reference, so it must
not be dropped. Fixes random crashes when a profile was chosen
in a GimpTemplate (e.g. in new image or prefs). Spotted by Elle.
2016-10-12 22:39:31 +02:00
Piotr Drąg f2e63397af Fix a typo in a translatable string ("represantation") 2016-10-02 13:47:50 +02:00
Michael Natterer 0524b60228 app: consistently treat GimpColorConfig profile paths as config paths
and use gimp_file_new_for_config_path() and _get_config_path() when
dealing with them. We used a weird mix of config paths and plain
(filesystem encoded) paths, waiting to to break on umlauts or
whatever. The code in gimpcolorconfig.c was particularly bad.
2016-10-01 00:29:44 +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 ada5fe977b Bug 772025 - Incomplete toolrc file causes GIMP to hang
gimp_config_deserialize_properties(): don't loop infinitely when
encountering EOF in a truncated file.
2016-09-28 18:32:25 +02:00
Michael Natterer ce4c4a44a6 libgimpconfig: fix typo: s/next level/nest level/ 2016-09-28 18:29:38 +02:00
Michael Natterer b63fed76eb libgimpconfig: serialize empty value arrays as (property-name 0)
not (property-name NULL), which means nothing to the parser.
A "0" simply means an array with zero values.
2016-09-14 00:56:17 +02:00
Michael Natterer 42647ec6d6 libgimpconfig: forgot debug output in gimp_config_path_unexpand_only() 2016-09-04 15:25:45 +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
Richard Kreckel dd9b0fc55b Bug 768044 - Fix many typos
This fixes many typos in comments and one in a user-visible string (msgid
"center abscisse" changed to "center abscissa" in affected po files. too).
2016-06-26 00:35:24 +02:00
Alexandre Prokoudine 6eb777a615 Bring soft-proofing consistence to blurbs 2016-06-08 23:46:09 +03:00
Michael Natterer 8634418be5 libgimpconfig: commit regenerated enums.c file 2016-06-08 00:02:03 +02:00
Alexandre Prokoudine 3e01419b0c Introduce consistent use of 'soft-proofing' in user-visible messages 2016-06-08 00:21:51 +03:00
Michael Natterer 4b18b1ac39 libgimpconfig: rename gimpcolorconfig-enums.[ch] to gimpconfigenums.[ch]
It makes no sense to do this differently than in all other of our
libraries.
2016-06-06 21:05:16 +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 060c03a119 libgimpconfig: don't include gimpcolorconfig-enums.h in gimpcolorconfig.c
gimpcolortypes.h already includes it.
2016-05-25 21:34:49 +02:00
Michael Natterer 335727dd26 libgimpwidgets: change the tooltip of GimpColorConfig:mode
to say "How images are displayed on screen." instead of "Mode of
operation for color management.". The old text was never accurate.
2016-05-16 17:38:49 +02:00
Alexandre Prokoudine e66ec72a3f Fix a user-visible typo 2016-05-10 01:08:14 +03:00
Michael Natterer 64fb18453c libgimpconfig: add support for (de)serializing GFile properties
Use g_file_get_parse_name() and g_file_parse_name() in order to turn
them into strings and back. Not really sure if we will end up needing
this, but I need it for current hacking. It's clean code and easy
enough to revert, so no harm done in either case.
2016-05-08 23:08:38 +02:00
Michael Natterer f11e1d141d libgimpconfig: deprecate all GIMP_CONFIG_INSTALL_PROP_FOO() macros 2016-04-17 00:12:33 +01:00
Michael Natterer d17fa32ca2 libgimpconfig: port to GIMP_CONFIG_PROP_FOO() 2016-04-17 00:12:10 +01:00
Michael Natterer 47ef3be145 Initialize GValues with G_VALUE_INIT instead of { 0, } 2016-03-26 15:59:26 +01:00
Michael Natterer a3f127bf5f libgimpconfig: add a new set of macros to register serialitable properties
The old GIMP_CONFIG_INSTALL_PROP_FOO() have the problem of always
passing NULL as the GParamSpec's "nick". I have no clue what we were
thinking back then, but this has always been a major design flaw
because (among other problems) it makes it impossible to fully
auto-generate GUIs based on properties.

Added GIMP_CONFIG_PROP_FOO() macros which do have a "nick" parameter,
will deprecate the old macros as soon as everything is ported.
2016-02-09 23:25:44 +01:00
Michael Natterer 5cbe6f2003 libgimpconfig: add a preferred gray profile to GimpColorConfig 2015-12-14 01:54:00 +01:00
Michael Natterer 77dac3ea60 Bug 555562 - GIMP should ask before applying working space profile
Get rid of the "configurable RGB working space profile".

Instead, turn GimpColorConfig's "rgb-profile" property into a
"Preferred RGB profile" thing that is only a hint and never used
without explicit user interaction. Present it next to the built-in
profile in the profile combo boxes and call it "Preferred" in the
prefs dialog and its tooltip.

Most importantly, don't use it as the image's profile when the image
is not tagged with a profile. Untagged images are now always in the
sRGB or linear RGB built-in color spaces.

This commit reduces the "Apply color profile" dialog on file import to
a simple "Convert to built-in RGB", but that dialog is about to be
moved to the core and improved anyway.
2015-08-20 16:02:22 +02:00
Michael Natterer c102dde92b libgimpcolor, *: change GimpColorProfile to be a GObject
it used to be a typedef to gpointer and actually was a cmsHPROFILE.

Change its API to be more "standard", remove the public close()
function. The object caches both the cmsHPROFILE and the data/length
ICC blob, so conversions between the two become obsolete (simply call
get_lcms_profile() or get_icc_profile()).

Adapt everything to the new API, but port it in a naive way for now,
the code doesn't take advantage of the new possibilities yet (like
refcounting).
2015-07-10 22:53:59 +02: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 4910c28957 libgimpcolor: rename the gimp_lcms_*() functions to gimp_color_profile_*()
because it doesn't make sense to call the typedef GimpColorProfile
but the function namespace gimp_lcms_*().
2015-06-03 09:41:23 +02:00
Michael Natterer 8005eea835 Remove the "GIMP" from all "Since: GIMP 2.x" API doc comments
because it confuses gtk-doc and breaks some links. Also change the
"Index of new symbols in GIMP 2.x" sections to be what seems to be the
modern standard (looked at the GLib and GTK+ docs), and update some
other stuff.
2015-05-31 21:18:09 +02:00
Michael Natterer 24da0007a4 libgimp*: some API doc fixes 2015-05-31 14:40:20 +02:00
Michael Natterer 393e3e0b0b libgimpconfig: fix error codes and messages in GimpColorConfig 2015-05-20 14:47:44 +02:00
Michael Natterer ce3429d643 libgimpconfig: validate profile filenames when setting them on GimpColorConfig
and don't allow wrong files to be set.
2015-05-20 12:20:58 +02:00