When a display filter's configure() function returns NULL, use a
propgui for the filter, instead of not showing a widget at all, to
spare filters the need to manually construct a configuration gui.
More than 2000 lines of code less in app/, instead of
if (instance->member)
{
g_object_unref/g_free/g_whatever (instance->member);
instance->member = NULL;
}
we now simply use
g_clear_object/pointer (&instance->member);
Try to sort all GIMP_ICON_* defines into FDO categories like in
https://specifications.freedesktop.org/icon-naming-spec/latest/ar01s04.html
Add defines for all icons we override, rename some icons to their FDO
standard names, and mark the ones we duplicate with a comment so we
don't forget to rename those to standard names in 3.0.
... standard icon names and GTK+ icon names as second choice.
We should only use GIMP specific icon names as last resort, when there
is no standard or GTK+ names dedicated to the function.
This is made possible thanks to commit 3cc77b0.
s/gimp-document-recent/document-open-recent/
s/gimp-indent/format-indent-more/
s/gimp-next/go-next/
s/gimp-previous/go-previous/
s/gimp-save/document-save/
s/gimp-save-as/document-save-as/
s/gimp-revert/document-revert/
s/gimp-open/document-open/
s/gimp-document-recent/document-open-recent/
s/gimp-quit/window-close/ ou s/gimp-quit/application-exit/
s/gimp-warning/dialog-warning/
s/gimp-edit-clear/edit-clear/
s/gimp-justify-.*/gtk-justify-.*/
s/gimp-font/gtk-select-font/
s/gimp-color-palette/gtk-select-color/
s/gimp-cancel/gtk-cancel/
Create all display filters with "color-config" and "color-managed"
parameters set, not only the automatically added color management
display filter. This way we don't only support removing and adding the
filter again, but also support potential other color management
modules.
Closing the display filter editor with a filter selected
in the listview on the right, used to produce (quitting GIMP):
==32359== Invalid write of size 8
==32359== at 0x8808DF5: g_nullify_pointer (glib/glib/gutils.c:2099)
==32359== by 0x8358781: weak_refs_notify (glib/gobject/gobject.c:2469)
==32359== by 0x4C3730A: gimp_color_display_dispose (gimp-2-8/libgimpwidgets/gimpcolordisplay.c:197)
==32359== by 0x83596A7: g_object_unref (glib/gobject/gobject.c:2986)
==32359== by 0x4C37EFA: gimp_color_display_stack_dispose (gimp-2-8/libgimpwidgets/gimpcolordisplaystack.c:150)
==32359== by 0x83596A7: g_object_unref (glib/gobject/gobject.c:2986)
==32359== by 0x53F1C3: gimp_display_shell_filter_set (gimp-2-8/app/display/gimpdisplayshell-filter.c:58)
==32359== by 0x536A50: gimp_display_shell_dispose (gimp-2-8/app/display/gimpdisplayshell.c:765)
Instead, inherit from GtkBox directly and set the orientation in
init(). Replace more gtk_container_add() by gtk_box_pack_start() in
the reparented classes.
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
2007-08-06 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]: added GimpColorConfig
and
GimpColorManaged as construct-only properties.
Deprecated gimp_color_display_new().
* libgimpwidgets/gimpwidgets.def: updated for new symbols.
* app/widgets/gimpcolordisplayeditor.c: use g_object_new()
instead
of gimp_color_display_new().
* modules/cdisplay_lcms.c: use the image's embedded color
profile
for the display filter. Assume sRGB if no monitor profile is
configured.
* app/display/gimpdisplayshell.c:
* app/display/gimpdisplayshell-filter.[ch]: pass the display as
color-managed object to the display filter.
svn path=/trunk/; revision=23127
2006-10-01 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]
* libgimpwidgets/gimpcontroller.[ch]: added "const gchar *stock_id"
members to the class structs.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/stock-controller-16.png
* themes/Default/images/stock-controller-24.png
* themes/Default/images/stock-controller-keyboard-16.png
* themes/Default/images/stock-controller-keyboard-24.png
* themes/Default/images/stock-controller-linux-input-16.png
* themes/Default/images/stock-controller-linux-input-24.png
* themes/Default/images/stock-controller-midi-16.png
* themes/Default/images/stock-controller-midi-24.png
* themes/Default/images/stock-controller-wheel-16.png
* themes/Default/images/stock-controller-wheel-24.png
* themes/Default/images/stock-display-filter-colorblind-16.png
* themes/Default/images/stock-display-filter-colorblind-24.png
* themes/Default/images/stock-display-filter-contrast-16.png
* themes/Default/images/stock-display-filter-contrast-24.png
* themes/Default/images/stock-display-filter-gamma-16.png
* themes/Default/images/stock-display-filter-gamma-24.png
* themes/Default/images/stock-display-filter-lcms-16.png
* themes/Default/images/stock-display-filter-lcms-24.png
* themes/Default/images/stock-display-filter-proof-16.png
* themes/Default/images/stock-display-filter-proof-24.png: added
icons for the various display filters and controllers. Made them
as ugly as sin to trigger some replacement pain in the relevant
people ;)
* modules/cdisplay_colorblind.c
* modules/cdisplay_gamma.c
* modules/cdisplay_highcontrast.c
* modules/cdisplay_lcms.c
* modules/cdisplay_proof.c
* modules/controller_linux_input.c
* modules/controller_midi.c
* app/widgets/gimpcontrollerkeyboard.c
* app/widgets/gimpcontrollerwheel.c: set icons.
* app/widgets/gimpcolordisplayeditor.c
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollerlist.c: show them in the display filter
and controller GUIs.
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.
2005-05-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolordisplayeditor.h: include the parent class,
not gimpeditor.h
* app/widgets/gimpcolordisplayeditor.c: include gimpeditor.h here
2003-11-23 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]: made "enabled" an object
property and removed the "enabled_changed" signal.
* libgimpwidgets/gimpcolordisplaystack.c
* app/widgets/gimpcolordisplayeditor.c: connect to "notify::enabled"
instead.
* libgimpwidgets/gimpwidgets.def: added new symbols.
2003-11-23 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]: added new signal
"enabled_changed"...
* libgimpwidgets/gimpcolordisplaystack.c: ...which enables optimizing
away "changed" signals of disabled filters.
* app/widgets/gimpcolordisplayeditor.c: connect to "enabled_changed"
instead of "changed" to update the toggle column.
2003-11-23 Michael Natterer <mitch@convergence.de>
* libgimpwidgets/gimpcolordisplay.c (gimp_color_display_clone):
also clone the "enabled" property.
* app/widgets/gimpcolordisplayeditor.c
(gimp_color_display_editor_init): put the "enabled" toggle
renderer to its own column so selecting a row doesn't always
toggle "enabled".
2003-11-23 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]: added API to
enable/disable a filter. A disabled filter has no effect.
* libgimpmodule/gimpmodule.h: incremented GIMP_MODULE_ABI_VERSION.
* app/widgets/gimpcolordisplayeditor.c: added a check column to
the "Active Filters" tree view so the effect of all filters can
quickly be toggled. Cleanup.
* modules/cdisplay_colorblind.c: removed "none" from the enum and
from the GUI because disabling a filter is implemented generically
now.
* modules/cdisplay_colorblind.c
* modules/cdisplay_gamma.c
* modules/cdisplay_highcontrast.c
* modules/cdisplay_proof.c: added mnemonics, cleanup.
2003-11-22 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpwidgetsmarshal.list
* libgimpwidgets/gimpcolordisplaystack.[ch]: added signals
::added(), ::removed() and ::reordered() and emit them in the
resp. functions.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcolordisplayeditor.[ch]: new widget implementing
an editable view on a GimpColorDisplayStack. Most code taken from
below...
* app/display/gimpdisplayshell-filter-dialog.c: ...and removed
here. Only creates a GimpDialog around a GimpColorDisplayEditor
now.
2003-11-21 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolordisplaystack.h: forgot to declare
gimp_color_display_stack_clone().
* app/display/gimpdisplayshell.[ch]: replaced the GList of
GimpColorDisplays by a single GimpColorDisplayStack.
* app/display/gimpdisplayshell-render.c
(gimp_display_shell_render): changed accordingly.
* app/display/gimpdisplayshell-filter.[ch]: reduced API to a
single function, gimp_display_shell_filter_set(), which exchanges
the whole filter stack. Idle update the display on
GimpColorDisplayStack::update().
* app/display/gimpdisplayshell-filter-dialog.[ch]: changed
accordingly. Return the created dialog instead of assigning
shell->filters_dialog.
* app/gui/view-commands.c (view_display_filters_cmd_callback): set
shell->filters_dialog here and raise it it if already
exists. Don't use the dialog factory to create it because it's a
transient dialog for the display which does not need to be session
managed.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: removed display filter dialog stuff.
2003-11-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-filter-dialog.c: create the Display
Filter dialog transient for the display shell and destroy it with
its parent.
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-02-21 Michael Natterer <mitch@gimp.org>
Refactored the GimpDisplayShell update/draw code:
* app/display/gimpdisplayshell.[ch]: removed the display_areas
list which used to hold the GimpAreas to update. Instead, simply
queue draws using gtk_widget_queue_draw[_area]() in
gimp_display_shell_expose_area(), _expose_full() and
_expose_guide(). Made all _draw() functions public because they
are now called from the "expose_event" handler. Removed rendering
from gimp_display_shell_flush() because stuff is now flushed
automatically by the gtk idle renderer.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_expose): draw everything here (the code
removed from gimp_display_shell_flush() without the GimpArea list).
(gimp_display_shell_canvas_tool_events): return "return_val", not
TRUE if gimp->busy is TRUE. Fixes unupdated (windowk bg color)
display areas. Fixes bug #106595.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-cursor.c
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-selection.c
* app/gui/view-commands.c: changed accordingly. Removed calls to
gimp_display_shell_flush() all over the place.
* app/display/gimpdisplayshell-scroll.c: replaced lots of code by
a single call to gdk_window_scroll().
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.
2002-10-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-filter.[ch]: removed the
ColorDisplayNode struct entirely. GimpDisplayShell->filters is now
just a GList of GimpColorDisplay objects.
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-render.c: changed accordingly.
2002-10-20 Michael Natterer <mitch@gimp.org>
Ported module loading to GTypeModule, getting rid of all own
module registering/bookkeeping stuff for color selectors and
display filters. The modules now simply register GimpColorSelector
and GimpColorDisplay subclasses, the list of registered subclasses
can then be obtained calling g_type_children() on the abstract
base classes.
This is work in progress and just the first working state after I
started breaking everything...
* app/gui/color-select.[ch]
* libgimp/gimpcolordisplay.h
* libgimp/gimpcolorselector.h: removed.
* app/gui/Makefile.am
* libgimp/Makefile.am: changed accordingly.
* libgimp/gimpmodule.h: massively simplified. All voodoo is gone.
* libgimpwidgets/gimpcolordisplay.[ch]
* libgimpwidgets/gimpcolorselector.[ch]: new abstract base classes
which need to be subclassed by modules.
* libgimpwidgets/gimpcolorselect.[ch]: the built-in color selector
from app/gui/color-select.* ported to be a GimpColorSelector
subclass.
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetsmarshal.list
* libgimpwidgets/gimpwidgetstypes.h: changed accordingly.
* app/core/gimpmoduleinfo.[ch]: made it a GTypeModule subclass
* app/core/gimpmodules.c: changed accordingly.
* app/core/gimpcontainer.c
* app/core/gimplist.c: HACKED around to allow GimpLists of
GObjects (not GimpObjects). This is EEKy, so I will either make
gimp->modules a simple GList and revert this bit of change, or
allow GObjects all over the place in GimpContainer land...
* app/display/gimpdisplayshell-filter.[ch]
* app/gui/color-notebook.c: removed all module stuff and use
g_type_children() to get the list of available color_selectors
and display_filters.
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-render.c
* app/gui/module-browser.c: changed accordingly.
* app/gui/gui.c: ref the built-in color selector's class before
the modules are queried so it appears first in the list of
GimpColorSelector's children.
* modules/Makefile.am: build the water color selector again.
* modules/cdisplay_gamma.c
* modules/cdisplay_highcontrast.c
* modules/colorsel_triangle.c
* modules/colorsel_water.c: ported them all to the new API.
* modules/gimpmodregister.[ch]: removed the old EMX module hack.
2002-03-16 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-filter-dialog.c: treeviewized
and undeprecated.
* app/widgets/Makefile.am
* app/widgets/gimpconstrainedhwrapbox.[ch]: removed this hack.
* app/widgets/gimpcontainergridview.[ch]: added "rows" and
"columns" fields, connect to the viewport's "size_allocate" signal
and set the size_request of the wrap_box in the callback.