Commit Graph

51 Commits

Author SHA1 Message Date
Jehan 49e534247a app, libgimp*, pdb, plug-ins: use g_memdup2() instead of g_memdup()
Since it appeared with GLib 2.68.0, we could not change this until we
bumped the dependency which has only become possible a few days ago
(since Debian testing is our baseline for dependency bumps). Cf.
previous commit.

As this is a drop-in replacement (just a guint parameter changed to
gsize to avoid integer overflow), search-and-replace with:

> sed -i 's/g_memdup\>/g_memdup2/g' `grep -rIl 'g_memdup\>' *`

… followed by a few manual alignment tweaks when necessary.

This gets rid of the many deprecation warnings which we had lately when
building with a recent GLib version.
2021-08-26 17:32:09 +02:00
Jehan 269343832a libgimp: fix (destroy) and (closure) annotations.
This fixes the following warning (and 4 similar others):
> libgimp/gimpimagecombobox.c:133: Warning: GimpUi: "destroy" annotation needs one option, none given

Brought by commit df766d5443. It's my fault for not properly reviewing
the patch as I failed to notice the new warnings.
2021-03-20 16:43:09 +01:00
Lloyd Konneker df766d5443 Fix annotations allowing null "constraint" and "data" args, #6526 2021-03-05 19:10:10 +00:00
Niels De Graef 83d6764e0e gir: Add (closure) tags 2020-05-04 21:31:30 +02:00
Michael Natterer 9e771d8cd5 libgimp: remove more deprecated API 2019-09-03 11:10:43 +02:00
Michael Natterer a66945342d libgimp: remove some old API that is no longer needed 2019-08-30 18:58:16 +02:00
Michael Natterer 02e27bdbc3 libgimp: fix gimp_item_combo_box_changed()
only checking positive IDs for validity had a purpose, put it back.
2019-08-30 17:58:18 +02:00
Michael Natterer 96c1f754ba libgimp: remove a ton of deprecated API that is unused 2019-08-27 16:32:25 +02:00
Jehan e1e048a823 Issue #3852: Error compilation gimpimagecombobox MSYS2.
Seems underscored APIs are not visible on Win32. Anyway even if we fixed
this, this would only be temporary as all these deprecated APIs are only
meant to stay around temporarily, then be actually unavailable.

I hesitated to actually undeprecate the `_gimp_*_is_valid()` (like
making a `gimp_image_is_valid_id()` API for instance) but this is
actually quite similar to just create the GimpImage: if
gimp_image_get_by_id() returns NULL, then the ID was not valid.
2019-08-27 15:24:33 +02:00
Michael Natterer 0b3e02be10 libgimp: again, redo all APIs returning list of images, items, children
We now have both variants, one returning a GList, and another
returning an array. Turns out that while a list is often nicer,
sometimes a random-access array really keeps the code much simpler.

Adapt all plug-ins, and clean up a bit (like use g_list_reverse() once
instead of iterating the list reversed).
2019-08-27 13:26:27 +02:00
Jehan 08849a584c libgimp: GimpItem now also belong to libgimp. 2019-08-22 15:54:36 +02:00
Jehan cfd30ec62a libgimp: s/gimp_image_new_by_id()/gimp_image_get_by_id()/
This means that images' ownership is not given to caller in particular.
libgimp will now keep a reference of all GimpImage-s it creates and
return this same reference if called again. It also means that you can
now compare images by pointer comparison (as 2 GimpImage objects
representing the same image ID will be equal).
Obviously as a side effect, gimp_image_list() is changed to (transfer
container) as you must only free the container now, not the elements.
Also various other functions creating new images are now (transfer none)
too.

Long-time plug-ins will have to be taken in consideration in a further
step (we currently never free GimpImage for destroyed images in
particular).
2019-08-22 15:54:36 +02:00
Jehan 75f8a3804d libgimp: nicer API for functions returning a list.
I.e.: gimp_image_get_(layers|channels|vectors)(), gimp_image_list() and
gimp_item_get_children().
Instead of returning an array of IDs, these will now return a GList with
the right objects ready to use.
2019-08-22 15:54:36 +02:00
Jehan 3f1491e572 libgimp: update non-generated API using GimpItem/GimpDrawable/GimpLayer.
I did the same trick with GIMP_DEPRECATED_REPLACE_NEW_API macro, apart
for some minor widget API to preview drawable, which I will fix right
away in our plug-ins.
2019-08-22 15:54:36 +02:00
Jehan 09f0530dab libgimp: update non-generated API to allow old and new API.
Same as previous commit: by default the new API will be used. But if a
plug-in builds with GIMP_DEPRECATED_REPLACE_NEW_API macro, then the same
function names will call the old API with ids.
2019-08-22 15:54:36 +02:00
Jehan 688c3230d0 libgimp: create and use gimp_image_new_by_id().
Simpler than using g_object_new() in a bunch of places.
2019-08-22 15:54:36 +02:00
Jehan bb72504ea9 libgimp: change all non-generated API to use GimpImage.
We shouldn't pass as parameter nor return gint32 anymore.
2019-08-22 15:54:36 +02:00
Michael Natterer 6b2624f021 libgimp: don't connect a NULL destroy notify 2019-08-07 23:45:25 +02:00
Michael Natterer c6bcb3114f libgimp: add GDestroyNotify for image and item combo box data 2019-08-07 23:16:25 +02:00
Niels De Graef 1dda60154c Use "Returns:" to annotate return values
To be able to annotate return values through GObject-introspection, you
need to make sure it is tagged with `Returns:` and not something else.
2019-08-03 07:53:47 +00:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
Massimo Valentini 90273fb57b Bug 749406 - Displace segfaults on launch 2015-06-21 18:10:22 +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 ec9879ea6e libgimp: also include <gegl.h> when we include "libgimpwidgets/gimpwidgets.h" 2013-11-01 22:29:46 +01:00
Michael Natterer c91fbd54ad Bug 693797 - Sample colorize fails when you choose current gradient as target
Fix my last commit and don't delete items in the foreach() callback,
because it's impossible to delete items in foreach(). Instead, collect
them in a list and remove them after foreach().
2013-02-17 01:45:20 +01:00
Michael Natterer 73cb32c36e Bug 693797 - Sample colorize fails when you choose current gradient as target
Based on a patch from Hartmut Kuhse, make sure we don't remove
custom-added items from GimpItemComboBoxes when repopulating it.
2013-02-15 18:52:02 +01:00
Michael Natterer d6cf29e8c4 Bug 685797 - all python plug-ins are broken after 3b55877a
Remove the privately added GimpItemComboBox class instead, it confuses
the hell out of python. Instead, use g_object_set,get_data() to manage
the newly needed members, and code duplication.
2012-10-10 23:10:56 +02:00
Michael Natterer 4aaaa1a7fa Bug 378334 - Plugins with image drop-list crash when image is closed
Let image and item combo boxes connect to their own "changed" signal
first, and if the chosen image/item doesn't exist any longer,
reinitialize the combo box and select the first item instead.

Also fixes the type macros in gimpitemcombobox.h which were lacking a
')' and introduces an internal GimpItemComboBox class to hold the
common functionality.
2012-10-08 22:01:30 +02:00
Michael Natterer b955205676 Bug 678452 - Libgimp drawable combo boxes are not aware of layer groups
Add all a tree's items to the combo boxes. Try to visualize the tree
structure by prepending '-'s, but that could probably need some
suggestions for improvement.
2012-09-03 02:21:28 +02:00
Michael Natterer 056a3bf256 libgimp: use gimp_item_get_name() instead of deprecated API 2010-07-09 11:22:18 +02:00
Michael Natterer c78e4c8d63 libgimp: move docs from template files to inline comments
Also split up the "tools" docs into separate files so it matches
the new autogenerated PDB section headers.
2010-07-07 11:48:10 +02:00
Michael Natterer 8becbc6568 libgimp/gimpbrushselectbutton.c libgimp/gimpexport.c
2009-03-22  Michael Natterer  <mitch@gimp.org>

	* libgimp/gimpbrushselectbutton.c
	* libgimp/gimpexport.c
	* libgimp/gimpfontselectbutton.c
	* libgimp/gimpgradientselectbutton.c
	* libgimp/gimpimagecombobox.c
	* libgimp/gimpitemcombobox.c
	* libgimp/gimppaletteselectbutton.c
	* libgimp/gimppatternselectbutton.c
	* libgimp/gimpprogressbar.c
	* libgimp/gimpui.c
	* libgimp/gimpzoompreview.c
	* tools/test-clipboard.c: use accessors for various members of
	GTK+ structures that don't exist any longer when GSEAL_ENABLE is
	defined.


svn path=/trunk/; revision=28191
2009-03-22 15:49:13 +00:00
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
Sven Neumann 2750e8d67f fixed comments.
2008-06-03  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpitemcombobox.c: fixed comments.

svn path=/trunk/; revision=25885
2008-06-03 13:46:50 +00:00
Sven Neumann fb095cf281 don't redefine the GimpParasite struct, just use it.
2007-04-12  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimpprotocol.[ch] (struct _GPParam): don't redefine
	the GimpParasite struct, just use it.

	* libgimp/gimp.c: include gimpparasite.h.

	* libgimp/gimpitemcombobox.c (gimp_item_combo_box_new): initialize
	combo_box_type to suppress a compiler warning.

	* libgimpwidgets/gimpmemsizeentry.c (gimp_memsize_entry_new):
	avoid dereferencing a type-punned pointer.


svn path=/trunk/; revision=22237
2007-04-12 14:32:44 +00:00
Simon Budig fd0e9de40f removed...
2006-11-16  Simon Budig  <simon@gimp.org>

	* libgimp/gimpdrawablecombobox.[ch]: removed...

	* libgimp/gimpitemcombobox.[ch]: and added here. Factored out
	a lot of common code and added a combo box for vectors objects.

	* libgimp/Makefile.am
	* libgimp/gimpui.h
	* libgimp/gimpuitypes.h: changed accordingly.
2006-11-15 23:20:06 +00:00
Sven Neumann 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Sven Neumann f2df31a50e converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* libgimp*/gimp*.[ch]: converted tabs to spaces.
2006-04-12 10:53:28 +00:00
Sven Neumann 990ee2074a libgimp/gimpbrushmenu.c libgimp/gimpdrawablecombobox.c
2005-08-03  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpbrushmenu.c
	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpfontselectbutton.c
	* libgimp/gimpgradientmenu.c
	* libgimp/gimpimagecombobox.c
	* libgimp/gimppalettemenu.c
	* libgimp/gimppatternmenu.c: fixed signedness warnings.
2005-08-02 22:15:33 +00:00
Michael Natterer c1c876a963 Some DND fixes / cleanup:
2005-07-25  Michael Natterer  <mitch@gimp.org>

	Some DND fixes / cleanup:

	* app/widgets/widgets-enums.h: renamed GIMP_DND_TYPE_TOOL to
	GIMP_DND_TYPE_TOOL_INFO.

	* app/widgets/gimpselectiondata.[ch]: s/tool/tool_info/g. Moved
	private functions to the end of the file. Include GIMP's PID in
	all GtkSelectionData strings which are used to pass around stuff
	by reference. For things which are referenced by name, also encode
	the object's address in the GtkSelectionData so having a brush
	called "Standard" or a named buffer called "Global Buffer" will
	work together with DND.

	* app/widgets/gimpdnd.[ch]: s/tool/tool_info/g. Renamed
	gimp_dnd_get_data_data() to gimp_dnd_get_object_data() since it's
	not limited to GimpData objects. Follow above selection data API
	changes. Cleanup.

	* libgimp/gimpbrushmenu.c
	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpfontselectbutton.c
	* libgimp/gimpgradientmenu.c
	* libgimp/gimpimagecombobox.c
	* libgimp/gimppalettemenu.c
	* libgimp/gimppatternmenu.c: follow GtkSelectionData format change
	and check the dropped things' PID against the return value of
	gimp_getpid().
2005-07-25 13:53:00 +00:00
Manish Singh 703125db20 create the layer combo with the right type.
2005-06-03  Manish Singh  <yosh@gimp.org>

        * libgimp/gimpdrawablecombobox.c: create the layer combo with the
        right type.
2005-06-04 01:44:52 +00:00
Manish Singh 24b3e080f6 whitespace fix.
2005-06-03  Manish Singh  <yosh@gimp.org>

        * libgimpcolor/gimprgb.h: whitespace fix.

        * libgimpwidgets/gimpchainbutton.h
        * libgimpwidgets/gimpwidgetsenums.[ch]: move GimpChainPosition
        to a registered enum, and register GimpSizeEntryUpdatePolicy as
        as well.

        * libgimp/gimpuitypes.h
        * libgimp/gimpdrawablecombobox.[ch]: turn these into GObjects
        with their own types.

        * libgimp/gimpimagecombobox.c: use G_DEFINE_TYPE.
2005-06-03 23:38:45 +00:00
Sven Neumann bf8759df06 libgimp/gimpdrawablecombobox.c accept DND of image / drawable IDs.
2005-03-26  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpimagecombobox.c: accept DND of image / drawable IDs.
2005-03-26 14:05:03 +00:00
Sven Neumann fd308340d4 libgimp/gimpdrawablecombobox.c set a width request on the combo boxes.
2005-03-03  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpimagecombobox.c: set a width request on the combo boxes.

	* plug-ins/common/bumpmap.c (SCALE_WIDTH): set a minimum width on
	the scales.
2005-03-03 00:06:28 +00:00
Sven Neumann de69e05da3 added an "ellipsize" construct property and changed the default behaviour
2005-02-27  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpintcombobox.c: added an "ellipsize" construct
	property and changed the default behaviour back to not doing
	ellipsation on the text.

	* libgimp/gimpimagecombobox.c
	* libgimp/gimpdrawablecombobox.c: set "ellipsize" to middle for
	drawable and image combo boxes.
2005-02-27 19:41:42 +00:00
Sven Neumann d9363898a1 fixed gtk-doc comment.
2004-12-13  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpdrawablecombobox.c: fixed gtk-doc comment.
2004-12-13 12:38:26 +00:00
Sven Neumann 449b0f1ff2 libgimp/gimpdrawablecombobox.c changed the API docs to suggest to use
2004-10-28  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpimagecombobox.c: changed the API docs to suggest to
	use gimp_int_combo_box_connect() with these widgets. We don't want
	more people to be caught by bug #156659.
2004-10-28 20:58:16 +00:00
Sven Neumann 52a42769e2 automatically add an "(Empty)" item if the store is empty and remove it as
2004-04-22  Sven Neumann  <sven@gimp.org>

	* libgimpwidgets/gimpintstore.[ch]: automatically add an "(Empty)"
	item if the store is empty and remove it as soon as other items
	are being added.

	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpimagecombobox.c: removed handling of the empty list;
	the store does this for us now.
2004-04-22 15:25:01 +00:00
Sven Neumann 36dc39becb libgimp/gimpdrawablecombobox.c libgimp/gimpimagecombobox.c changed the
2004-04-21  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpimagecombobox.c
	* libgimp/gimpmenu.c: changed the label for the empty menu from
	"None" to "Empty" since that's what GTK+ uses.

	* libgimpwidgets/gimpintcombobox.[ch]: added convenience function
	gimp_int_combo_box_connect().

	* plug-ins/common/bumpmap.c
	* plug-ins/common/compose.c
	* plug-ins/common/depthmerge.c
	* plug-ins/common/displace.c
	* plug-ins/common/lic.c
	* plug-ins/common/warp.c: ported to GimpDrawableComboBox.

	* plug-ins/Lighting/lighting_ui.c
	* plug-ins/MapObject/mapobject_ui.c
	* plug-ins/common/sample_colorize.c: use
	gimp_int_combo_box_connect(). This restores the correct behaviour
	of setting the drawable_ID to the first drawable from the list if
	it's invalid.
2004-04-21 16:50:13 +00:00
Sven Neumann c15dc68d2a libgimp/gimpdrawablecombobox.c libgimp/gimpimagecombobox.c
2004-04-21  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpdrawablecombobox.c
	* libgimp/gimpimagecombobox.c
	* libgimp/gimppixbuf.c
	* libgimpwidgets/gimpintcombobox.c
	* libgimpwidgets/gimpintstore.c: API documentation.
2004-04-21 11:51:21 +00:00