Commit Graph

64 Commits

Author SHA1 Message Date
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
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
2009-01-17 22:28:01 +00:00
Martin Nordholts 364d2cd84f Bug 555954 – Merge Tagging of Gimp Resources GSoC Project
Partial merge of code from Aurimas Juška.

* app/core/gimpdata.c: Implement GimpTagged::get_identifier() and
GimpTagged::get_checksum().

* app/core/gimpbrush.c: 
* app/core/gimpgradient.c
* app/core/gimppalette.c
* app/core/gimppattern.c: Implement GimpTagged::get_checksum().
They all use the GimpData implementation of
GimpTagged::get_identifier().

svn path=/trunk/; revision=27784
2008-12-13 11:58:24 +00:00
Martin Nordholts 70ed5218d6 Bug 555954 – Merge Tagging of Gimp Resources GSoC Project
Partial merge of code from Aurimas Juška.

* app/core/gimpdata.[ch] (gimp_data_make_internal): Add an
'identifier' parameter/instance struct member that can be used to
identify the internal GimpData object across sessions. It is the
internal-object counterpart to a file path.

* app/core/gimp.c
* app/core/gimpcurve.c
* app/core/gimpbrush.c
* app/core/gimppattern.c
* app/core/gimppalette.c
* app/core/gimpgradient.c
* app/core/gimp-gradients.c: Assign an identifier to the the
internal GimpData objects.

svn path=/trunk/; revision=27781
2008-12-12 07:03:42 +00:00
Martin Nordholts dca385281f Bug 555954 – Merge Tagging of Gimp Resources GSoC Project
Partial merge of code from Aurimas Juška.

* app/core/gimptag.c: A new minimal GimpTag type with only a
gimp_tag_equals() class function so that we can

* app/core/gimptagged.c
* app/core/gimpdata.c (gimp_data_add_tag, gimp_data_remove_tag):
Adapt these to GimpTag being an object instead of a GQuark.

* app/core/core-types.h: Update GimpTag typedef.

* app/core/Makefile.am: Add gimptag.[ch].

svn path=/trunk/; revision=27778
2008-12-11 22:04:05 +00:00
Sven Neumann a97d5de211 renamed gimp_data_name_compare() to gimp_data_compare() and changed it to
2008-07-10  Sven Neumann  <sven@sven-sun.berlin.jpk.com>

	* app/core/gimpdata.[ch]: renamed gimp_data_name_compare() to
	gimp_data_compare() and changed it to keep the data in three
	groups: internal, writable and system resource files. Inside the
	groups the sorting order is alphabetical.

	* app/core/gimpdatafactory.c (gimp_data_factory_new): changed
	accordingly.


svn path=/trunk/; revision=26100
2008-07-10 09:08:54 +00:00
Michael Natterer 15dd7ca20e prototype indentation and minor declatation and function reordering for
2008-04-19  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.c: prototype indentation and minor declatation
	and function reordering for the sake of consistency.


svn path=/trunk/; revision=25499
2008-04-19 14:48:50 +00:00
Sven Neumann e4d64122bb app/core/Makefile.am app/core/core-types.h define a simple interface for
2008-01-17  Sven Neumann  <sven@gimp.org>

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimptagged.[ch]: define a simple interface for tagged
	objects.

	* app/core/gimpdata.[ch]: implement the GimpTagged interface. 

svn path=/trunk/; revision=24633
2008-01-17 10:51:31 +00:00
Michael Natterer 036085fd9e app/base/temp-buf.c app/base/tile-manager.c accept NULL in all
2007-11-16  Michael Natterer  <mitch@gimp.org>

	* app/base/temp-buf.c
	* app/base/tile-manager.c
	* app/core/gimpobject.c: accept NULL in all get_memsize() functions.

	* app/core/gimp-utils.[ch]: ditto. Added gimp_string_get_memsize().

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbuffer.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdrawable.c
	* app/core/gimpdrawablemodundo.c
	* app/core/gimpdrawableundo.c
	* app/core/gimpimage.c
	* app/core/gimpitempropundo.c
	* app/core/gimplayer.c
	* app/core/gimpmaskundo.c
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimppreviewcache.c
	* app/core/gimpundo.c
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/pdb/gimpprocedure.c
	* app/plug-in/gimpplugindef.c
	* app/plug-in/gimppluginmanager.c
	* app/plug-in/gimppluginprocedure.c
	* app/text/gimptext.c
	* app/text/gimptextlayer.c
	* app/text/gimptextundo.c
	* app/vectors/gimpvectorsmodundo.c: simplify
	GimpObject::get_memsize() implementations accordingly.

	* app/core/gimpimageundo.c: ditto. Always keep around colormaps in
	chunks of GIMP_IMAGE_COLORMAP_SIZE to be coonsistent with the
	other colormap handling code.


svn path=/trunk/; revision=24174
2007-11-16 18:19:30 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
William Skaggs 8166a20748 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/core/gimpdata.c (gimp_data_class_init): fix typo
	in property construction code.
2006-10-27 18:11:46 +00:00
Sven Neumann 64e893e62f there's no need to make GTypeInfo and GInterfaceInfo structs static.
2006-10-18  Sven Neumann  <sven@gimp.org>

        * [lots of files]: there's no need to make GTypeInfo and
        GInterfaceInfo structs static.
2006-10-18 13:17:50 +00:00
Sven Neumann c3448b2cbf It makes more sense to have GimpData::dirty indicate a name change than to
2006-05-23  Sven Neumann  <sven@gimp.org>

	It makes more sense to have GimpData::dirty indicate a name change
	than to invalidate the previews whenever the name changes.

	* app/core/gimpdata.c: call gimp_object_name_changed() from
	gimp_data_real_dirty() instead of implementing
	GimpObject::name-changed and calling gimp_data_dirty() from there.

	* app/core/gimpbrushclipboard.c
	* app/core/gimppalette.c
	* app/core/gimppatternclipboard.c: call gimp_data_dirty() in place
	of gimp_object_name_changed().

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_dirty):
	chain up unconditionally.
2006-05-23 15:39:45 +00:00
Sven Neumann 049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +00:00
Sven Neumann 6f8f925c69 app/core/gimpdata.c (gimp_data_error_quark)
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.
2006-04-06 12:07:18 +00:00
Michael Natterer e1ceed5147 define GIMP_PARAM_STATIC_STRINGS which is G_PARAM_STATIC_NAME|NICK|BLURB.
2006-01-18  Michael Natterer  <mitch@gimp.org>

	* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
	which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
	GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
	GIMP_PARAM_STATIC_STRINGS.

	* app/*/*.c: use them for all object properties so their
	strings are not copied.
2006-01-18 20:29:40 +00:00
Sven Neumann a6bb2b5751 use gimp_brush_generated_new() to create the brush object. Removed
2005-11-01  Sven Neumann  <sven@gimp.org>

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_load): use
	gimp_brush_generated_new() to create the brush object. Removed
	redundant calls to gimp_data_dirty().

	* app/core/gimpdata.c: freeze the data object during construction.
2005-11-01 13:04:09 +00:00
Sven Neumann c00173ccd0 app/core/gimpdata.[ch] applied a heavily modified version of the patch
2005-10-31  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.[ch]
	* app/core/gimpdatafactory.c: applied a heavily modified version
	of the patch provided by Shlomi Fish in bug #311740. Introduces a
	cache to speed up reloading of data files.

	* app/actions/data-commands.c: set gimp busy while refreshing data
	factories.

	* app/widgets/gimpwidgets-utils.c (gimp_widget_accel_changed):
	free the return value of gimp_get_accel_string().
2005-10-31 11:29:01 +00:00
Sven Neumann 4839271341 app/core/gimpdata.c app/file/file-save.c use g_access() from gstdio.h.
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-09-25 23:22:05 +00:00
Sven Neumann c1363db8c0 Removed "stingy-memory-use" all over the place. This feature was really
2005-06-08  Sven Neumann  <sven@gimp.org>

	Removed "stingy-memory-use" all over the place. This feature was
	really not that useful anymore. The GUI for the preference option
	was already removed for GIMP 2.2.  Fixes bug #306617.

	* app/config/gimpbaseconfig.[ch]: set IGNORE flag on
	"stingy-memory-use".

	* app/config/gimpcoreconfig.h: added a comment that the
	font_path_writable variable is unused.

	* app/base/temp-buf.[ch]: removed code that used to deal with
	swapping temp-bufs to disk.

	* app/base/base.c: made base_config a static variable.

	* app/core/gimpdata.[ch]
	* app/core/gimpdatafactory.[ch]: removed stingy_memory_use
	parameter from data construction methods.

	* app/core/gimp-gradients.c
	* app/core/gimpbrush-load.[ch]
	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpbrushpipe.[ch]
	* app/core/gimpcontext.c
	* app/core/gimpgradient-load.[ch]
	* app/core/gimpgradient.[ch]
	* app/core/gimppalette-import.c
	* app/core/gimppalette.[ch]
	* app/core/gimppattern.[ch]: changed accordingly.
2005-06-08 11:27:31 +00:00
Sven Neumann 337947de29 reverted previous change for now.
2005-05-27  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c: reverted previous change for now.
2005-05-27 10:56:33 +00:00
Sven Neumann f0224fe104 mark properties as serializable.
2005-05-27  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c: mark properties as serializable.
2005-05-27 10:49:54 +00:00
Sven Neumann bbc1c947ad added more properties.
2005-05-26  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c: added more properties.
2005-05-25 23:47:42 +00:00
Sven Neumann 59cb5d75ba added MIME type as a construct property to GimpData.
2005-05-26  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.[ch]: added MIME type as a construct property
	to GimpData.

	* app/core/gimpbrush-load.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpgradient-load.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c: set the MIME type when loading a data
	object from file. MIME types needs review and GimpPalette isn't
	quite done yet...

	* app/core/gimpdashpattern.c: cosmetics.
2005-05-25 23:25:45 +00:00
Sven Neumann d336a49a53 return early if called for an internal data object. Fixes bug #172581.
2005-04-04  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c (gimp_data_create_filename): return early if
	called for an internal data object. Fixes bug #172581.
2005-04-04 15:14:50 +00:00
Sven Neumann 648cccde5e app/base/base.c app/base/temp-buf.c app/base/tile-swap.c
2005-02-07  Sven Neumann  <sven@gimp.org>

	* app/base/base.c
	* app/base/temp-buf.c
	* app/base/tile-swap.c
	* app/config/gimpconfig-file.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpdata.c
	* app/core/gimpenvirontable.c
	* app/core/gimpgradient-load.c
	* app/core/gimpgradient-save.c
	* app/core/gimppalette-import.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c
	* app/dialogs/user-install-dialog.c
	* app/gui/session.c
	* app/menus/menus.c
	* app/widgets/gimpdevices.c: use gstdio wrappers.
2005-02-07 01:24:22 +00:00
Michael Natterer 3eb69a85f0 tools/pdbgen/pdb/brush.pdb tools/pdbgen/pdb/gradient.pdb disallow the
2004-10-04  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb/brush.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/palette.pdb: disallow the empty string for
	new brushes, gradients and palettes and check the return value
	of gimp_data_factory_data_new(). Cleanup.

	* app/core/gimpbrushgenerated.c (gimp_brush_generated_new)
	* app/core/gimpgradient.c (gimp_gradient_new)
	* app/core/gimpdatafactory.c (gimp_data_factory_data_new): same
	here. Fixes bug #154264.

	* app/core/gimpdata.[ch] (gimp_data_set_filename): added boolean
	"deletable" parameter because it's not derivable from "writable".

	* app/core/gimpdatafactory.c (gimp_data_factory_load_data): need
	to figure "deletable" separately from "writable" to be able to
	delete unsavable stuff in the user-writable data directories.
	Fixes bug #154410.

	(gimp_data_factory_data_save_single): cleaned up.

	* app/pdb/brush_cmds.c
	* app/pdb/gradient_cmds.c
	* app/pdb/palette_cmds.c
	* libgimp/gimpbrush_pdb.c
	* libgimp/gimpgradient_pdb.c
	* libgimp/gimppalette_pdb.c: regenerated.
2004-10-04 09:39:27 +00:00
Michael Natterer c5e78fe18a added copyright header, added #defines for access(), F_OK, R_OK and X_OK.
2004-07-19  Michael Natterer  <mitch@gimp.org>

	* libgimpbase/gimpwin32-io.h: added copyright header, added
	#defines for access(), F_OK, R_OK and X_OK.

	* app/core/gimpdata.c: include the above instead of defining
	the workarounds here.

	* app/base/tile-swap.c
	* app/config/gimpconfig-dump.c
	* libgimpthumb/gimpthumb-utils.c
	* libgimpthumb/gimpthumbnail.c: for consistency, #include
	gimpwin32-io.h with "" instead of <>.
2004-07-19 13:22:44 +00:00
Sven Neumann 8c4b7b5aba app/display/gimpdisplayshell.c corrected API documentation, removed
2004-07-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c:
	* app/display/gimpcanvas.c:
	* app/display/gimpdisplayshell.c
	* app/display/gimpdisplayshell-transform.c: corrected API
	documentation, removed trailing whitespace.

	Please do always build the documentation if you add or change any
	gtk-doc comments.
2004-07-16 10:07:30 +00:00
William Skaggs aced3f7910 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/core/gimpdata.c: added gtk-doc comments for
	public functions.
2004-07-15 19:01:57 +00:00
Sven Neumann 6d25d84534 Removed the basename parameter and use the object name instead. Convert it
2004-07-05  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.[ch] (gimp_data_create_filename): Removed the
	basename parameter and use the object name instead. Convert it to
	the filesystem encoding.

	* app/core/gimpdatafactory.c: changed accordingly.
2004-07-05 18:10:05 +00:00
Michael Natterer b490b26283 added "gint freeze_count" and gimp_data_freeze()/thaw() functions. Emit
2004-06-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch]: added "gint freeze_count" and
	gimp_data_freeze()/thaw() functions. Emit "dirty" only if
	freeze_count either is 0 or drops to 0.

	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpgradient.[ch]: removed freeze/thaw stuff that
	was duplicated in these two subclasses and use the new
	GimpData API instead.

	* app/widgets/gimpbrusheditor.c
	* app/widgets/gimpgradienteditor.c: changed accordingly.
2004-06-12 22:13:31 +00:00
Michael Natterer 1c62ddef4d Long overdue core container cleanup:
2004-05-24  Michael Natterer  <mitch@gimp.org>

	Long overdue core container cleanup:

	* app/core/gimplist.[ch]: added "unique-names" and "sort-func"
	properties and merged the resp. code from GimpDataList into
	GimpList. Removed "policy" parameters from gimp_list_new() and
	added "unique_names". Added new constructor gimp_list_new_weak().
	Made public function gimp_list_uniquefy_name() private.

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpdatalist.[ch]: removed. Its functionality is
	entirely in GimpList now.

	* app/core/gimpdata.[ch]: added gimp_data_name_compare() which
	used to live in GimpDataList.

	* app/core/gimp.c
	* app/core/gimpdatafactory.c
	* app/core/gimpimage.c
	* app/core/gimptoolinfo.c
	* app/core/gimpundostack.c
	* app/paint/gimp-paint.c
	* app/tools/gimp-tools.c
	* app/widgets/gimpdevices.c
	* app/widgets/gimptemplateeditor.c
	* app/widgets/gimpundoeditor.c: changed list creation accordingly.

	Made gimp->templates, gimp->named_buffers, tool_info->presets and
	the image's lists of layers, channels and vectors automatically
	ensure unique names.

	* app/widgets/gimptemplateview.c
	* app/actions/file-commands.c
	* app/actions/templates-commands.c
	* app/actions/tool-options-commands.c: removed calls to
	gimp_list_uniquefy_name().

	* app/core/gimpitem.c: removed major insanity where the items
	themselves where ensuring their unique names. Bah!

	* app/core/gimplayer.c (gimp_layer_name_changed): chain up
	conditionally.

	* app/core/gimplayermask.c (gimp_layer_mask_name_changed): removed
	because there is no need any more to keep the parent
	implementation from being invoked.
2004-05-24 10:49:34 +00:00
Michael Natterer 0fa17c880c using FOO_GET_CLASS(instance) in a GInstanceInitFunc doesn't work because
2004-02-15  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.c (gimp_data_init): using
	FOO_GET_CLASS(instance) in a GInstanceInitFunc doesn't work
	because during instance init, the object's class is always set to
	be the class of the currently called init function. Use the second
	parameter of GInstanceInitFunc instead, which is the instance's
	real class. Fixes bug #134274.
2004-02-15 11:23:32 +00:00
Michael Natterer d991e64b38 Fixed GimpData's default "writable" and "deletable" behaviour:
2004-02-13  Michael Natterer  <mitch@gimp.org>

	Fixed GimpData's default "writable" and "deletable" behaviour:

	* app/core/gimpdata.c (gimp_data_init): default to writable and
	deletable == TRUE (something that has no filename was never loaded
	from disk and can't be undeletable or read-only).
	Fixes bug #134274.

	* app/core/gimpdata.[ch]: added new function
	gimp_data_make_internal() which frees the filename and sets the
	data's flags accordingly.

	* app/core/gimp-gradients.c (gimp_gradients_add_gradient)
	* app/core/gimpbrush.c (gimp_brush_get_standard)
	* app/core/gimpgradient.c (gimp_gradient_get_standard)
	* app/core/gimppalette.c (gimp_palette_get_standard)
	* app/core/gimppattern.c (gimp_pattern_get_standard): use the
	new function for internal data objects.

	* app/core/gimpdata.c (gimp_data_save, gimp_data_delete_from_disk)
	* app/core/gimpdatafactory.c (gimp_data_factory_save_single):
	bail out with g_return_if_fail() is the data is not writable
	or deletable.

	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdatafactoryview.c: changed accordingly.
2004-02-13 11:53:22 +00:00
Michael Natterer 195880cbdc Disallow editing of data objects which have no save functionality. Also
2004-02-05  Michael Natterer  <mitch@gimp.org>

	Disallow editing of data objects which have no save functionality.
	Also fixed the misassumption that "deletable" is always equal to
	"writable". Fixes bug #133456.

	* app/core/gimpdata.[ch]: added a "deletable" property which is
	always equal to "writable" except when the data class does not
	implement GimpData::save() (then deletable may be TRUE but
	writable is always FALSE).

	* app/gui/brushes-menu.c
	* app/gui/gradients-menu.c
	* app/gui/palettes-menu.c
	* app/gui/patterns-menu.c
	* app/widgets/gimpdatafactoryview.c: look at data->deletable when
	setting the sensitivity of the "Delete" buttons and menu items.

	* app/widgets/gimpdatafactoryview.c
	(gimp_data_factory_view_tree_name_edited): rename the data
	only if it's writable and restore the old name otherwise.

	* app/widgets/gimpdataeditor.c: no need to look at data->internal
	for figuring if the data is editable, data->editable is enough.

	All files above: s/writeable/writable/g

	* app/widgets/gimpbrusheditor.c (gimp_brush_editor_set_data):
	simplified.
2004-02-05 22:17:14 +00:00
Michael Natterer 44cac5ae91 GimpData code review:
2004-01-29  Michael Natterer  <mitch@gimp.org>

	GimpData code review:

	* app/core/gimpdata.c (gimp_data_init): default to
	writable = FALSE and dirty = TRUE.

	* app/core/gimpbrushgenerated.[ch]: added "const gchar *name" to
	gimp_brush_generated_new().

	* app/core/gimpbrush.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpgradient.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c: set all standard datas to clean and
	internal, check for g_path_is_absolute() in all load functions,
	pass the data's name as construct property to g_object_new()
	instead of calling gimp_object_set_name() after creation, fixed
	some UTF-8 handling, spacing, indentation, coding style, general
	cleanup.
2004-01-29 16:19:57 +00:00
Michael Natterer 894cf70dd5 Added infrastructure to make sure we don't write to the global brush,
2004-01-28  Michael Natterer  <mitch@gimp.org>

	Added infrastructure to make sure we don't write to the global
	brush, pattern etc. directories. Needed to make this configurable
	because we can't rely on the global directories being read-only,
	having certain names or being otherwise detectable at runtime in a
	sane way. Fixes bug #132214.

	* libgimpbase/gimpdatafiles.[ch]: added "const gchar *dirname" to
	the GimpDataFileData struct so callbacks don't need to call
	g_path_get_dirname() for each file.

	* libgimpwidgets/gimpfileentry.c: made it work with non UTF-8
	encoded filenames.

	* libgimpwidgets/gimppatheditor.[ch]: ditto. Added GUI and API for
	setting/getting a second "writable_path". The widget makes sure
	that the writable_path is always a subset of the path.

	* app/config/gimpconfig-utils.[ch]: added new function
	gimp_config_build_writable_path().

	* app/config/gimpcoreconfig.[ch]: added separate properties for
	the writable brush, pattern, gradient, palette and font paths.

	* app/config/gimprc-blurbs.h: added (still empty) blurbs for the
	new properties.

	* app/core/gimpdata.[ch] (gimp_data_set_filename): added parameter
	"gboolean writable". Set data->writable to FALSE by default. If
	"writable" is passed as TRUE, still check if we can write to the
	file before setting data->writable to TRUE.

	(gimp_data_create_filename): changed "data_path" parameter to
	"dest_dir" and assume dest_dir is writable.

	(gimp_data_duplicate): set data->dirty to TRUE to make sure
	duplicated things will be saved.

	* app/core/gimpbrush.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpgradient.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c: don't set the data's filename and don't
	touch data->dirty in the _load() functions because that's done by
	the data factory now. Don't touch data->dirty in the _duplicate()
	functions because that's done by gimp_data_duplicate() itself now.

	* app/core/gimpdatafactory.[ch] (gimp_data_factory_new): added
	"writable_property_name" and remember it.
	Added utility function gimp_data_factory_get_save_dir() which
	determines the directory to save new datas to.
	Added public function gimp_data_factory_data_save_single() which
	saves a single data object.
	Make sure new things get saved to the first writable directory
	as specified in preferences.

	* app/core/gimp.c (gimp_real_initialize): pass the writable_paths'
	property names to gimp_data_factory_new().

	* app/widgets/gimpdataeditor.c (gimp_data_editor_save_dirty): use
	gimp_data_factory_data_save_single() instead of implementing
	saving here.

	* app/widgets/gimppropwidgets.[ch] (gimp_prop_path_editor_new):
	added "const gchar *writable_property_name" parameter (can be
	NULL).

	Added the needed callbacks to handle the writable_path and made
	the path_editor and file_entry code aware of non UTF-8 filename
	encodings. Some general cleanup.

	* app/gui/preferences-dialog.c: changed accordingly.
2004-01-28 21:53:50 +00:00
Michael Natterer 57911bbcba app/app_procs.c app/errors.c app/main.c app/config/gimpconfigwriter.c
2004-01-23  Michael Natterer  <mitch@gimp.org>

	* app/app_procs.c
	* app/errors.c
	* app/main.c
	* app/config/gimpconfigwriter.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/gui/user-install-dialog.c
	* app/plug-in/plug-ins.c
	* app/vectors/gimpvectors-import.c: some more gimp_filename_to_utf8().

	* libgimp/gimp.c
	* libgimpmodule/gimpmodule.c
	* libgimpmodule/gimpmoduledb.c: use it here, too, now that is in
	libgimpbase.
2004-01-23 17:24:44 +00:00
Sven Neumann fd30d5c976 app/config/gimpbaseconfig.h use gint64 for all memsize properties.
2003-11-16  Sven Neumann  <sven@gimp.org>

	* app/config/gimpbaseconfig.h
	* app/config/gimpcoreconfig.h: use gint64 for all memsize properties.

	* app/base/tile-manager.[ch] (tile_manager_get_memsize): since
	tiles can be swapped out, a tilemanager can be larger than gsize
	(on 32bit platforms). Use a gint64 to avoid an overflow.

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-undo-push.c
	* app/core/gimpimage-undo.[ch]
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimpitemundo.[ch]
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimpobject.[ch]
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/text/gimptext.c
	* app/text/gimptextlayer.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c: use gint64 for gimp_object_get_memsize()
	and all its implementations.

	* app/display/gimpdisplayshell-title.c
	* app/gui/info-window.c: changed accordingly.
2003-11-16 17:51:36 +00:00
Michael Natterer 24f3da165b changed GimpObject::get_memsize() to return a second value named
2003-08-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpobject.[ch]: changed GimpObject::get_memsize() to
	return a second value named "gui_size", where the primary return
	value is the "constant" actual size (as long as no operation is
	performed on the object), and the second "gui_size" return value
	is the size of temporary stuff like preview caches or boundary
	segments (which may change asynchronously, even if the object is
	on the undo stack).

	* app/core/gimp.c
	* app/core/gimpbrush.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpbuffer.c
	* app/core/gimpchannel.c
	* app/core/gimpcontainer.c
	* app/core/gimpcontext.c
	* app/core/gimpdata.c
	* app/core/gimpdatafactory.c
	* app/core/gimpdrawable.c
	* app/core/gimpgradient.c
	* app/core/gimpimage-undo.c
	* app/core/gimpimage.c
	* app/core/gimpitem.c
	* app/core/gimplayer.c
	* app/core/gimplist.c
	* app/core/gimppalette.c
	* app/core/gimpparasitelist.c
	* app/core/gimppattern.c
	* app/core/gimpundo.c
	* app/core/gimpundostack.c
	* app/core/gimpviewable.c
	* app/text/gimptextlayer.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.c: changed get_memsize() implementations
	accordingly.

	* app/display/gimpdisplayshell-title.c
	* app/gui/debug-commands.c
	* app/widgets/gimppreview.c: changed callers accordingly.

	* app/core/gimpimage-undo-push.c: changed layer, channel, vectors
	and layer_mask undo steps to add/subtract the size of the
	resp. objects whenever they take/drop ownership of them. Ignore
	the objects' "gui_size" to get identical sizes on
	adding/subtracting. Fixes bug #120429.
2003-08-25 10:49:33 +00:00
Sven Neumann 28fddfd554 Makefile.am removed this header file.
2003-03-25  Sven Neumann  <sven@gimp.org>

	* Makefile.am
	* gimpintl.h: removed this header file.

	* gimpmiscui.c: include libgimp-intl.h.

	* gimp.c (gimp_main): call setlocale() and bind to the libgimp
	textdomain so that plug-ins don't need to do that explicitely.

	* libgimp/stdplugins-intl.h: added the functionality that used to
	live in gimpintl.h and removed the libgimp related stuff. Got rid
	of the INIT_I18N_UI() macro.

	* plug-ins/*/*.c: removed all occurances of INIT_I18N_UI().
	Plug-ins simply call INIT_I18N() once in their run() function.

	* plug-ins/script-fu/script-fu-intl.h: added the functionality
	that used to live in gimpintl.h and removed the libgimp related
	stuff.

	* app/Makefile.am
	* app/gimp-intl.h: new file that defines the gettext macros for
	the GIMP core.

	* app/*/*.c: include gimp-intl.h instead of libgimp/gimpintl.h.

	* plug-ins/script-fu/scripts/test-sphere.scm: fixed typos.
2003-03-25 16:38:19 +00:00
Hans Breuer 594bccd558 app/text/makefile.msc (new file) */makefile.msc */*/makefile.msc : updated
2003-03-03  Hans Breuer  <hans@breuer.org>

	* app/text/makefile.msc (new file)
	  */makefile.msc */*/makefile.msc : updated

	* app/core/gimpdata.c : define access() constants
	for G_OS_WIN32 case

	* app/text/gimptext.c : <stdlib.h> for getenv()

	* libgimp/gimp.def libgimp/gimpui.def : updated externals

	* libgimpwidgets/libgimp-glue.c : make dynamic_resolve
	actually work again for 'my' DLL naming convention

	* plug-ins/gap/gap_pdb_calls.c : reflect renaming
	of GIMP_VERTICAL to GIMP_ORIENTATION_VERTICAL
2003-03-03 18:14:31 +00:00
Sven Neumann 0ceeeb0254 added a writeable field to GimpData and set it from
2003-02-26  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.[ch]: added a writeable field to GimpData and
	set it from gimp_data_set_filename().

	* app/gui/brushes-menu.c
	* app/gui/gradients-menu.c
	* app/gui/palettes-menu.c
	* app/gui/patterns-menu.c
	* app/widgets/gimpbrushfactoryview.c
	* app/widgets/gimpdatafactoryview.c
	* app/widgets/gimpgradienteditor.c: look at data->writeable when
	setting widgets sensitivity.

	* app/gui/user-install-dialog.c (user_install_dialog_create): reduce
	some of the dialog clutter by not showing the directories created for
	plug-ins.

	* app/core/gimpviewable.[ch]: added a default_stock_id to
	GimpViewableClass so we don't need to hold a copy in each instance.
	Added accessor functions to set and get the stock_id.

	* app/core/gimptoolinfo.c
	* app/gui/dialogs-constructors.c
	* app/gui/image-menu.c
	* app/tools/gimpcroptool.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimptransformtool.c
	* app/widgets/gimpcellrendererviewable.c
	* app/widgets/gimppreview.c
	* app/widgets/gimptoolbox.c: use gimp_viewable_get_stock_id().

	* app/text/gimptextlayer.c: set a text icon as default stock_id.
2003-02-26 18:08:26 +00:00
Manish Singh 1a44f2126c cleanup, removed unecessary G_OBJECT() casts. Should do the same for
2003-01-05  Manish Singh  <yosh@gimp.org>

        * many files in app, modules and libgimp*: cleanup, removed unecessary
        G_OBJECT() casts. Should do the same for plug-ins, when more of them
        get undeprecated.
2003-01-05 22:07:10 +00:00
Sven Neumann cdeba56bbf don't check filename for internal GimpData objects because they are never
2002-12-02  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdata.c (gimp_data_save): don't check filename for
	internal GimpData objects because they are never saved.

	* app/config/gimprc.c: made verbose an object property so that its
	value is copied by gimp_config_duplicate().
2002-12-02 22:41:44 +00:00
Michael Natterer 4ccd0f0ae3 use GError for reporting load/save errors. Added gimp_data_error_quark()
2002-12-02  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch]: use GError for reporting load/save
	errors. Added gimp_data_error_quark() and a GimpDataError enum.
	Made simple virtual functions out of save(), get_extension()
	and duplicate() because they don't need to be signals.

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpbrushpipe.[ch]
	* app/core/gimpgradient.[ch]
	* app/core/gimppalette.[ch]
	* app/core/gimppattern.[ch]: changed accordingly. Set data->dirty
	to FALSE in each _load() function.

	* app/core/gimpdatafactory.[ch]: report GError messages here.
	Changed the ugly factory->path pointer location hack to
	factory->path_property_name and get the path from
	factory->gimp->config. Added gimp_data_factory_data_duplicate()
	implementation which was already declared in the header.

	* app/core/gimp.c: pass the path property name to
	gimp_data_factory_new().

	* app/widgets/gimpdatafactoryview.c: removed the duplicate
	implementation and call gimp_data_factory_data_duplicate().

	* app/core/gimpgradient.[ch]: added gimp_gradient_save_as_pov().

	* app/gui/gradients-commands.c: removed save_as_pov implementation
	and call gimp_gradient_save_as_pov().
2002-12-02 13:39:09 +00:00
Michael Natterer 5c86e63983 removed the global "base_config" variable.
2002-11-30  Michael Natterer  <mitch@gimp.org>

	* app/base/base-types.h: removed the global "base_config" variable.

	* app/base/base.[ch]: added "gboolean use_mmx" to base_init().
	Don't #include "appenv.h". Pass around more parameters to reduce
	the usage of the global "paint_options" pointer.

	* app/app_procs.c: pass "use_mmx" to base_init().

	* app/base/temp-buf.c: pass "temp_path" around internally. Declare
	"base_config" extern and added a #warning.

	* app/core/gimpdata.[ch]
	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.[ch]
	* app/core/gimpbrushpipe.[ch]
	* app/core/gimpgradient.[ch]
	* app/core/gimppalette.[ch]
	* app/core/gimppattern.[ch]: added "gboolean stingy_memory_use"
	parameters to all _new(), _load() and _duplicate() functions.

	* app/core/gimpmarshal.list: GimpData::duplicate needs an
	OBJECT__BOOLEAN marshaller now.

	* app/core/gimpdatafactory.[ch]: added a "Gimp" pointer so the
	factory can find the config. Pass base_config->stingy_memory_use
	to the GimpData functions changed above.

	* app/core/gimp-gradients.c
	* app/core/gimp.c
	* app/core/gimppalette-import.c
	* app/gui/palettes-commands.c
	* app/widgets/gimpdatafactoryview.c: changed accordingly.

	* app/core/gimpcontext.c: get "stingy_memory_use" from
	context->gimp->config.
2002-11-30 16:31:39 +00:00
Michael Natterer 65d5e587e9 don't g_message() on error but return a GError.
2002-10-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch] (gimp_data_delete_from_disk): don't
	g_message() on error but return a GError.

	* app/widgets/gimpdatafactoryview.c: show the message here.
2002-10-30 18:46:29 +00:00
Michael Natterer 91cfa78384 added a boolean "internal" which indicates that the data object is an
2002-06-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdata.[ch]: added a boolean "internal" which
	indicates that the data object is an automatically created
	internal object. Changed the code to refuse saving to deleting
	internal objects.

	* app/core/Makefile.am
	* app/core/gimp-gradients.[ch]: new files implementing internal
	gradients (FG -> BG in RGB and HSV and FG -> transparent).

	* app/core/gimp.c: call gimp_gradients_init().

	* app/core/gimpdatafactory.c (gimp_data_factory_data_free): don't
	free internal objects so they stay there on "Refresh".

	* app/core/gimpdatalist.c: sort internal objects to the beginning
	of the list.

	* app/widgets/gimpdataeditor.c: refuse to change the name of
	internal objects.

	* app/widgets/gimpdatafactoryview.c: set the "Delete" button
	insensitive for internal objects.

	* app/widgets/gimpgradienteditor.c: refuse to edit internal
	gradients, just display them so color picking works.

	* app/gui/brushes-commands.c
	* app/gui/gradients-commands.c
	* app/gui/palettes-commands.c
	* app/gui/patterns-commands.c: set the "Delete" menu item
	insensitive for internal objects.

	* app/gui/gui.c: need to call render_setup() earlier because of
	you-dont-want-to-know-why. Will change it back once the previews
	have their own render buffers.

	* app/tools/gimpblendtool.c: Replaced the "Type" menu by a preview
	showing the active gradient. Clicking the preview pops up the
	gradient selection. Renamed the "Gradient" menu to "Shape". Removed
	"blend_mode" from the BlendOptions struct because we always use
	"custom" mode now.
2002-06-12 13:48:47 +00:00
Sven Neumann bda6939cd0 app/batch.c app/general.c app/core/gimpbrushgenerated.c
2002-02-10  Sven Neumann  <sven@gimp.org>

	* app/batch.c
	* app/general.c
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrushpipe.c
	* app/core/gimpdata.c
	* app/file/file-open.c
	* app/file/file-save.c
	* app/file/file-utils.c: don't include ctype.h, use g_ascii_*
	functions from GLib instead.

	* app/gui/file-open-dialog.c: disabled multiple selection in the
	file open dialog until this is fixed in GTK+.
2002-02-10 19:51:20 +00:00