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.
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.
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.
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.
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.
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.
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.
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).
gimp_color_config_get_foo_profile() -> get_foo_color_profile()
because the old names clash with possible future accessors for the raw
filename properties.
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.
- use G_FILE_CREATE_NONE instead of 0
- don't put "Could not open <file> for writing: <error>" around the
returned error, the returned message is already verbose
Move all code from gimp_scanner_new_file() to gimp_scanner_new_gfile().
If the passed GFile has a path, use a GMappedFile like before, otherwise
GIO-read the entire file into an allocated buffer and parse that buffer.
instead of passing N_()-strings; and remove gettext() calls on these
strings when using them. Reduces complexitx, and fixes double- and
untranslated strings. Also enables to treat properties of GIMP and
GEGL objects the same way, which was totally broken before.
The foo_DEPENDENCIES rule replaces the default dependencies, where
EXTRA_foo_DEPENDENCIES just appends to it. This was causing libgimp
and libgimpui to build out of order.
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
finally acknowledging the fact that app/ depends on gdk-pixbuf almost
globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
This fix is entirely sick, so is our method of serializing units,
which we write out as (unit foo bar) instead of (unit "foo bar"). The
assumption that caused this shit was that a unit's "identifier" is
really an identifier in the C-ish sense, when in fact it's just a
random user entered string.
Here, we try to parse at least the default units shipped with gimp,
and we add code to parse (unit "foo bar") in order to be compatible
with future correct unit serializing.
This only helps to maintain proper includes in app/ and shouldn't
affect plug-ins at all, because these are supposed to only include the
main headers from libgimp/ since the beginning of time.
The gimpfootypes.h files do not have these guards, so we can continue
to maintain app/'s include policy that is very likely to error out if
wrong things are included.
2009-03-17 Tor Lillqvist <tml@iki.fi>
* libgimpconfig/gimpconfigwriter.c
(gimp_config_writer_close_file): Drop Windows code to remove
target file before renaming. g_rename() nowadays takes care of
allowing replacing existing files on Windows.
svn path=/trunk/; revision=28171
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2008-11-12 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfig-path.c
(gimp_config_path_expand_only):
set the error in the GIMP_CONFIG_ERROR domain.
svn path=/trunk/; revision=27630
2008-11-06 Sven Neumann <sven@sven>
* libgimpconfig/gimpconfigwriter.c
(gimp_config_writer_linefeed):
use g_set_error_literal() here as well.
svn path=/trunk/; revision=27564
2008-11-06 Sven Neumann <sven@gimp.org>
* tools/gimp-mkenums: use NC_() to mark enum values for
translation.
Use a lower-case short form of the type name as translation
context.
* libgimp/libgimp-intl.h: define the NC_() macro as noop.
* libgimpbase/gimpbasetypes.[ch]
* libgimpbase/gimpbase.def: added new functions to set and
get a translation context on an enum type.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am:
* libgimpconfig/Makefile.am
* libgimpthumb/Makefile.am
* libgimpwidgets/Makefile.am: register the translation context
with the enum types.
* app/display/display-enums.h
* libgimpbase/gimpbaseenums.h
* libgimpconfig/gimpcolorconfig-enums.h: removed old-style
explicit
translation context.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/plug-in/plug-in-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c
* libgimpconfig/gimpcolorconfig-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.
svn path=/trunk/; revision=27562
2008-09-30 Michael Natterer <mitch@gimp.org>
Bug 546924 – "New Image" misscalculating dimensions for non-pixel
sized templates
* app/core/gimptemplate.h: added private param flag
GIMP_TEMPLATE_PARAM_COPY_FIRST.
* app/core/gimptemplate.c (gimp_template_class_init): set the flag
on the resolution properties.
* app/dialogs/image-new-dialog.c (image_new_template_changed):
make sure the resolution properties are copied first.
* libgimpconfig/gimpconfig-utils.c (gimp_config_sync): remove
comment about fixing the template editor. That's not true any
more.
svn path=/trunk/; revision=27091
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-02-01 Michael Natterer <mitch@gimp.org>
* libgimpconfig/gimpconfig-iface.[ch]: add new method
GimpConfigInterface::copy() which by default calls
gimp_config_sync() but is overridable for objects which are not
entirely property-defined or otherwise evil.
Freeze/thaw property notifications in deserialize() and reset().
* libgimpconfig/gimpconfig-utils.c (gimp_config_sync): freeze/thaw
property notifications on the dest object.
svn path=/trunk/; revision=24767
2007-11-16 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig.c: changed default value for using
the system monitor profile. Many users seem to have broken monitor
profiles and it's hard to figure out how to fix this (bug #496890).
svn path=/trunk/; revision=24170
2007-10-27 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpscanner.c (gimp_scanner_parse_color):
initialize GimpRGB, just to be sure.
svn path=/trunk/; revision=23975
2007-10-27 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig.h (struct _GimpColorConfig):
declared the fields as public so that they show up in the API
documentation.
svn path=/trunk/; revision=23965
2007-10-07 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig.c: use a neutral gray as the
default out-of-gamut warning color.
svn path=/trunk/; revision=23754
2007-10-05 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig.[ch]: added settings for marking
out-of-gamut colors in the Print Simulation (bug #476824).
* app/dialogs/preferences-dialog.c: added a check-button for the
out-of-gamut warning and tweaked the layout of the Color Management
page to make the relationship of the settings more obvious.
* modules/cdisplay_lcms.c: mark out-of-gamut colors.
svn path=/trunk/; revision=23729
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-06-21 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfigwriter.c (gimp_config_writer_finish):
if an error occured while writing the file, propagate the error
and return FALSE.
(gimp_config_writer_flush): improved error message.
svn path=/trunk/; revision=22821
2007-05-22 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfigwriter.c: use GSlice for the
GimpConfigWriter struct.
svn path=/trunk/; revision=22561
2006-11-01 Sven Neumann <sven@gimp.org>
* app/file/file-open.c: always deal with embedded color profiles.
* app/dialogs/preferences-dialog.c: reordered items in Color
Management section, added some spacing.
* app/config/gimprc-blurbs.h
* libgimpconfig/gimpcolorconfig.c
* plug-ins/common/lcms.c: string changes for consistency.
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-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-09-24 Michael Natterer <mitch@gimp.org>
Some more proper typing instead of using pointers:
* libgimpconfig/gimpconfig-params.h: added macro
GIMP_CONFIG_INSTALL_PROP_BOXED().
* app/core/gimpcontainer.c: made "children-type" a GParamSpecGType.
* app/widgets/gimpcontrollerinfo.c: made "mapping" a
GParamSpecBoxed and use g_hash_table_unref() instead of destroy().
* app/widgets/gimppdbdialog.c: made "select-type" a GParamSpecGType.
* app/dialogs/module-dialog.c
* app/widgets/gimpcolordisplayeditor.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimppluginaction.c: use proper object types, boxed
types and G_TYPE_GTYPE instead of G_TYPE_POINTER for various list
stores and signal signatues.
2006-08-08 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfig-deserialize.c
(gimp_config_deserialize_property)
* libgimpconfig/gimpconfig-serialize.c
(gimp_config_serialize_property): check if the properties
owner_type is an object type before calling g_type_class_peek().
2006-07-05 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpenv.h
* libgimpbase/gimpmemsize.h
* libgimpbase/gimpparasiteio.[ch]
* libgimpbase/gimputils.h
* libgimpconfig/gimpconfig-path.[ch]
* libgimpthumb/gimpthumb-utils.[ch]: marked some function with
G_GNUC_MALLOC.
* plug-ins/common/dicom.c: use g_date_set_time_t() instead of the
deprecated g_date_set_time().
2006-06-27 Sven Neumann <sven@gimp.org>
* modules/cdisplay_proof.c: use the GimpColorRenderingIntent
enum
from libgimpconfig instead of duplicating it.
2006-04-27 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: hide the GimpParamSpecRGB struct
again. Added getter for the has_alpha field.
* libgimpcolor/gimpcolor.def: updated.
* app/config/gimpconfig-dump.c
* libgimpconfig/gimpconfig-serialize.c: use
gimp_param_spec_rgb_has_alpha() instead of accessing the
GimpParamSpecRGB struct directly.
2006-04-27 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: added "has_alpha" to GimpParamSpecRGB.
Made the GimpParamSpecRGB struct public. When validating a color,
only look at the alpha channel if has_alpha is set.
* libgimpconfig/gimpconfig-params.h: added "has_alpha" to
GIMP_CONFIG_INSTALL_PROP_RGB macro definition.
* libgimpconfig/gimpconfig-serialize.c: serialize color values as
"(rgb r g b)" if the param-spec indicates that the alpha channel
is meaningless.
* app/config/gimpconfig-dump.c: take "has_alpha" into account when
documenting color properties.
* app/core/gimpcontext.c
* app/core/gimpgrid.c
* app/display/gimpdisplayoptions.c
* app/text/gimptext.c
* app/widgets/gimpaction.c
* app/widgets/gimpcolorbar.c
* libgimpwidgets/gimpcolorarea.c
* libgimpwidgets/gimpcolorbutton.c: specify whether color properties
have an alpha channel.
* tools/pdbgen/app.pl: handle "has_alpha" for color paramaters.
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/context.pdb
* tools/pdbgen/pdb/grid.pdb
* tools/pdbgen/pdb/image.pdb: set the "has_alpha" flag where
appropriate.
* app/pdb/gimp-pdb-compat.c (gimp_pdb_compat_param_spec): set
"has_alpha" to TRUE for GIMP_PDB_COLOR.
* app/pdb/channel_cmds.c
* app/pdb/context_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/grid_cmds.c
* app/pdb/image_cmds.c
* app/pdb/palette_cmds.c
* app/pdb/palettes_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
* app/config/gimpdisplayconfig.c (gimp_display_config_class_init):
removed unused code.
2006-04-06 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.c (gimp_data_error_quark)
* libgimpconfig/gimpconfig-error.c (gimp_config_error_quark)
* libgimpthumb/gimpthumb-error.c (gimp_thumb_error_quark):
g_quark_from_static_string() is already reasonably fast, not much
point in caching the result.
2005-12-20 Michael Natterer <mitch@gimp.org>
* libgimp/*.c
* libgimpconfig/*.c
* libgimpmodule/*.c
* libgimpthumb/*.c
* libgimpwidgets/*.c: port to G_DEFINE_TYPE() and friends. Some
related cleanup.
2005-09-28 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpscanner.c (gimp_scanner_new_file): mmap the
config file using GMappedFile. Let's see how well this works...
2005-09-26 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.c
* app/file/file-save.c
* app/file/file-open.c: use g_access() from gstdio.h.
* app/config/gimpconfig-file.c (gimp_config_file_copy)
* libgimpthumb/gimpthumbnail.c: use g_chmod() from gstdio.h.
* app/file/gimprecentlist.c
* libgimpconfig/gimpconfigwriter.c: use g_creat() from gstdio.h.
2005-06-26 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppropwidgets.c: use dgettext() instead of
gettext() and try to obtain the translation domain from the type.
Fixes i18n of tooltips on property widgets (bug #307756).
* libgimpconfig/gimpcolorconfig.c: set a translation domain.
2005-06-25 Sven Neumann <sven@gimp.org>
* app/dialogs/preferences-dialog.c: relabel the profile used for
softproofing to "Print simulation profile".
* libgimpconfig/gimpcolorconfig.c: improved blurb.
* modules/cdisplay_lcms.c (cdisplay_lcms_configure): show filenames
of profiles; will be replaced by real profile information.
2005-06-24 Sven Neumann <sven@gimp.org>
* app/dialogs/preferences-dialog.c: added a mnemonic.
* libgimpwidgets/gimppropwidgets.c
(gimp_prop_file_chooser_button_new): embed the button in an
event-box if the param_spec provides a blurb to be used as a
tooltip.
* libgimpconfig/gimpcolorconfig.c: improved blurbs.
2005-06-24 Sven Neumann <sven@gimp.org>
Added basic support for the proposed ICC Profiles In X Specification
(http://burtonini.com/temp/xicc-specification-0.1.html).
* libgimpconfig/gimpcolorconfig.[ch]: added a configuration option
"display-profile-from-gdk", default to TRUE.
* modules/cdisplay_lcms.c: try to retrieve the display color
profile from the "_ICC_PROFILE" profile on the default screen's
root window.
2005-04-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpunitstore.c: don't call va_arg() too often.
* libgimpconfig/gimpcolorconfig.c (gimp_color_config_finalize):
free the string allocated for the display module.
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 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfig-path.[ch] (gimp_param_spec_config_path):
declare default_value as const and allocate a copy.
* app/config/gimpbaseconfig.[ch]: gives access to the default values
for temp and swap path.
* app/base/base.c (base_init): create the temp directory if it
doesn't exist (bug #172682).
* plug-ins/uri/uri-backend-gnomevfs.c: fixed path in error message.
2005-03-04 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfig-path.c (gimp_config_path_expand_only):
handle g_get_home_dir() returning NULL and enable it for the Win32
platform as well.
2005-02-21 Sven Neumann <sven@gimp.org>
Another step towards color management:
* modules/Makefile.am
* modules/cdisplay_lcms.c: added new color display module that
implements color management for the image displays. Still work
in progress...
* modules/cdisplay_proof.c: no need to include <string.h> here.
* libgimpconfig/gimpcolorconfig.[ch]: added new property
"display-module" to configure the display color management module.
* app/display/gimpdisplayshell-filter.[ch]
* app/display/gimpdisplayshell.c: create the configured color
management display filter for each display.
2005-02-19 Hans Breuer <hans@breuer.org>
* app/base/pixel-processor.c : TILE_WIDTH is used unconditionally
so always include "tile.h"
* app/base/tile-swap.c : WIN32 needs <process.h> for _getpid()
* app/dialogs/user-install-dialog.c : include gimpwin32-io.h
* libgimpbase/gimpwin32-io.h : there are no group or other
flags in msvcrt, define S_IGRP etc in terms of _S_IREAD etc
* plug-ins/script-fu/script-fu.c plug-ins/script-fu/siod-wrapper.c :
no script-fu server on win32, make respective function calls conditional
* libgimpconfig/makefile.msc : new file
* **/makefile.msc app/gimpcore.def : updated, gimp builds
and runs once more with ms toolchain
2005-02-08 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig-enums.[ch]: gimp-mkenums doesn't
seem to like newlines in enum definitions.
* libgimpconfig/gimpcolorconfig.[ch]: removed the "profile-path"
property for now. It doesn't work too well with GimpFileEntry.
We can add it back later if it turns out that we really need it.
* app/dialogs/preferences-dialog.c
* app/widgets/gimphelp-ids.h: added a color management page to the
preferences dialog.
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-06 Sven Neumann <sven@gimp.org>
* libgimpconfig/Makefile.am
* libgimpconfig/gimpcolorconfig-enums.[ch]
* libgimpconfig/gimpcolorconfig.[ch]: added a first draft of a
color management configuration object. Not yet installed nor used
by anything. This is based on an older patch by Stefan Döhla.
2005-01-26 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpconfig-path.h: added declarations for the
gimp_config_build_path functions.
* app/config/Makefile.am
* app/config/gimprc-utils.[ch]: removed these two files again;
they used to duplicate functionality from libgimpconfig.
* app/config/gimpcoreconfig.c
* app/config/gimpguiconfig.c
* app/config/gimppluginconfig.c: changed accordingly.