Gimp/app/actions
Jehan d493f0537f Issue #8900 and #9923: reimplementing GimpUnit as a proper class.
This fixes all our GObject Introspection issues with GimpUnit which was
both an enum and an int-derived type of user-defined units *completing*
the enum values. GIR clearly didn't like this!

Now GimpUnit is a proper class and units are unique objects, allowing to
compare them with an identity test (i.e. `unit == gimp_unit_pixel ()`
tells us if unit is the pixel unit or not), which makes it easy to use,
just like with int, yet adding also methods, making for nicer
introspected API.

As an aside, this also fixes #10738, by having all the built-in units
retrievable even if libgimpbase had not been properly initialized with
gimp_base_init().
I haven't checked in details how GIR works to introspect, but it looks
like it loads the library to inspect and runs functions, hence
triggering some CRITICALS because virtual methods (supposed to be
initialized with gimp_base_init() run by libgimp) are not set. This new
code won't trigger any critical because the vtable method are now not
necessary, at least for all built-in units.

Note that GimpUnit is still in libgimpbase. It could have been moved to
libgimp in order to avoid any virtual method table (since we need to
keep core and libgimp side's units in sync, PDB is required), but too
many libgimpwidgets widgets were already using GimpUnit. And technically
most of GimpUnit logic doesn't require PDB (only the creation/sync
part). This is one of the reasons why user-created GimpUnit list is
handled and stored differently from other types of objects.

Globally this simplifies the code a lot too and we don't need separate
implementations of various utils for core and libgimp, which means less
prone to errors.
2024-08-02 10:46:38 +02:00
..
actions-types.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
actions.c app: fix action_data_get_image() to return NULL more often 2023-05-26 15:25:15 +02:00
actions.h actions: Rename return_if_no_vectors_list macro... 2024-07-17 23:25:48 +00:00
brush-editor-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
brush-editor-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
brushes-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
brushes-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
buffers-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
buffers-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
buffers-commands.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
buffers-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
channels-actions.c actions: move top and bottom item check code 2024-07-18 17:57:17 +00:00
channels-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
channels-commands.c Issue #11809: Fix raise and lower actions for channels and paths 2024-07-16 15:21:44 +00:00
channels-commands.h app: get rid of all "*-linked" actions. 2021-12-23 13:39:43 +01:00
colormap-actions.c app: work with a GimpPalette rather than a colormap. 2024-02-11 23:28:03 +01:00
colormap-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
colormap-commands.c app: work with a GimpPalette rather than a colormap. 2024-02-11 23:28:03 +01:00
colormap-commands.h app, menus: Colormap dockable now shows a delete button. 2023-10-09 15:28:20 +02:00
context-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
context-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
context-commands.c core, widgets: Convert HSV/A to float 2024-04-21 03:42:27 +00:00
context-commands.h app: new "context-dynamics-toggle" action. 2022-02-04 15:12:00 +01:00
cursor-info-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
cursor-info-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
cursor-info-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
cursor-info-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
dashboard-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
dashboard-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
dashboard-commands.c app: allow recording GLIB log messages in performance logs 2020-08-02 11:02:00 +03:00
dashboard-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
data-commands.c actions: Prevent crash due to non-existent editors 2024-04-22 01:24:36 +00:00
data-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
data-editor-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
data-editor-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
debug-actions.c app: make debug menu translatable 2023-07-10 14:58:49 +00:00
debug-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
debug-commands.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
debug-commands.h app, menus: big cleanup of most of GtkUIManager API. 2023-04-12 22:07:09 +02:00
dialogs-actions.c actions, plug-ins: Minor clean-up and warning fix 2024-05-28 16:16:29 +00:00
dialogs-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
dialogs-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
dialogs-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
dock-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
dock-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
dock-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
dock-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
dockable-actions.c actions: Hide Preview Size dockable option if not needed 2024-04-13 01:43:31 +00:00
dockable-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
dockable-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
dockable-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
documents-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
documents-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
documents-commands.c actions: Fix "Raise or Open" to actually raise 2023-06-21 20:10:12 +00:00
documents-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
drawable-actions.c Issue #10588: enumerations for RotationType can't be used in Python 2024-01-05 13:28:49 -05:00
drawable-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
drawable-commands.c app: get rid of return_if_no_drawable() macro and… 2022-11-09 01:24:34 +01:00
drawable-commands.h app: get rid of all "*-linked" actions. 2021-12-23 13:39:43 +01:00
dynamics-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
dynamics-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
dynamics-editor-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
dynamics-editor-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
edit-actions.c app, libgimp*, plug-ins: GimpColorButton now space-invaded. 2024-02-11 23:28:03 +01:00
edit-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
edit-commands.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
edit-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
error-console-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
error-console-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
error-console-commands.c Issue #11071: Changed detailed_signal from "map" to "realize" to enable opening animations 2024-04-11 14:59:15 +00:00
error-console-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
file-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
file-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
file-commands.c app, libgimp, plug-ins: improve GimpVectorLoadProcedure workflow. 2024-06-08 18:58:06 +02:00
file-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
filters-actions.c tools: Add NDE support for group layers 2024-03-06 22:04:28 +00:00
filters-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
filters-commands.c core: Initial non-destructive editing implementation 2024-01-23 15:39:09 +00:00
filters-commands.h core: Initial non-destructive editing implementation 2024-01-23 15:39:09 +00:00
fonts-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
fonts-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimpgeglprocedure.c actions: Load opacity/mode/region properties in NDE 2024-02-15 05:31:36 +00:00
gimpgeglprocedure.h core: Initial non-destructive editing implementation 2024-01-23 15:39:09 +00:00
gradient-editor-actions.c app: GimpGradient now uses GeglColor. 2024-02-11 23:28:03 +01:00
gradient-editor-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gradient-editor-commands.c app: GimpGradient now uses GeglColor. 2024-02-11 23:28:03 +01:00
gradient-editor-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
gradients-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
gradients-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gradients-commands.c Issue #11071: Changed detailed_signal from "map" to "realize" to enable opening animations 2024-04-11 14:59:15 +00:00
gradients-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
help-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
help-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
help-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
help-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
image-actions.c Issue #10588: enumerations for RotationType can't be used in Python 2024-01-05 13:28:49 -05:00
image-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
image-commands.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
image-commands.h core: Add softproof profile to GimpImage 2022-07-02 15:26:19 +02:00
images-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
images-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
images-commands.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
images-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
items-actions.c widgets: Port gimp_get_color_tag_color ()... 2024-04-02 04:00:50 +00:00
items-actions.h app: implement multi-selection code for channels and vectors. 2020-05-17 18:32:15 +02:00
items-commands.c app: fix non-properly matching gimp_image_undo_group_start/end() calls. 2023-04-12 22:07:07 +02:00
items-commands.h app: make Stroke Paths actions multi-paths aware. 2023-01-11 01:56:29 +01:00
layers-actions.c actions: move top and bottom item check code 2024-07-18 17:57:17 +00:00
layers-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
layers-commands.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
layers-commands.h app: get rid of all "*-linked" actions. 2021-12-23 13:39:43 +01:00
meson.build app: Add basic infratructure for a vector tool popup menu. 2020-05-25 22:13:45 +02:00
mypaint-brushes-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
mypaint-brushes-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
palette-editor-actions.c app, libgimp*, plug-ins: GimpColorButton now space-invaded. 2024-02-11 23:28:03 +01:00
palette-editor-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
palette-editor-commands.c app, libgimp, pdb, plug-ins: GimpPalette are now GeglColor based. 2024-02-11 23:28:03 +01:00
palette-editor-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
palettes-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
palettes-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
palettes-commands.c app, libgimp, pdb, plug-ins: GimpPalette are now GeglColor based. 2024-02-11 23:28:03 +01:00
palettes-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
patterns-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
patterns-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
plug-in-actions.c app: fix crash when setting an action insensitive without setting reason. 2024-01-30 21:31:04 +01:00
plug-in-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
plug-in-commands.c Revert "app: add a "Filters > Generic > GEGL Operations" submenu with generated actions." 2023-05-25 02:31:28 +02:00
plug-in-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
procedure-commands.c app: get rid of one more usage of get_active_item() abstract method. 2022-10-12 22:38:35 +02:00
procedure-commands.h app: get rid of one more usage of get_active_item() abstract method. 2022-10-12 22:38:35 +02:00
quick-mask-actions.c app, libgimp*, plug-ins: GimpColorButton now space-invaded. 2024-02-11 23:28:03 +01:00
quick-mask-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
quick-mask-commands.c app, libgimp, pdb, plug-ins: move more code to GeglColor. 2024-02-11 23:28:02 +01:00
quick-mask-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
sample-points-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
sample-points-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
sample-points-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
sample-points-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
select-actions.c Issue #10153: introducing new floating data actions. 2023-11-11 16:40:44 +01:00
select-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
select-commands.c Issue #8900 and #9923: reimplementing GimpUnit as a proper class. 2024-08-02 10:46:38 +02:00
select-commands.h Issue #10153: introducing new floating data actions. 2023-11-11 16:40:44 +01:00
templates-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
templates-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
templates-commands.c icons: Restore GIMP icons replaced by GTK defaults 2023-04-30 13:58:39 +00:00
templates-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
text-editor-actions.c actions: Swapped text actions 2024-07-11 01:17:49 +00:00
text-editor-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
text-editor-commands.c app: big porting of weak pointers to g_set,clear_weak_pointer() 2023-05-22 18:16:09 +02:00
text-editor-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
text-tool-actions.c actions: Swapped text actions 2024-07-11 01:17:49 +00:00
text-tool-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
text-tool-commands.c Fixed text along path error message 2022-04-15 17:25:20 +02:00
text-tool-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tool-options-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
tool-options-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
tool-options-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tool-options-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tool-preset-editor-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
tool-preset-editor-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
tool-preset-editor-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tool-preset-editor-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tool-presets-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
tool-presets-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
tool-presets-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tool-presets-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
tools-actions.c Add terminating NULLs to the tools accelerator arrays 2023-07-20 22:59:51 +01:00
tools-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
tools-commands.c Fix Tools Shortcuts 2023-07-25 21:33:28 +00:00
tools-commands.h tools: auto-activate transform tools on canvas 2022-11-13 17:52:25 +00:00
vector-toolpath-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
vector-toolpath-actions.h app: Add basic infratructure for a vector tool popup menu. 2020-05-25 22:13:45 +02:00
vector-toolpath-commands.c po: add vector-toolpath-actions.c to POTFILES.in 2020-06-04 01:34:34 +03:00
vector-toolpath-commands.h app: implement a few more functions for the ToolPath context menu. 2020-05-25 22:13:45 +02:00
vectors-actions.c actions: move top and bottom item check code 2024-07-18 17:57:17 +00:00
vectors-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
vectors-commands.c actions: Rename return_if_no_vectors_list macro... 2024-07-17 23:25:48 +00:00
vectors-commands.h app: get rid of all "*-linked" actions. 2021-12-23 13:39:43 +01:00
view-actions.c app, libgimp*, plug-ins: GimpColorButton now space-invaded. 2024-02-11 23:28:03 +01:00
view-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
view-commands.c app: GimpColorDialog now fully uses GeglColor. 2024-02-11 23:28:03 +01:00
view-commands.h Issue #9604: "view-zoom-*" actions should not be radio actions. 2023-09-24 23:51:14 +02:00
window-actions.c app: get rid of dummy "*-menu" and "*-popup" actions. 2023-04-20 15:36:11 +02:00
window-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
window-commands.c app, plug-ins: mark missing strings as translatable 2023-12-13 17:44:35 +00:00
window-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
windows-actions.c app: remove the "Tab" accelerator from the "windows-hide-docks" action 2023-05-26 00:45:30 +02:00
windows-actions.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
windows-commands.c app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00
windows-commands.h app: GtkAction -> GAction madness part two 2019-07-04 01:11:48 +02:00