2004-07-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: added context->serialize_props mask
which enables specifying exactly which properties will be
serialized. Also fixes a bug that prevented undefined properties
from being serialized, breaking tool_options and device status
serialization.
* app/core/gimptoolinfo.c (gimp_tool_info_new): make only the
properties in the tool_info->context_props mask serializable, also
configure/initialize tool_info->tool_options.
* app/tools/gimp-tools.c (gimp_tools_register): removed
tool_options initialization that is now done in
gimp_tool_info_new().
* app/widgets/gimpdeviceinfo.c: make only the properties in
GIMP_DEVICE_INFO_CONTEXT_MASK serializable.
* app/widgets/gimpdevicestatus.c: add the device table to its
parent container again. Fixes "missing" devices.
* app/core/gimptooloptions.c
* app/widgets/gimpdevices.c: cleanup / code review.
2004-07-03 Michael Natterer <mitch@gimp.org>
* app/tools/gimppainttool.c (gimp_paint_tool_cursor_update): if
the color tool is enabled, skip cursor hiding entirely.
2004-07-02 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimptransformoptions.[ch]:
* app/tools/gimptransformtool.c:
* app/tools/tools-enums.[ch]: Replaced "Preview" checkbutton with
a combobox with options "Outline", "Grid", "Image", and
"Image + Grid".
2004-06-30 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimppainttool.c (gimp_paint_tool_cursor_update):
Chain up if the color tool is enabled. This fixes the problem of
the color picker cursor not appearing when using a paint tool
in color picking mode while "Show Paint Tool Cursor" is off.
2004-06-30 Michael Natterer <mitch@gimp.org>
Fixed a 1.2 -> 2.0 regression that was forgotten:
* app/widgets/widgets-enums.[ch]: added enum GimpColorPickState
which can be one of { NEW, UPDATE }.
* app/widgets/gimppaletteeditor.[ch]: changed #if 0'ed function
gimp_palette_editor_update_color() to
gimp_palette_editor_pick_color() and restored the functionality of
creating/updating colors via this API
Changed button_press handler to only edit the color on double
click if it's really a double click on the same color.
Fixes bug #141381.
* app/tools/gimpcolorpickeroptions.[ch]: added boolean property
"add-to-palette" and a GUI for it.
* app/core/gimpmarshal.list
* app/tools/gimpcolortool.[ch]: added a GimpColorPickState
parameter to the "color_picked" signal. Pass NEW on button_press
and UPDATE on motion.
* app/tools/gimpcurvestool.c (gimp_curves_tool_color_picked)
* app/tools/gimplevelstool.c (gimp_levels_tool_color_picked)
* app/tools/gimppainttool.c (gimp_paint_tool_color_picked):
changed accordingly
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_picked):
If "add-to-palette" is TRUE, get the palette editor and call
gimp_palette_editor_pick_color().
2004-06-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added new function
gimp_get_mod_string() which takes a GdkModifierType and returns
correctly formated strings for all shift,control,alt combinations.
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpcolorpickeroptions.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpcropoptions.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpflipoptions.c
* app/tools/gimpmagnifyoptions.c
* app/tools/gimpmoveoptions.c
* app/tools/gimptransformoptions.c
* app/tools/gimpvectoroptions.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpvectorstreeview.c: use the new function instead
of gimp_get_mod_name_shift(),control(),alt(),separator(). This
kindof addresses the issue of configurable modifier keys but is
actually indended to ease translation of format strings ("%s" is
easier to get right than "%s%s%s").
2004-06-28 Michael Natterer <mitch@gimp.org>
Fixed bug #141930 while keeping bug #132322 fixed:
* app/base/curves.c (curves_lut_func)
* app/base/levels.c (levels_lut_func): changed meaning of channel
slots for GRAYA images: just as for GRAY images, expect the value
channel in slot 0 and the alpha channel in slot 1, so it matches
the meaning of slots of GimpHistogram (before this change, only
GRAY images had their value in slot 0 and GRAYA images had it in
slot 1, whereas the histogram had the value channel in slot 0,
which was breaking auto levels for GRAYA images).
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* tools/pdbgen/pdb/color.pdb: adjusted channel fiddling for GRAY
and GRAYA images accordingly.
* app/tools/gimpcurvestool.c (curves_update)
* app/tools/gimplevelstool.c (levels_update): call
gimp_color_bar_set_buffers() with the right buffers.
* app/pdb/color_cmds.c: regenerated.
2004-06-28 Sven Neumann <sven@gimp.org>
* app/gui/gui.c (gui_initialize_after_callback): select the
standard tool.
* app/tools/tool_manager.c: cosmetics.
2004-06-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimplevelstool.c: reverted fix for bug #141930. These
hacks are there because the enum used in levels doesn't match
the enum used by the combo box and the histogram widget.
2004-06-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_tool_button_release):
removed again (tools must not draw outside GimpDrawTool::draw()).
(gimp_clone_tool_draw): removed check for gimp_draw_tool_is_active()
because the draw function would not be called if the draw tool was
inactive. Simplified check for whether or not to draw the src
location.
* app/tools/gimppainttool.c (gimp_paint_tool_button_release):
pause/resume the draw tool across all button_release actions so
tools (clone) have a chance to draw different things depending on
gimp_tool_control_is_active(tool->control). Fixes bug #145022.
2004-06-24 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]
* app/tools/tool_manager.[ch]: added boolean return value to
GimpTool::key_press() which indicates if the event was handled.
* app/tools/gimpcroptool.c
* app/tools/gimpeditselectiontool.[ch]
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: return TRUE if the key event was handled.
* app/tools/gimppainttool.c: removed key_press() implementation.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerkeyboard.[ch]: new controller class
which takes GdkEventKey and emits controller events for all
combinations of modifiers and cursor keys.
* app/widgets/gimpcontrollers.[ch]: added new function
gimp_controllers_get_keyboard().
* app/display/gimpdisplayshell-callbacks.c: if a key event was not
handled by the active tool, dispatch it to the keyboard controller.
* etc/controllerrc: add a keyboard controller which is configured
to do the same as the removed gimp_paint_tool_key_press().
2004-06-23 Michael Natterer <mitch@gimp.org>
* app/paint/gimpbrushcore.[ch]: added signal "set-brush" which is
G_SIGNAL_RUN_LAST so we can connect before and after the default
implementation. Moved the brush setting and outline invalidation
stuff to its default implementation. Also remember the outline's
width and height. Call gimp_brush_core_set_brush() from
gimp_brush_core_invalidate_cache() so "set-brush" is emitted
whenever a generated brush becomes dirty.
* app/tools/gimppainttool.c (gimp_paint_tool_button_press): don't
pause/resume but rather stop/start the draw_tool. Fixes straight
line preview aretefacts.
(gimp_paint_tool_oper_update): set the brush_core's brush before
starting the draw_tool.
(gimp_paint_tool_draw): never free the brush_core's cached brush
outline because the brush_core does that by itself now.
(gimp_paint_tool_set_brush)
(gimp_paint_tool_set_brush_after): new callbacks which pause and
resume the draw_tool. Fixes brush outline artefacts when modifying
the current brush e.g. by using the mouse wheel.
2004-06-22 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpcurvestool.c: added Store/Recall buttons for
one-click saving and loading of curves. Should create stock
labels for them. Hopefully resolves bug #75558.
2004-06-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_tool_draw): chain up
unconditionally now that we draw the brush outline while
painting. Fixes brush outline artefacts on button_press and
button_release. Spotted by sjburges.
2004-06-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrambox.[ch]: removed the label between the
spinbuttons, it looks silly. Converted tabs to spaces, removed
trailing whitespace.
* app/widgets/gimphistogrameditor.c
* app/tools/gimpthresholdtool.c: changed accordingly.
* app/widgets/gimphistogrambox.[ch]:
* app/tools/gimpthresholdtool.c: Changed the threshold tool dialog
so that it uses a two-triangle-slider scale of the sort used in the
levels tool. Almost all of the changes are actually in the
histogram-box widget code, which is only used by the threshold
tool. Fixes bug #137521.
2004-06-19 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpscaletool.c: fixed my fix for bug # 68106, which
worked incorrectly for two of the control points.
2004-06-18 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_bounds):
If transforming a path, use the path bounds rather than the mask
bounds. Fixes bug #144570.
2004-06-15 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimpcroptool.c (crop_selection_callback): Force
aspect ratio to match selection when 'From Selection' is clicked.
Fixes bug #144361. Also converted tabs to spaces.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.[ch]: removed PRETRACE_PAINT and
POSTTRACE_PAINT from the GimpPaintCoreState enum. Removed
"gboolean traces_on_window" from GimpPaintCoreClass.
* app/paint/gimpclone.[ch]
* app/paint/gimpink.c
* app/tools/gimpclonetool.c: changed accordingly.
* app/tools/gimppainttool.c: ditto. Show the brush outline
while painting. Fixes bug #118348.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c: use gimp_draw_tool_is_active()
instead of GIMP_IS_DISPLAY(draw_tool->gdisp).
2004-06-14 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimptransformtool.c: Disable preview in corrective
mode, and notify preview when switching transform type and
direction.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.[ch]: added new virtual function
GimpPaintCore::post_paint() and call it after calling
GimpPaintCore::paint().
* app/paint/gimpbrushcore.[ch]: renamed brush_core->grr_brush
to brush_core->main_brush and reset brush_core->brush
to brush_core->main_brush in GimpPaintCore::post_paint().
* app/paint/gimpbrushcore.c
* app/paint/gimppaintcore-stroke.c
* app/tools/gimppainttool.c: removed all code which restores
the brush_core's old brush after painting since post_paint()
does this automatically now.
* app/paint/gimpclone.[ch]: moved static variables to the
GimpClone struct.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c: removed calls to
gimp_transform_tool_expose_preview() from all
GimpTransformTool::motion() implementations...
* app/tools/gimptransformtool.c: ...and call it after calling
tr_tool_class->preview().
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: remember the last used
GimpCursorFormat so changing the format in prefs applies
instantly, and not after the next tool change.
* app/display/gimpdisplayshell-cursor.[ch]
* app/tools/gimptool.[ch]
* app/tools/gimptoolcontrol.[ch]
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c: s/GdkCursorType/GimpCursorType/g
2004-06-14 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_doit): Preview
wasn't being turned off before performing a transformation. Also
converted tabs to spaces.
2004-06-13 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.[ch]: added enum GimpCursorFormat
which can be one of { BITMAP, PIXBUF, PIXBUF-PREMULTIPLY } to
work around broken X servers.
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added GimpGuiConfig::cursor-format.
* app/gui/preferences-dialog.c: added a GUI for the new option.
* app/widgets/gimpcursor.[ch]: added cursor_format parameter
to gimp_cursor_new() and _set().
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimpcurvestool.c
* app/widgets/gimpdialogfactory.c: pass an appropriate cursor_mode.
2004-06-12 Simon Budig <simon@gimp.org>
* app/tools/gimptransformtool.c: Make Enter/Return apply the
transformation, Backspace/Delete resets the transformation.
* app/tools/gimpcroptool.c: Simplify the key_press callback.
2004-06-12 Simon Budig <simon@gimp.org>
* app/tools/gimpcroptool.c: Make the Enter/Return key do
the crop action.
* app/tools/gimpeditselectiontool.c
* app/tools/gimpvectortool.c: Make the _key_press functions
safe for non-arrow keys.
2004-06-12 Simon Budig <simon@gimp.org>
* app/tools/gimptool.[ch]: renamed the "arrow_key" member
to "key_press", since it is now no longer about just the arrow
keys.
* app/tools/gimpcroptool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpeditselectiontool.h
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimpselectiontool.c
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c
* app/tools/tool_manager.c: Changed accordingly.
2004-06-12 Simon Budig <simon@gimp.org>
* app/tools/tool_manager.[ch]: renamed
tool_manager_arrow_key_active to tool_manager_key_press_active.
* app/display/gimpdisplayshell-callbacks.c: Also dispatch
GDK_Return/KP_Enter/BackSpace/Delete to the tools "arrow_key"
member of GimpTool probably should be renamed.
* app/tools/gimpvectortool.c: Use Enter/Return to convert the
current path to a selection, use Backspace/Delete to delete the
currently active anchors in a path.
Implemented on Jimmacs request - thanks for being a great host :)
2004-06-09 Sven Neumann <sven@gimp.org>
* app/tools/gimppenciltool.c (gimp_pencil_tool_init): no need
request GIMP_MOTION_MODE_EXACT here since the parent class does
that already.
* app/tools/gimpinktool.c (gimp_ink_tool_init): ditto. Enable the
color picker feature for the ink tool.
2004-06-05 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-none.png
* cursors/xbm/cursor-none.xbm: new empty cursor images.
* app/config/gimpdisplayconfig.[ch]
* app/config/gimprc-blurbs.h
* app/widgets/widgets-enums.h
* app/widgets/gimpcursor.c
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimppainttool.[ch]
* app/tools/gimpinktool.c
* app/gui/preferences-dialog.c: applied patches from Philip
Lafleur which implement hiding the cursor completely for paint
tools. Changed the name of the config option from
"hide-paint-tool-cursor" to "show-paint-tool-cursor" and default
to TRUE because this needs the brush outline being visible while
painting to be really usable. Fixes bug #132163.
* app/widgets/widgets-enums.h: renamed all GimpCursorType and
GimpToolCursorType enum values to GIMP_CURSOR_* and
GIMP_TOOL_CURSOR_*.
* app/widgets/gimpcursor.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimp*tool.c; changed accordingly.