2006-10-19 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_draw): show
the outline of the selection while transforming it.
Fixes bug #362587.
2006-10-19 Michael Natterer <mitch@gimp.org>
* app/actions/tools-actions.c (tools_alternative_actions): remove
the accelerator from the "Arbitrary Rotation" action, Shift+R
should switch to the rotate tool, not switch to the rotate tool
*and* select "Transform Layer" from the tool options.
2006-10-19 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-draw.c (gimp_display_shell_draw_area):
fixed calculation of display area in preparation of fixing bug #362915.
* plug-ins/common/whirlpinch.c: removed unused define.
2006-10-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_expanding_frame_new() which creates a frame with a
toggle button in the title.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimprectangleoptions.c
* app/tools/gimprectangleselectoptions.c
* app/tools/gimpselectionoptions.c: use it instead of duplicating
this code all over the place.
2006-10-18 Michael Natterer <mitch@gimp.org>
Applied modified patch from Martin Nordholts which adds a "Rounded
Corners" option to the rectangle select tool. Fixes bug #86279.
* app/core/gimpchannel-combine.[ch]: added
gimp_channel_combine_ellipse_rect(). Use it from
gimp_channel_combine_ellipse().
* app/core/gimpchannel-select.[ch]: added
gimp_channel_select_round_rect()
* app/tools/gimprectangleselectoptions.[ch]: added properties
"round-corners" and "corner-radius" and GUI for the new propeties.
* app/tools/gimprectangleselecttool.h: added macro
GIMP_RECT_SELECT_TOOL_GET_OPTIONS().
* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_draw):
draw round corners if enabled.
(gimp_rect_select_tool_real_select): use
gimp_channel_select_round_rect() if enabled.
* app/tools/gimpselectionoptions.[ch]: added "antialias_toggle"
to the GimpSelectionOptions struct so the rect select options
can set its sensitivity.
Unrelated:
* app/tools/gimpellipseselecttool.c (gimp_ellipse_select_tool_draw):
use 360 * 64 instead of 23040.
2006-10-18 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.c (find_mnemonic_widget): special
case GimpSizeEntry and use the last entry.
* app/tools/gimprotatetool.c
* app/tools/gimpsheartool.c: added mnemonics (bug #162541).
2006-10-18 Michael Natterer <mitch@gimp.org>
Separate selection tool function (select, move, cut, ...) from
selection mode (replace, add, ...). Fixes bug #313634 (that bug
wasn't triggered any more in HEAD, but was still there).
* app/tools/tools-enums.h: renamed enum SelectOp to SelectFunction
and replaced the values REPLACE, ADD, SUBTRACT and INTERSECT by a
single value SELECT.
* app/tools/gimpselectiontool.h (struct GimpSelectionTool):
renamed member "op" to "function". Changed "SelectOps saved_op" to
"GimpChannelOps saved_operation".
* app/tools/gimpselectiontool.c: we always have the right
GimpChannelOps in the tool options, so simply use it instead of
mixing up unrelated stuff in one enum. Results is some medium-ugly
nested switches, but is generally much cleaner than before.
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpregionselecttool.c: changed accordingly. Use the
operation from the tool options instead of selection_tool->op when
making the actual selection.
2006-10-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangleselecttool.[ch]
* app/tools/gimpellipseselecttool.c: use enum GimpChannelOps
instead of SelectOps.
2006-10-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectioneditor.c: use enum GimpChannelOps
instead of SelectOps (which is a tool state).
2006-10-17 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_set_image_types): include the procedure
name in the output on stderr.
2006-10-16 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.[ch]: removed the "floating" flag and the
floating/sink API.
(gimp_item_init): call g_object_force_floating() instead.
* app/core/gimpimage.c
* app/core/gimplayer.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/image.pdb: use combinations of
g_object_ref_sink() and g_object_unref() instead of
gimp_item_sink(). Use g_object_is_floating() instead of
gimp_item_is_floating().
* app/pdb/drawable_cmds.c
* app/pdb/image_cmds.c: regenerated.
2006-10-16 Tor Lillqvist <tml@novell.com>
* libgimp/gimpui.c (gimp_window_set_transient_for)
* app/widgets/gimpwidgets-utils.c (gimp_window_set_transient_for):
These functions are used for cross-process transient-for, which
causes hangs on Win32. Bypass on Win32 for now. (#359538)
2006-10-15 Michael Natterer <mitch@gimp.org>
* app/file/file-utils.c (file_utils_filename_to_uri): if the
passed filename starts with a valid, but unhandled uri scheme,
fail with an error saying "URI scheme 'foo:' is not supported"
instead of treating it as relative file path. Fixes bug #358203.
* app/dialogs/file-open-location-dialog.c
(file_open_location_response): don't close the dialog on errors
that are related to the entered URI because these errors are
failed user input validation, not failed open.
2006-10-15 Michael Natterer <mitch@gimp.org>
Applied slightly modified patch from Martin Nordholts which
implements more fine-grained steps for actions. Fixes bug #165612.
* app/actions/actions-types.h: add additional values to
enum GimpActionSelectType.
* app/actions/actions.[ch] (action_select_value)
(action_select_property): handle them here and added "small_inc"
and "delta_factor" parameters.
* app/actions/context-actions.c: added small and percent actions
for the brush radius.
* app/actions/context-commands.c
* app/actions/layers-commands.c
* app/actions/tools-commands.c
* app/actions/view-commands.c: pass small and percent increase
values to the action_select_foo() functions.
* app/actions/context-commands.c (context_brush_radius_cmd_callback):
make sure we don't end up with 1.1, 2.1 etc brush radius values.
2006-10-14 Michael Natterer <mitch@gimp.org>
Remember the settings in the scale and resize dialogs for images
and layers. Fixes bug #164995, bug #316392, and bug #357424.
* app/dialogs/scale-dialog.h: removed GimpScaleCallback typedef.
* app/dialogs/dialogs-types.h: added it here.
* app/dialogs/image-scale-dialog.[ch]: made the ImageScaleDialog
struct private, return a GtkWidget* from image_scale_dialog_new()
and use a GimpScaleCallback in the public API.
* app/actions/actions-types.h: #include "dialogs/dialogs-types.h"
* app/actions/image-commands.c: changed according to image scale
dialog changes. Remember the scale dialog's unit (if it is
"percent") and interpolation type across dialog invocations. Also
remember the resize dialog's unit (if it is "percent").
* app/actions/layers-commands.c: remember scale and resize dialog
stuff as in image-commands.c
2006-10-14 Michael Natterer <mitch@gimp.org>
* app/core/gimpgrid.c: don't include "libgimpbase/gimplimits.h"
* app/core/gimpimage-undo-push.c: one more g_message() converted
to gimp_message().
2006-10-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_execute):
flush the image after clearing the selection and after anchoring
a floating layer. Fixes bug #362096.
2006-10-11 Raphael Quinet <raphael@gimp.org>
* app/xcf/xcf-load.c (xcf_load_tile_rle): workaround for bug
#357809: avoid crashing when invalid offsets are read for a
compressed tile in the XCF file.
2006-10-09 Michael Natterer <mitch@gimp.org>
Added message severities and make sure all messages are routed
through a central function, so redirecting to the error console or
stderr work again:
* app/core/core-enums.[ch]: added enum GimpMessageSeverity { INFO,
WARNING, ERROR }.
* app/core/gimp.[ch] (gimp_message)
(gimp_message_valist): added severity parameter. Changed
"GimpProgress *progress" parameter to "GObject *handler", where
"handler" can be either a GimpProgress, a GtkWidget or NULL.
* app/core/gimp-gui.[ch] (gimp_show_message): ditto. Honor
--console-messages again. Always dispatch to the GUI message
handler first if it exists.
* app/gui/gui-message.[ch]: pass severity parameters around.
(gui_message_error_dialog): if "handler" is a progress, dispatch
the message to it first. If it is a widget (and *not* a progress),
use a GtkMessageDialog on top of that widget's toplevel. Fall
back to the usual GimpErrorDialog otherwise.
* app/core/gimpprogress.[ch] (gimp_progress_message): added
severity parameter. Also added boolean return value to the virtual
function so it can decide to fail if it can't handle the message.
* app/display/gimpdisplay.c: implement GimpProgress::message() and
redirect the message to GimpDisplayShell.
* app/display/gimpdisplayshell-progress.c: implement
GimpProgress::message() and redirect the message to GimpStatusbar
if it is not an error and if the status bar is visible.
* app/display/gimpstatusbar.[ch]: implement GimpProgress::message(),
but fail on messages that contain a newline. Show the right icons
for the message severities (work in progress).
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_message() and its _valist() variant.
* app/widgets/gimperrorconsole.[ch]: show the right icons for the
message severities.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_message):
return TRUE to swallow all messages.
* app/widgets/gimpwidgets-utils.[ch]: removed
gimp_show_message_dialog(). Added gimp_get_message_stock_id().
* app/errors.c
* app/actions/edit-commands.c
* app/actions/error-console-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c
* app/actions/text-editor-commands.c
* app/actions/vectors-commands.c
* app/core/gimpimage-convert.c
* app/core/gimpimagefile.c
* app/dialogs/convert-dialog.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/stroke-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/pdb/gimppdb.c
* app/plug-in/gimpplugin.c
* app/tools/gimpimagemaptool.c
* app/tools/gimptool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/message.pdb
* tools/pdbgen/pdb/palette.pdb: added severity parameter to
gimp_message() calls. Convert all calls to
gimp_show_message_dialog() and gimp_display_shell_message() to
gimp_message(). Also converted some more g_message() calls.
* app/pdb/brush_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/image_cmds.c
* app/pdb/message_cmds.c
* app/pdb/palette_cmds.c: regenerated.
2006-10-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushgenerated-load.c
* app/core/gimpgradient-load.c
* app/core/gimppalette-load.c
* app/core/gimppalette-save.c: read and write all files in binary
mode. Improved parser error messages (added line numbers). Minor
changes to simply read DOS files instead of barfing on them.
* app/dialogs/offset-dialog.c: apply patch from David
Gowers, with minor cleanups, to use item dimensions rather
than image dimensions; fixes bug #358322.
* app/core/gimpimage-convert.c
(median_cut_pass2_nodestruct_dither_rgb): adjust alpha-dithering
and make code more readable; fixes bug #358851 as suggested
by Tor Lillqvist.
2006-10-03 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette-load.[ch]: added
gimp_palette_load_detect_format().
* app/core/gimppalette-import.c: removed it here. Also removed all
file I/O related includes.
2006-10-03 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette-load.[ch]: added functions to load ACT,
RIFF and PSP palette files but don't use them as data file
loaders (yet?)
* app/core/gimppalette-import.c (gimp_palette_import_from_file):
use the functions instead of implementing all formats inline.
2006-10-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpgradient-load.h: keep the file extension defines
here, just as we do it for brushes.
* app/core/gimpgradient.h: removed them here.
* app/core/gimpgradient.c: changed accordingly.
2006-10-03 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert.[ch]
(gimp_image_convert_set_dither_matrix): applied patch from David
Gowers (bug #359175) and did some further cleanup.
2006-10-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.[ch] (gimp_toolbox_new): changed Gimp
parameter to GimpContext and use it instead of getting the user
context from the Gimp.
(toolbox_tool_button_toggled): set the tool on the dock's
context instead of the user context.
* app/dialogs/dialogs-constructors.c (dialogs_toolbox_get): pass
the context to gimp_toolbox_new() instead of context->gimp.
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-10-01 Michael Natterer <mitch@gimp.org>
Get rid of one more user context hack:
* app/dialogs/stroke-dialog.c: attach the saved-stroke-desc to the
gimp object instead of to the passed context in one function, and
to the user context in the other (coincidentially these contexts
were the same).
* app/actions/select-commands.c
* app/actions/vectors-commands.c: changed accordingly. Pass the
callback's context instead of the user context to
stroke_dialog_new().
2006-09-28 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]: added
gimp_display_shell_message() and a valist variant and decide here
where the message is shown.
* app/actions/edit-commands.c (edit_paste)
* app/tools/gimptool.c (gimp_tool_message): use the new message API.
2006-09-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.[ch]: added _valist() variants
of all printf-style functions.
* app/tools/gimptool.[ch] (gimp_tool_push_status)
(gimp_tool_replace_status)
(gimp_tool_message): take printf-style ... arguments and use the
new valist() variants of the statusbar API to avoid additional
strdups. Revert previous commit from Sven, he will add back that
feature differently right away :)
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c: use the new printf-style status API
where possible.
* app/tools/gimptransformtool.c: accidentially removed
"core/gimp.h", added it back.
2006-09-28 Sven Neumann <sven@gimp.org>
* app/core/gimp.h: formatting.
* app/tools/gimptool.c (gimp_tool_message): use gimp_message() if
the statusbar is not visible.
2006-09-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]: added gimp_tool_message() which uses
the new statusbar messages.
* app/tools/gimptool.c
* app/tools/gimppainttool.c: use it instead of accessing the
statusbar directly.
* app/tools/gimptransformtool.c: use it instead of gimp_message().
2006-09-28 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.h
* app/composite/gimp-composite-generic.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: added lots of const qualifiers,
moved variables to local scopes.
* app/base/pixel-processor.c: formatting.
2006-09-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimpconvolvetool.c (gimp_convolve_tool_register):
changed menu label to "Bl_ur / Sharpen" and shortcut to Shift+U.
Fixes bug #356137. Use "Blur / Sharpen" for all strings.
* app/tools/gimpdodgeburntool.c (gimp_dodge_burn_tool_register):
changed strings from "Dodge/Burn" to "Dodge / Burn".
2006-09-26 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.[ch]: added GError** parameter to
GimpPaintCore::start().
* app/tools/gimppainttool.c (button_press): display the error in
the statusbar.
* app/paint/gimppaintcore-stroke.c: pass a NULL error, effectively
swallowing mssages. Will fix that later.
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpsourcecore.c: changed accordingly. Set the error
instead of calling g_message().
* app/paint/gimpheal.c
* app/paint/gimpperspectiveclone.c: implement start() and bail out
early on indexed drawables instead of showing a g_message() in
other functions that are called later.
* app/tools/gimptool.[ch]: added GError** to GimpTool::initialize().
* app/tools/gimptool.c (gimp_tool_initialize): display the error
in the statusbar. Keep the external API GError-free.
* app/tools/gimprectangletool.[ch]: added GError** to
gimp_rectangle_tool_initialize().
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimplevelstool.c
* app/tools/gimpperspectiveclonetool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c
* app/tools/gimptransformtool.c: changed accordingly. Set the
errors in initialize() instead of using gimp_message().
* app/tools/gimpblendtool.c: implement initialize() and bail out
early on indexed images instead of showing a gimp_message() in
button_press().
2006-09-26 Sven Neumann <sven@gimp.org>
* modules/Makefile.am
* modules/colorsel_cmyk_lcms.c: new CMYK color-selector that
uses
littleCMS for the RGB <-> CMYK conversion. This is built instead
of the standard CMYK color-selector if lcms is available.
* libgimpwidgets/gimpcolornotebook.c
* libgimpwidgets/gimpcolorselection.[ch]
* libgimpwidgets/gimpcolorselector.[ch]
* libgimpwidgets/gimpwidgets.def: added API to set the color
management configuration on color selectors.
* libgimpwidgets/gimpwidgetstypes.h: include
libgimpconfig/gimpconfigtypes.h.
* app/dialogs/grid-dialog.c
* app/dialogs/preferences-dialog.c
* app/widgets/gimpcolordialog.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpgrideditor.[ch]
* app/widgets/gimppropwidgets.c
* app/widgets/gimptoolbox-color-area.c: set the color management
configuration on (hopefully) all color selectors.
* modules/cdisplay_lcms.c: use a GimpHintBox widget.
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.
2006-09-24 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_apply): don't restore
the entire affected area of the drawable here (it can take *long*
on large selections).
(gimp_image_map_do): do it here instead, as we idle-process the
chunks. Slightly reduces overall speed but improves responsiveness
*massively*
(gimp_image_map_get_color_at): fixed to honor undo tiles offset
and be readable.
(gimp_image_map_commit)
(gimp_image_map_clear)
(gimp_image_map_clear): don't unref the image_map here. Objects
don't memory manage themselves.
Cleaned up the entire file and got rid of all sorts of uglyness.
* app/tools/gimpimagemaptool.c: unref the image_map here.
* app/tools/gimpcurvestool.c (curves_graph_events): update the
preview on button_press when we are dragging a free curve.
2006-09-24 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcurvestool.c (curves_graph_events): jikes, update
the preview only if we actually drag the curve, not on any mouse
movement.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]: put back code for responding
to modifiers pressed after mouse1-down, at mitch's request.
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.c
* app/tools/gimpselectionoptions.c: move "auto-shrink"
and "shrink-merged" from selection options to
rectangle options where they belong; now shown
for crop tool as well as rect select.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: add new actions for
toggling "fixed-aspect" and "fixed-center" options of
rectangle tools.
* app/tools/gimprectangletool.[ch]
* app/tools/gimprectangleselecttool.c
* app/tools/gimpcroptool.c: rely on new actions for
keyboard control, not on modifiers pressed after
mouse1-down.
2006-09-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.c (gimp_statusbar_progress_style_set):
terminate the spaces string correctly. Spotted by bill.
2006-09-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.[ch]: changed all message setting
functions to use printf-style argument lists. Added new API to
show a temporary message that stays on top regardless of any other
message activity and disappears after 3 seconds.
* app/actions/edit-commands.c: show a statusbar message when
pasting fails because the clipboard contains no image data. Pop a
dialog when "Paste as New" fails. Addresses bug #357059 for
internal functions.
* app/display/gimpdisplayshell-title.c
* app/gui/gui.c
* app/tools/gimptool.c: changed accordingly.
2006-09-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_space_released): also look at
shell->space_release_pending when deciding whether to return early.
2006-09-22 Sven Neumann <sven@gimp.org>
* app/gui/gui-message.c
* app/widgets/gimpwidgets-utils.[ch]: moved utility function to
gimpwidgets-utils.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: added a progress parameter to
gimp_pdb_dialog_new() and make the dialog transient to the progress
window.
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/font_select.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/palette_select.pdb
* tools/pdbgen/pdb/pattern_select.pdb: pass progress to
gimp_pdb_dialog_new().
* app/pdb/brush_select_cmds.c
* app/pdb/font_select_cmds.c
* app/pdb/gradient_select_cmds.c
* app/pdb/palette_select_cmds.c
* app/pdb/pattern_select_cmds.c: regenerated.
* libgimp/gimpselectbutton.c: cosmetics.
* app/widgets/gimppropwidgets.c (gimp_prop_aspect_ratio_new):
some small bug-fixes.
* app/tools/gimprectangleoptions.[ch]: major revision. Got
rid of lots of unneeded getter/setter-clutter, simplified
set of options and appearance of gui. Still work in progress.
* app/tools/gimprectangleselectoptions.c
* app/tools/gimprectangletool.c: corresponding changes.
2006-09-21 Sven Neumann <neumann@jpk.com>
* app/base/tile-manager.c (read_pixel_data_1) (write_pixel_data_1):
use the same code on all platforms. The optimization for bytes == 4
was pointless anyway.
* app/display/gimpcanvas.[ch]
* app/tools/gimpdrawtool.[ch]: remove recently added code relating
to stippled xor drawing -- not handled well by some display
drivers.
* app/tools/gimprectangletool.c: improve drawing of handles.
2006-09-20 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.c (gimp_plug_in_close): if the plug-in is
in a different process group than GIMP, kill the entire group so
the plug-in's children are killed too.
* plug-ins/uri/uri-backend-wget.c (uri_backend_load_image): open
a process group so the wget process gets killed (bug #356643).
2006-09-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrambox.c: draw slider positions more
accurately, fixed incorrect use of GtkAdjustments.
2006-09-20 Michael Natterer <mitch@gimp.org>
* app/paint/gimpsourcecore.c: implement GimpPaintCore::start()
and set paint_core->use_saved_proj to TRUE when we are using
the destination drawable image's projection as source. Return
FALSE from start() if there is no src_drawable set and removed
checks for src_drawable != NULL further down in the code path.
* app/tools/gimpperspectiveclonetool.c (button_press)
* app/tools/gimpsourcetool.c (button_press): don't fiddle with
paint_core->use_saved_proj here.
* app/paint/gimpclone.c: implement GimpPaintCore::start() and
return FALSE if we are in pattern mode and there is no pattern to
clone from. Removed GimpPaintCore::paint() implementation because
all it did was popping a message if there is no pattern. Removed
check for pattern != NULL and cleaned up the file a bit.
* app/paint/gimpperspectiveclone.c (paint): removed message about
no pattern to clone from.
2006-09-20 Michael Natterer <mitch@gimp.org>
* app/core/gimpgradient.[ch]: added gimp_gradient_flatten() which
creates a copy of a gradient with all colors that refer to FG or
BG turned into constant colors.
* app/core/gimpdrawable-blend.c (gradient_fill_region): create a
flat copy of the gradient if it contains FG/BG colors. Avoids
gazillions of context color lookups while rendering, depending on
gradient and blend complexity.
2006-09-19 Sven Neumann <sven@gimp.org>
* app/core/gimp.c (gimp_message): don't leak the message.
* app/file/file-utils.c (file_utils_find_proc): clear the error
if we found a file procedure by matching the file extension.
* plug-ins/common/png.c (load_image): don't call gimp_quit() if
opening the file fails but return with GIMP_PDB_EXECUTION_ERROR.
2006-09-19 Michael Natterer <mitch@gimp.org>
Fix disabling of deprecated procedures (bug #345733):
* app/pdb/gimppdb.c (gimp_pdb_register_procedure): silently drop
deprecated procedures if they are disabled via --pdb-compat-mode.
* app/plug-in/gimpplugin-message.c (gimp_plug_in_handle_proc_run):
remove code that handles deprecated procedures even when they are
disabled, the change above makes this impossible.
Call plug_in_params_to_args() also if we didn't find the
procedure, so the PDB doesn't choke on NULL args.
2006-09-17 Sven Neumann <sven@gimp.org>
* app/core/gimp-user-install.c (user_install_migrate_files):
do not migrate toolrc and the tool-options folder.
2006-09-16 Michael Natterer <mitch@gimp.org>
* app/tools/gimpperspectiveclonetool.c (button_press)
* app/tools/gimpsourcetool.c (button_press): need to instruct the
paint_core to make a copy of the projection whenever we clone from
the same *image*, not from the same display. Fixes crash when
cloning from the same image's projection in another view
(bug #356209).
Trying to implement some usability recommendations from
Peter Sikking: bigger handles, more feedback to user.
* app/display/gimpcanvas.[ch]: add
GIMP_CANVAS_STYLE_XOR_STIPPLED to set of styles.
* app/tools/gimpdrawtool.[ch]
(gimp_draw_tool_draw_rectangle_stippled): new function.
Needs a better stipple pattern, though.
* app/tools/gimprectangletool.c: bigger handles in corners,
and highlight thing that user is currently moving.
* app/widgets/gimprectangletool.c: even if constraining to boundaries,
keep updating rectangel when pointer goes outside boundaries.
Fixes bug #355740.
* app/widgets/gimppropwidgets.[ch]: add prop widget specially
for controlling aspect ratio.
* app/tools/gimprectangleoptions.ch]: use "aspect-numerator"
and "aspect-denominator" properties instead of "aspect",
and use new prop widget in gui to set and display them.
* app/tools/gimprectangletool.c: calculate aspect from
numerator and denominator.
2006-09-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcurvestool.c (curves_graph_events): when editing a
"smooth" curve, update the image while dragging instead of on
button_release. Suggested by Joel Becker.
2006-09-14 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollereditor.[ch]
* app/widgets/gimpcontrollerlist.c: pass a GimpContext to
gimp_viewable_dialog_new().
2006-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerentry.c: Don't popup the completion
when there is only a single match because we already use inline
completion.
2006-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerentry.c: implement
GimpContainerView::set_context() and set the renderers'
contexts. Fixes more preview rendering warnings.
Connect to GtkEntryCompletion::match-selected in addition to
GtkEntry::changed to select the active item. Makes the whole
thing work a lot better.
2006-09-13 Michael Natterer <mitch@gimp.org>
Need to be more careful with setting a tool's focus_dislay now
that tools can receive modifier events in more circumstances
(fixes warnings with GimpEditSelectionTool)
* app/tools/gimptool.c (gimp_tool_button_release): ref the tool
around the function's body (GimpEditSelectionTool unrefs itself in
button_release()), don't reset the active_modifier_state if it is 0.
(gimp_tool_set_focus_display): reset the active_modifier_state if
it is != 0 and the tool had an old focus_display.
* app/tools/tool_manager.c (tool_manager_push,pop_tool): set the
old active_tool's focus_display on the new one.
2006-09-13 Michael Natterer <mitch@gimp.org>
* app/tools/gimpperspectiveclonetool.h: added macro
GIMP_PERSPECTIVE_CLONE_TOOL_GET_OPTIONS()
* app/tools/gimpperspectiveclonetool.c: use it. Some minor
cleanups, removed unused includes.
2006-09-13 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/color.pdb
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb
* tools/pdbgen/pdb/paint_tools.pdb
* tools/pdbgen/pdb/selection_tools.pdb: use the canonical form
when
refering to parameters in the procedure description.
2006-09-13 Michael Natterer <mitch@gimp.org>
* app/tools/gimpbrushtool.c: simplified by calling
gimp_draw_tool_pause/resume() unconditionally (it does no harm,
regardless of whether the tool is in color picking mode or not).
Return early in gimp_brush_tool_draw() if color picking is
enabled.
* app/tools/gimpsmudgetool.c (gimp_smudge_tool_init): don't enable
color picking, the tool doesn't use FG or BG.
2006-09-13 Michael Natterer <mitch@gimp.org>
* app/tools/gimpsourcetool.c (gimp_source_tool_control): chain
up before clearing src_drawable and src_display, so the draw
tool can undraw the source marker. Fixes bug #355746.
2006-09-13 Michael Natterer <mitch@gimp.org>
* app/paint/gimpclone.c (gimp_clone_motion): don't access the
src_pickable when cloning from a pattern. Fixes runtime warnings.
2006-09-13 Sven Neumann <sven@gimp.org>
* app/tools/gimpmeasuretool.c
(gimp_measure_tool_active_modifier_key):
update status bar and optional dialog window.
2006-09-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimpmeasuretool.[ch]: implement active_modifier_key()
and give immediate feedback when Control (constrain to 15 degrees)
is toggled. Did a s/mtool/measure/g.
2006-09-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.c (gimp_tool_button_release): reset the
active_modifier_state *after* invoking the tool's button_release().
* app/tools/gimpblendtool.[ch]: implement active_modifier_key()
and give immediate feedback when Control (constrain to 15 degrees)
is toggled.
2006-09-12 Michael Natterer <mitch@gimp.org>
Added new tool API for modifier key events while the tool
is active and implement it in the rect select and crop tools.
Fixes bug #316156 and bug #355302.
* app/tools/gimptool.[ch]: added GimpTool::active_modifier_key()
and public function gimp_tool_set_active_motifier_state(). Remember
the active_state at button_press and reset it on button_release.
Ignore releases of modifiers that were pressed at button_press (but
only ignore them once).
* app/tools/tool_manager.[ch]: added wrapper
tool_manager_active_modifier_state_active().
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_events): return FALSE for all modifiers even
when mouse button 1 is pressed.
(gimp_display_shell_canvas_tool_events): when bouse button 1 is
pressed *and* the tool is active, dispatch the new active_modifier
events to tools.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]: implement active_modifier_key()
instead of modifier_key().
2006-09-12 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-selection.c (selection_undraw):
need
to restart the selection here. Should fix bug #355395 and bug
#355456.
2006-09-12 Sven Neumann <sven@gimp.org>
* app/tools/gimpbrushtool.c (gimp_brush_tool_cursor_update): if
the "bad" cursor modifier is set, show the cursor regardless of
the gimprc "show-paint-tool-cursor" setting.
2006-09-12 Michael Natterer <mitch@gimp.org>
* app/paint/gimpsourcecore.[ch]: made gimp_source_core_motion() a
public function for the time being, pending further refactoring.
* app/paint/gimpperspectiveclone.[ch]: derive from GimpClone and
remove everything that is already imeplemented in the parent
classes. Particullarly, removed motion() implementation in favor
of a get_source() implementation and simply use GimpClone's
motion(). Also refuse to work on indexed drawables.
* app/paint/gimpperspectivecloneoptions.[ch]: derive from
GimpCloneOptions and remove everything that is already done by the
parent classes.
* app/tools/gimpperspectiveclonetool.c: changed
accordingly. Doesn't derive from GimpSourceTool yet since there is
some virtual function refactoring in GimpSourceTool missing.
2006-09-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_get_index):
applied a modified patch from David Gowers that changes the search
behaviour to favour colors in the neighborhood of the selected color
(bug #355520).
2006-09-12 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcolortool.c (gimp_color_tool_button_press)
(gimp_color_tool_button_release): chain up to activate/halt the tool.
* app/tools/gimppainttool.c (gimp_paint_tool_button_press)
(gimp_paint_tool_button_release)
(gimp_paint_tool_motion): if the color tool is enabled, chain up
early and return. Fixes selection PAUSE/RESUME mismatch that was
hiding this display's selection forever when moving sample points.
2006-09-12 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimprectangletool.c
* app/tools/gimpselectiontool.c
* app/tools/gimpsourcetool.c
* app/tools/gimpvectortool.c: back out change committed on
2006-08-21 which passed modifier events to tools even while mouse1
was down. This generated way too much unexpected events that would
have to be special cased in all tools. Will implement an anternate
solution soon.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.[ch]: added a convenience function
to retrieve the translated procedure label.
* app/widgets/gimpfiledialog.c
* app/widgets/gimpimagepropview.c: use it.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-locale-domain.h: corrected comment.
* app/widgets/gimpimagepropview.[ch]: added file related info to
the Image Properties dialog as requested in bug #86276.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]: use "Solid color" as description for
GIMP_STROKE_STYLE_SOLID.
* app/widgets/gimpstrokeeditor.c: moved "style" control further up
to make it less ambiguous (bug #309740).
* app/dialogs/stroke-dialog.c (stroke_dialog_new): pass the context
to gimp_container_combo_box_new().
2006-09-11 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_ruler_button_press): don't just
unconditionally use the active tool for sample point moving if it
is a GimpColorTool, use it only if it is a GimpColorTool but *not*
a GimpPaintTool with color picking disabled. Fixed bug #355237.
2006-09-10 Michael Natterer <mitch@gimp.org>
* app/dialogs/file-save-dialog.c (file_save_dialog_check_uri):
after appending an extension, invoke "response" on the dialog and
bail out, so the file chooser re-runs the overwrite-confirm check.
2006-09-09 Michael Natterer <mitch@gimp.org>
* app/paint/gimpclone.c (gimp_clone_line_image): changed src_pickable
parameter to src_type.
(gimp_clone_motion): allow the passed srcPR to have alpha even if
the source pickable is flat. Pass the correct GimpImageType to
gimp_clone_line_image().
2006-09-09 Sven Neumann <sven@gimp.org>
* app/app_procs.[ch]
* app/main.c: initialize the error subsystem after the gimp
object
has been created.
* app/errors.[ch]: store a reference to the gimp object (eek)
and
use it to call gimp_gui_ungrab() before g_on_error_query().
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: added gimp_gui_ungrab().
2006-09-08 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: use coordinates from
the current device when starting to scroll. Grab the keyboard
and
pointer when panning with the space bar.