2006-08-04 Raphael Quinet <raphael@gimp.org>
* tools/pdbgen/stddefs.pdb
* tools/pdbgen/pdb/convert.pdb: Attributed custom dither code to
David Gowers and updated my e-mail address for the PDB.
* app/pdb/convert_cmds.c
* app/pdb/undo_cmds.c
* libgimp/gimpconvert_pdb.c: Regenerated.
2006-08-04 Raphael Quinet <raphael@gimp.org>
* app/core/gimpimage-convert-data.h
* app/core/gimpimage-convert.c
* app/core/gimpimage-convert.h
* tools/pdbgen/pdb/convert.pdb: Applied slightly modified patch
from David Gowers allowing a custom dither matrix to be used when
converting images to indexed mode. Fixes bug #136604.
* app/pdb/convert_cmds.c
* libgimp/gimpconvert_pdb.h
* libgimp/gimpconvert_pdb.c: Regenerated.
* app/tools/gimpselectiontool.c: N_() should have been _().
2006-08-04 Michael Natterer <mitch@gimp.org>
* app/actions/image-actions.c: cosmetics.
* app/core/gimpimage.c: factor common code out to new utility
function gimp_image_get_item_by_tattoo(), minor cleanups.
2006-08-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c (gimp_channel_bounds)
* app/core/gimpdrawable.c (gimp_drawable_mask_bounds)
(gimp_drawable_mask_intersect): allow to pass in NULL return
locations for any of the boundary return values.
* app/tools/gimpselectiontool.c (gimp_selection_tool_oper_update):
don't require hovering the selection for moving the selected
pixels, since this can be distinguished by looking at the
modifiers now. Check for the presence of any selected pixels
instead. Fixes bug #349341.
2006-08-03 Raphael Quinet <raphael@gimp.org>
* app/tools/gimpselectiontool.c (gimp_selection_tool_oper_update):
use gimp_suggest_modifiers().
* app/tools/gimpclonetool.c (gimp_clone_tool_oper_update): suggest
ctrl only when cloning from the image, not from a pattern
* app/tools/gimpsmudgetool.c (gimp_smudge_tool_init): don't
suggest Ctrl for that tool, even if it can be used.
2006-08-02 Raphael Quinet <raphael@gimp.org>
* app/tools/gimppainttool.c (gimp_paint_tool_oper_update): Allow
some paint tools to not suggest using the Ctrl modifier.
* app/tools/gimpvectortool.c (gimp_vector_tool_status_update):
slightly more elegant way to free the status string.
2006-08-02 Raphael Quinet <raphael@gimp.org>
* app/widgets/gimpwidgets-utils.h
* app/widgets/gimpwidgets-utils.c (gimp_suggest_modifiers):
New utility function to build status bar messages while allowing
dynamic names for the modifiers.
* app/tools/gimppainttool.h
* app/tools/gimppainttool.c: Added new members to the class in
order to allow paint tools to set different status messages for
the normal case or when drawing a line.
* app/tools/gimpclonetool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpsmudgetool.c: Use the new functions to set
appropriate messages in the status bar. Still work in progress,
partial fix for bug #124040.
* app/tools/gimpvectortool.c: Use gimp_suggest_modifiers().
2006-07-31 Karine Delvare <edhel@gimp.org>
* app/tools/gimprectangletool.c: Applied patch from Karl Günter
Wünsch which Corrects the asyncronicity between mouse cursor and
selected edge on egde resizing. Partial fix for bug #349337.
2006-07-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimpselectionoptions.c (gimp_selection_options_gui):
use g_type_is_a() where possible instead of checking individual
tool types separately.
2006-07-31 Michael Natterer <mitch@gimp.org>
* app/tools/Makefile.am
* app/tools/gimpregionselecttool.[ch]: new abstract base class
which does about the same as GimpFuzyySelectTool did, apart from
creating the mask of the selected region.
* app/tools/gimpbycolorselecttool.[ch]
* app/tools/gimpfuzzyselecttool.[ch]: removed all code and only
implement GimpRegionSelectTool::get_mask(). Fuzzy and by-color
select behave exactly the same now. Fixes bug #126748.
2006-07-30 Raphael Quinet <raphael@gimp.org>
* app/tools/gimppainttool.c
* app/tools/gimpvectortool.c
* app/tools/gimpselectiontool.c: Update the status bar messages.
Work in progress, partial fix for bug #124040.
2006-07-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpbycolorselecttool.c: removed GObject::dispose()
implementation (no need to disconnect from a signal connected with
g_signal_connect_object). Code cleanup in some functions.
2006-07-28 Simon Budig <simon@gimp.org>
* libgimp/gimp.def: added the new symbol
* tools/pdbgen/pdb/vectors.pdb: cosmetics.
* app/pdb/vectors_cmds.c
* libgimp/gimpvectors_pdb.[ch]: regenerated.
2006-07-26 Michael Natterer <mitch@gimp.org>
* app/actions/select-commands.c (select_shrink_callback): the
"shrink from border" toggle value needs to be negated for being
used as internal "edge lock" parameter. Fixes bug #348839.
2006-07-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): removed code that was
special-casing RTL since gtk_tree_view_get_path_at_pos() takes
this correctly into account now. Fixes bug #348347.
* app/widgets/gimpdockable.c (gimp_dockable_size_allocate): fix
menu button positioning for RTL.
2006-07-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimplevelstool.c (levels_input_area_event): Applied
patch from Wim Lewis which fixes major uglyness (the code was
rounding using sprintf() and atof() -- puke). Fixes bug #348317.
2006-07-19 Sven Neumann <sven@gimp.org>
Make message dialogs transient for the progress window.
Addresses
bug #347214.
* app/core/gimp-gui.[ch]: added a progress parameter to
gimp_message(). Let gimp_message() deal with optionally
delegating the message to gimp_progress_message().
* app/errors.c: changed accordingly.
* app/core/gimpprogress.[ch] (gimp_progress_message): return a
boolean indicating whether the message was handled.
* app/gui/Makefile.am
* app/gui/gui-message.[ch]
* app/gui/gui-vtable.c: moved message handling to a new file.
Only
use the global error dialog for messages without a progress.
Otherwise attach an error dialog to the progress and try to make
it transient to the progress window.
* tools/pdbgen/pdb/message.pdb:
* app/plug-in/gimpplugin-progress.[ch]: don't delegate messages
to
the progress interface, this is handled by gimp_message() now.
* app/pdb/message_cmds.c: regenerated.
* app/plug-in/gimpplugin.c
* app/actions/documents-commands.c: formatting.
2006-07-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): use
file_utils_uri_display_basename() instead of g_path_get_basename()
to get an uri's basename. Fixes bug #347544.
2006-07-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_get_index,
gimp_palette_editor_set_index, gimp_palette_editor_max_index):
fixed potential crash based on a patch from David Gowers (bug #347593).
2006-07-18 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/image.pdb: fixed docs for gimp-image-add-layer
as pointed out in bug #347861.
* app/pdb/image_cmds.c
* libgimp/gimpimage_pdb.c: regenerated.
2006-07-14 Mukund Sivaraman <muks@mukund.org>
* app/config/gimpbaseconfig.c: if possible, detect the number of
online CPUs in the system and use that instead of the default value
of 2 for the number of pixel processors. Also made the default value
1 where it's not possible to detect the number of CPUs. Uses twice
the number for development versions.
2006-07-13 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.c (gimp_statusbar_set_cursor): set the
sensitivity of the cursor label before converting the coordinates
to the display unit (bug #347339).
2006-07-11 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-merge.[ch]: made gimp_image_merge_layers()
a
static function, it isn't used outside this file.
2006-07-10 Sven Neumann <sven@gimp.org>
* app/xcf/xcf-load.c: use a signed variable when attempting to
skip over unknown properties and check for EOF. Fixes bug #345802.
* app/xcf/xcf-read.c: cleanup, nothing really changed
2006-07-07 Michael Natterer <mitch@gimp.org>
* app/dialogs/preferences-dialog.c (prefs_dialog_new): changed
"display" to "image window" in user visible string.
2006-07-07 Sven Neumann <sven@gimp.org>
* INSTALL
* configure.in
* app/gui/gui.c: relaxed required version for gtk+ to 2.8.17 and
pango to 1.12.2 so that it compiles on Ubuntu (Dapper Drake).
2006-07-07 Sven Neumann <sven@gimp.org>
Use Ctrl-P as the default keyboard shortcut for Print (bug #302870):
* app/actions/dialogs-actions.c: removed Ctrl-P shortcut from
Palettes dialog.
* etc/Makefile.am
* etc/menurc: added a default menurc file that binds Ctrl-P to
file-print-gtk.
* app/core/gimp-user-install.c: install the default menurc.
2006-07-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcoloreditor.c
* libgimpwidgets/gimpcolorselection.c: in the tooltip for the hex
entry, mention that it also accepts CSS color names.
* libgimpwidgets/gimpwidgets.c (gimp_scale_entry_new_internal):
use an invisible event box for the tooltip.
2006-07-06 Sven Neumann <sven@gimp.org>
* app/xcf/xcf-save.c (xcf_save_image_props): removed redundant
call to xcf_save_prop() for PROP_PARASITES. Spotted by Henning
Makholm (bug #346754).
2006-07-06 Sven Neumann <sven@gimp.org>
* app/xcf/xcf-load.c (xcf_load_vector): applied a patch from
Henning Makholm that introduces a sanity check on the number of
axes (bug #346742).
2006-07-03 Michael Natterer <mitch@gimp.org>
* app/gui/splash.[ch]: added "be_verbose" parameters and be
verbose about which splash image is actually loaded.
* app/gui/gui.c (gui_init): pass gimp->be_verbose to
splash_create().
2006-06-30 Simon Budig <simon@gimp.org>
* app/widgets/gimpstrokeeditor.c: unref the old StrokeOptions
when new ones get set as a property. Spotted by Henk Boom.
2006-06-29 Sven Neumann <sven@gimp.org>
* app/display/Makefile.am
* app/display/gimpdisplayshell-progress.[ch]: new files,
implementing the GimpProgress interface by delegation to
GimpStatusbar.
* app/display/gimpdisplayshell.c (G_DEFINE_TYPE): call
gimp_display_shell_progress_iface_init().
* app/display/gimpdisplay.c: delegate progress calls to
GimpDisplayShell instead of shell->statusbar.
2006-06-28 Sven Neumann <sven@gimp.org>
* app/menus/plug-in-menus.c (plug_in_menus_setup): generate unique
keys so that two procedures can be installed to the same menu entry.
Addresses bug #346001.
2006-06-28 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokedesc.[ch]: removed broken implementation of
gimp_stroke_desc_duplicate() and reimplement it by overriding
the
duplicate() method of the GimpConfig interface.
2006-06-27 Sven Neumann <sven@gimp.org>
Applied patch from Zbigniew Chyla (bug 345982):
* app/tools/gimptransformtool.[ch]: added undo_desc field for
storing undo string and use that, not tool_info->blurb.
* app/tools/gimpfliptool.c
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c: set undo_desc.
2006-06-27 Sven Neumann <sven@gimp.org>
* app/core/gimpunit.c: applied patch from Zbigniew Chyla that
adds
translation context to some problematic strings (bug #345982).
2006-06-27 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c
(gimp_transform_tool_notify_type):
do not call bounds() and recalc() with a NULL display. Added
sanity checks for the display parameter to both functions.
Fixes bug #345791.
2006-06-27 Sven Neumann <sven@gimp.org>
Based on a patch from Zbigniew Chyla:
* app/core/gimpunit.c (_gimp_unit_get_singular,
_gimp_unit_get_plural):
don't call gettext() on strings returned by
_gimp_unit_get_user_unit().
2006-06-27 Sven Neumann <sven@gimp.org>
Applied patch from Zbigniew Chyla:
* app/gimp-intl.h
* libgimp/stdplugins-intl.h: removed most content and include
<glib/gi18n.h> instead.
* libgimp/libgimp-intl.h: define ngettext() macro as wrapper
around
dngettext().
2006-06-27 Sven Neumann <sven@gimp.org>
I18n improvements based on a patch from Zbigniew Chyla:
* app/main.c:
* modules/controller_midi.c
* plug-ins/script-fu/scripts/guides-new.scm: marked strings for
translation.
* app/widgets/gimpdock.c
* libgimpwidgets/gimppageselector.c
* plug-ins/common/plugin-browser.c: use ngettext() for plural
forms.
2006-06-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c: (gimp_transform_tool_control):
always upchain.
(gimp_transform_tool_cursor_update): use the small crosshair
instead of GIMP_CURSOR_MOUSE as default cursor to avoid hotspot
jumping.
(gimp_transform_tool_doit): call prepare() after bounds().
2006-06-22 Michael Natterer <mitch@gimp.org>
* app/dialogs/preferences-dialog.c (prefs_dialog_new): pack the
page icon with 6px padding too, just as the page label.
2006-06-21 Sven Neumann <sven@gimp.org>
* app/tools/gimp-tools.c (gimp_tools_restore): don't attempt to
reorder to a position >= container->num_children.
* app/tools/gimprectangleselecttool.c: if there is a floating selection
and mouse is clicked outside it without movement, anchor it.
* app/tools/gimprectangletool.c: corner handle area was scaling
improperly when image was zoomed.
2006-06-20 Sven Neumann <sven@gimp.org>
* app/dialogs/tips-dialog.c: use GIMP_STOCK_INFO for the tips
dialog.
* data/images/Makefile.am: do not install unused wilber icons.
2006-06-20 Sven Neumann <sven@gimp.org>
* themes/Default/images/preferences/Makefile.am: install icons at
22x22 pixel size.
* app/dialogs/preferences-dialog.c (prefs_notebook_append_page):
try to load icons at 22x22 instead of scaling down the large one.
2006-06-20 Sven Neumann <sven@gimp.org>
* app/dialogs/about-dialog.c (about_dialog_create): only unref the
logo pixmap if it is not NULL; loading it may fail.
2006-06-20 Sven Neumann <sven@gimp.org>
* app/tools/tools-enums.h: added TRANSFORM_HANDLE_NONE (will
get rid of TRANSFORM_CREATING later).
* app/tools/gimptransformtool.[ch]: added member "use_handles" and
default to FALSE for all "use_foo" variables. Only deal with the
handles the specific transform tool asks for. Set cursors
according to the active handle.
* app/tools/gimpfliptool.c
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c: changed accordingly.
2006-06-19 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.c (DEFAULT_WEB_BROWSER): changed to
"firefox", most distributions seem to have renamed the binary.
2006-06-19 Sven Neumann <sven@gimp.org>
* data/images/gimp-logo.png: replaced with the application logo
(bug #343948).
* data/images/gimp2_2_logo.png: the old logo, as a reference.
* app/dialogs/about-dialog.c: let GtkAboutDialog deal with the logo.
Moved the text animation below the copyright notice and draw it on
the window background.
2006-06-18 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]: added virtual functions
GimpTool::has_display(), which returns whether any tool subclass
keeps a pointer to the passed display; and GimpTool::has_image()
which returns a display based on a passed image, or NULL if no
display matches. Added default implementation of
GimpTool::control() which sets tool->display to NULL on HALT.
* app/tools/gimpclonetool.c
* app/tools/gimpdrawtool.c: implement both functions.
* app/tools/gimpclonetool.c: removed weak pointer hacks that are
no longer needed now (and were incomplete anyway).
* app/tools/tool_manager.c (tool_manager_select_tool)
(tool_manager_control_active)
(tool_manager_image_clean_dirty): use the new functions instead of
peeking around in tool subclasses (and forgetting tools that may
have display pointers, like the clone tool)
* app/display/gimpdisplay.c (gimp_display_delete): removed
fiddling with tool internals here too, control(HALT) on the tool
is now sufficient to remove any reference to the closed display.
2006-06-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): put
the event box' event window above its children because now that it
is input-only, it won't receive events that are not in its
childrens' event mask if the event window is below.
Fixes bug #345137.
2006-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image):
always call gtk_file_chooser_set_current_folder_uri() and
gtk_file_chooser_set_current_name() instead of
gtk_file_chooser_set_uri(), since the latter only works if the
file exists and its return value is bogus. Fixes bug #343284.
2006-06-16 Michael Natterer <mitch@gimp.org>
Allow plug-ins to register in <Layers>, <Channels>, <Vectors> and
<ColormapEditor>:
* app/pdb/gimppluginprocedure.c
(gimp_plug_in_procedure_add_menu_path): added the argument type
checks for the new locations. Factored out duplicated code.
* app/menus/menus.c (menus_init): add the "plug-in" action
group to the resp. UI managers.
* app/menus/plug-in-menus.c (plug_in_menus_menu_path_added):
support them here too.
* app/widgets/gimpimageeditor.[ch]
* app/widgets/gimpitemtreeview.[ch]: added get_image() functions.
* app/actions/plug-in-commands.c: added new utility functions
which collect plug-in arguments from GimpImageEditor and
GimpItemTreeView widgets.
* menus/channels-menu.xml
* menus/colormap-editor-menu.xml
* menus/layers-menu.xml
* menus/vectors-menu.xml: added separators.
* menus/image-menu.xml.in: added a "Colormap" placeholder in
Colors/Map
* plug-ins/common/colormap-remap.c (query): register a menu
entry in <ColormapEditor> and moved the existing one to the
"Colormap" placeholder. Also register an icon to make this
menu item clearly distinct from the others in that menu.
Unrelated:
* plug-ins/common/colormap-remap.c (run): cleaned up quite a
bit. Fixed last-vals code and simplified map handling.
(remap_swap): removed, folded into run().
(remap_dialog): use the passed map to initialize the dialog so it
starts with the last-vals. Tweaked layout to have 16 columns
and simplified cell renderer creation.
2006-06-16 Manish Singh <yosh@gimp.org>
* app/errors.c
* app/main.c
* app/file/gimprecentlist.c
* libgimpbase/gimpsignal.c
* libgimp/gimp.c
* modules/controller_midi.c
* plug-ins/common/gqbist.c: use _GNU_SOURCE instead of the other
_FOO_SOURCE variables to support -ansi -pedantic on glibc systems,
since anything else breaks compilation of otherwise working code.
Fixes bug #344203.
2006-06-16 Sven Neumann <neumann@jpk.com>
* app/pdb/gimppluginprocedure.c (gimp_plug_in_procedure_get_label):
* plug-ins/script-fu/script-fu-interface.c (script_fu_interface):
when cutting away ellipsis, also look for U+2026 HORIZONTAL ELLIPSIS.
2006-06-16 Sven Neumann <sven@gimp.org>
* app/core/gimplist.c (gimp_list_new, gimp_list_new_weak): for
debugging purposes, set the children type as the name of the list.
2006-06-16 Sven Neumann <sven@gimp.org>
* app/actions/image-commands.c (image_convert_cmd_callback):
always call gimp_image_flush() so that the image mode radio
buttons reflect the image state. Attach the indexed conversion
dialog to the shell to avoid multiple instances.
2006-06-15 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-convert.c (gimp_image_convert): remove
duplicate colors for all palette types (except for MAKE_PALETTE
since there shouldn't be any unused colors then). That's what
the PDB documentation claims the function would be doing.
* app/dialogs/convert-dialog.c: allow use of the "Remove unused
colors" toggle for all but the optimized palette.
2006-06-15 Sven Neumann <sven@gimp.org>
* app/actions/image-actions.c (image_actions_update): improved
code to set the image mode radio actions; set their sensitivity
also.
* app/actions/image-commands.c
(image_configure_grid_cmd_callback):
fixed cast to silence compiler warning.
2006-06-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): set
the event box' window invisible so we get the right background
with all themes.
2006-06-14 Sven Neumann <sven@gimp.org>
* app/actions/image-actions.c: use radio items for the Image mode
as suggested in bug #344871.
* app/actions/image-commands.[ch] (image_convert_cmd_callback):
changed accordingly.
2006-06-14 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/[many].pdb: in help texts, refer to other
procedures using_c_syntax(). This way gtk-doc can cross-reference
them correctly in libgimp, and app.pl will transform them
'to-canonical-names' for PDB registering.
* app/pdb/[many]_cmds.c
* libgimp/[many]_pdb.c: regenerated.
2006-06-13 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpenvirontable.c (gimp_environ_table_populate):
Free the string vector returned by g_listenv().
* libgimpwidgets/gimpwidgets.def: Remove deprecated
gimp_prop_file_entry_new.
Finally implemented the suggestion in bug #144854, of
"strong" undo/redo commands that continue undoing so long
as they only encounter visibility changes.
* app/actions/edit-actions.c
* app/actions/edit-commands.c
* app/actions/edit-commands.h: added "strong undo"
and "strong redo" commands/actions.
* app/core/gimpimage-undo.[ch]: added functions
gimp_image_strong_undo() and gimp_image_strong_redo().
* app/core/gimpundo.[ch]: added utility function
gimp_undo_is_weak().
* app/widgets/gimphelp-ids.h:added id's.
* menus/image-menu.xml.in: added to edit menu,
bound to C-S-z and C-S-y.
This will no doubt need tweaking, but I will consider it
to fix bug #144854.
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.c: fix three issues identified by
jimmac: (1) when shift or ctrl are pressed, should start a new
rect regardless of pointer loc; (2) zoom was incorrectly affecting
width of sensitive areas; (3) must emit "rectangle-changed" after
keyboard-driven rectangle movement.
2006-06-12 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpenvirontable.c (gimp_environ_table_populate):
Use g_listenv() and g_getenv() instead of looking at environ
directly. Fixes breakage on Win32 when any (!) environment
variable has a non-ASCII value, as environ is in system codepage,
while we want UTF-8.
* app/tools/gimprectangleselecttool.c: handle situations
where the user "flips" the rectangle while modifying it.
This solution is not perfect, but better than before.
* app/tools/gimprectangletool.c: remove unneeded variable.
Following up on previous commit, with assist from yosh.
* app/tools/gimpnewrectselectoptions.[ch]
* app/tools/gimpnewrectselecttool.[ch]: removed
* app/tools/gimprectangleselectoptions.[ch]: magic-moved
from gimpnewrectselectoptions.[ch]
* app/tools/gimprectangleselecttool.[ch]: magic-moved
from gimpnewrectselecttool.[ch]
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpellipseselecttool.h
* app/tools/gimpselectionoptions.c: change file names to
refer to moved files.
Here is the big change-over, finally.
* app/tools/gimprectselecttool.[ch]: removed.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpellipseselecttool.h
* app/tools/gimpnewrectselectoptions.c
* app/tools/gimpnewrectselectoptions.h
* app/tools/gimpnewrectselecttool.c
* app/tools/gimpnewrectselecttool.h
* app/tools/gimpselectionoptions.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: get rid of the "new" in everything
referring to the new rect select tool, except filenames. This
will wait for yosh to perform cvs-magic-foo.
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangletool.[ch]: fix a couple of minor
problems that popped up during testing.
2006-06-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): simply
use gimp_button_new() instead of g_object_new(). Don't set the
"use-stock" property and reordered some code. Keeps GtkButton from
thinking that is has constructed the button's child itself and
thus makes the function more rubust against changes in GtkButton.
* app/tools/gimpcroptool.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimprectangletool.[ch]: code cleanups
* app/tools/gimpnewrectselecttool.[ch]: try to do what
the user intuitively expects when deciding which selection
operation to perform. When modifying an existing rectangle,
always use the operation with which it was created.
* app/tools/gimpcropoptions.c: clean up code.
* app/tools/gimpnewrectselecttool.c: really remove some
commented-out code.
* app/tools/gimprectangleoptions.[ch]: add "aspect-square"
and "controls-expanded" properties. Show "Make square" and
"Expand from center" in options so that we don't need modifier
keys to do this. Place numerical entries inside an expander
and hide them by default.
* app/core/core-enums.[ch]: add GimpAlignReferenceType enum
* app/core/gimpimage-arrange.c: support using a channel as
reference for alignment.
* app/tools/gimpaligntool.[ch]: support aligning with a list item,
image, selection, active layer, active channel, or active path.
Now similar in form and function to Inkscape Align/Distribute
dialog.
* app/core/core-enums.[ch]: add GIMP_ARRANGE_FOO values
to GimpAlignmentType, and change CENTER to HCENTER,
MIDDLE to VCENTER.
* app/core/gimpimage-arrange.c: extensively rewritten
to handle arrangement of objects, and to do the
required sorting of lists by offset.
* app/tools/gimpaligntool.[ch]: added ability to arrange
groups of layers etc with constant spacing. Also try
to change things so that the tool aligns with the
object that users expect intuitively.
* app/core/gimpimage-arrange.[ch]: added, utility function for
aligning and arranging things in an image.
* app/core/gimpitem-align.[ch}: removed, no longer needed.
* app/core/gimpimage-item-list.[ch] (gimp_image_item_list_align):
removed this function, no longer used.
* app/core/Makefile.am: changes described above.
* app/core/gimpguide.c: remove bit of cruft left accidentally.
* app/tools/gimpalignoptions.[ch]: remove "alignment type"
option, not needed at this point.
* app/tools/gimpaligntool.[ch]: numerous changes, most
importantly ability to align guides, and use them for
alignment. More work coming on this tool.
* app/core/gimpguide.[ch]: add "removed" signal and associated
paraphernalia.
* app/core/gimpimage-guides.c (gimp_image_remove_guide): call
gimp_guide_removed() to cause signal emission.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpguide.c: removed unused includes and property
blurbs;
fixed registration of the "id" property, it is not a GIMP_CONFIG
property.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpguide.[ch]: added a setter for "orientation".
* app/core/gimpimage-resize.c (gimp_image_resize_with_layers):
removed unused variable; use for() loops to iterate over guides
and sample points.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/core/gimpguide.[ch]: derive from GObject, we don't need any
GimpObject functionality here. Declare "orientation" and "id"
properties CONSTRUCT_ONLY, added a gimp_guide_new() function and
emit notify on position changes.
* app/core/gimpimage-guides.c: use gimp_guide_new() to instantiate
guides.
* app/core/gimpimage.c (gimp_image_get_memsize): formatting.
2006-06-07 Michael Natterer <mitch@gimp.org>
* app/actions/context-commands.c: cosmetic cleanup.
* app/core/core-types.h: move the GimpGuide typedef to the
"misc objects" section.
* app/tools/gimpforegroundselecttool.c: cosmetic cleanup.
* app/tools/gimpmeasuretool.c (gimp_measure_tool_cursor_update):
use the new corner and side cursors instead of using X cursors.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): renamed local variable
"update_cursor" to "update_sw_cursor", it has confused me too
often...
* app/core/gimpguide.c
* app/core/gimpguide.h: new files, implementing GuideGimp as a GimpObject
* app/core/Makefile.am: add new files as sources
* app/core/gimpimage-guides.h
* app/core/gimpimage-guides.c: use the new object instead of defining
GimpGuide here as a struct.
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-snap.c
* app/core/gimpimage-undo-push.c
* app/core/gimpimage.c
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell.c
* app/pdb/guides_cmds.c
* app/tools/gimpmovetool.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/guides.pdb: include "core/gimpguide.h", and use
g_object_ref/unref instead of gimp_image_guide_ref/unref.
2006-06-07 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_initialize):
initialize guide with the option's guide value.
(gimp_rectangle_tool_notify_guide): always sync with the
option's
guide value, even when tool->display is NULL.
2006-06-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpnewrectselecttool.c
(gimp_new_rect_select_tool_cancel)
(gimp_new_rect_select_tool_rectangle_changed): flush the image
after changing it.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_halt): don't
flush it here.
2006-06-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimpdrawtool.c
(gimp_draw_tool_draw_rectangle_by_anchor)
(gimp_draw_tool_draw_arc_by_anchor): subtract 1 from outlined
width/height instead of adding 1 to filled.
2006-06-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw): use
GimpDrawTool API, not GimpCanvas one. Some cleanup.
2006-06-05 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs.[ch]
* app/core/gimpchannel.[ch]
* app/core/gimpselection.c:
* app/actions/select-commands.c: further cleaned up the patch
from
bug #88633.
2006-06-05 Michael Natterer <mitch@gimp.org>
Applied slightly modified patch from saulgoode which allows to
border a selection without feathering. Fixes bug #88633.
* app/paint-funcs/paint-funcs.[ch] (border_region): added boolean
"feather_border" parameter.
* app/core/gimpchannel.[ch]: GimpChannel::border(): ditto.
* app/core/gimpselection.c: changed accordingly.
* app/actions/select-commands.c: added a toggle to the border
dialog and pass it to gimp_channel_border().
* tools/pdbgen/pdb/selection.pdb: pass TRUE here.
* app/pdb/selection_cmds.c: regenerated.
2006-06-05 Michael Natterer <mitch@gimp.org>
* app/tools/tools-enums.[ch]: removed enum GimpRectangleMode.
* app/tools/gimprectangletool.[ch]: added virtual function
GimpRectangleTool::cancel(). Added public wrapper for it. Removed
coordinates paramaters from gimp_rectangle_tool_execute(). Removed
gimp_rectangle_tool_response(), need to call either execute() or
cancel() now. Added gimp_rectangle_tool_halt() which disconnects
the tool from the display without canceling it.
* app/tools/gimpcroptool.c: changed accordingly.
* app/tools/gimpnewrectselecttool.c: moved the rectangle creating
code from the execute() implementation to the new function
gimp_new_rect_select_tool_rect_select(). Added cancel()
implementation which pops the remembered undo step if
appropriate. Call the new rect_select() wrapper from
rectangle_changed() so we don't create the rectangle on both
button_release *and* execute(), breaking modifiers and stuff.
2006-06-05 Sven Neumann <sven@gimp.org>
* app/gui/splash.c (splash_create): connect to "expose-event"
with
G_SIGNAL_CONNECT_AFTER so that the text is rendered on the
image.
2006-06-05 Sven Neumann <sven@gimp.org>
* app/gui/splash.c: added back support for animated splashes but
continue to use the optimized code for static splash images.
2006-06-05 Sven Neumann <sven@gimp.org>
* app/core/gimp-user-install.[ch]
* app/app_procs.c: always migrate old user settings during user
installation.
* app/dialogs/user-install-dialog.[ch]: don't ask questions and
only show the dialog in case of an error.
2006-06-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimpscaletool.c (gimp_scale_tool_size_notify):
strcmp() the property name, so we don't change the size on random
property changes. Fixes the tool reverting to the previous
width/height on each new transform (destroying the previous size
box causes it to emit stuff like "notify::visible").
(gimp_scale_tool_prepare): additionally, disconnect from the size
box before destroying it (paranoia).
2006-06-04 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimppropwidgets.c
(gimp_prop_file_chooser_button_callback): fix typo so the "notify"
signal doesn't stay blocked.
* app/dialogs/preferences-dialog.c: added "Reset" button which
resets all prefs values to their defaults. Fixes bug #342112.
* app/tools/gimprectangletool.[ch]: add new signal
"rectangle-changed" and method rectangle_changed.
Emit them on button release and when dimensions are
changed in controls.
* app/tools/gimpnewrectselecttool.c: use rectangle_changed
method to change selection, undoing previous change if
necessary.
2006-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): changed
mnemonic from "_Preview" to "Pr_eview" because the GTK+ HEAD
file chooser has a "_Places" mnemonic now.
* app/widgets/gimpcomponenteditor.c: minor cleanup.
2006-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_set_color): use
gimp_rgba_distance() instead of gimp_rgb_distance(), so alpha
changes update the color frame too.
2006-06-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: renamed
gimp_image_coords_in_active_drawable() to
gimp_image_coords_in_active_pickable() and added boolean
"sample_merged" and "selected_only" parameters. Use floor()
instead of ROUND(), we want to round to the actual pixel, not to
the nearest pixel boundary.
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimptransformtool.c: changed accordingly. Removed
quite some duplicated code which checked sample_merged and the
mask value at the cursor location.
* app/tools/gimpbycolorselecttool.c: use the hand tool cursor,
there's also a hand in the toolbox icon. Fixed cursor_update()
function to set the bad modifier when there is no pickable pixel
at the cursor loction.
* app/tools/gimpfuzzyselecttool.c: added cursor_update()
implementation which does the same as by_color_select's one.
* app/tools/gimpselectiontool.c
(gimp_selection_tool_cursor_update): don't override the bad
modifier which was set by a subclass' cursor_update().
2006-06-03 Michael Natterer <mitch@gimp.org>
* app/tools/gimpnewrectselecttool.c
(gimp_new_rect_select_tool_button_press): check for function ==
INACTIVE, not CREATING || EXECUTING when checking whether to start
moving.
* app/tools/gimpselectiontool.c (gimp_selection_tool_oper_update):
changed modifiers so alt+ctrl does cut+float+move and alt+shift
does copy+float+move.
* app/tools/gimpnewrectselecttool.[ch]: use RECT_INACTIVE state,
(but doesn't seem to do anything). More importantly, change
logic so that button_release executes the tool, and button
release undo's if appropriate.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_button_press):
if function is RECT_CREATING, start a new rectangle.
* app/tools/gimpnewrectselecttool.c: remove g_printerr statement that
mitch added for debugging.
2006-06-02 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-corner-bottom-left.png
* cursors/cursor-corner-bottom-right.png
* cursors/cursor-corner-top-left.png
* cursors/cursor-corner-top-right.png
* cursors/cursor-side-bottom.png
* cursors/cursor-side-left.png
* cursors/cursor-side-right.png
* cursors/cursor-side-top.png
* cursors/xbm/cursor-corner-bottom-left-mask.xbm
* cursors/xbm/cursor-corner-bottom-left.xbm
* cursors/xbm/cursor-corner-bottom-right-mask.xbm
* cursors/xbm/cursor-corner-bottom-right.xbm
* cursors/xbm/cursor-corner-top-left-mask.xbm
* cursors/xbm/cursor-corner-top-left.xbm
* cursors/xbm/cursor-corner-top-right-mask.xbm
* cursors/xbm/cursor-corner-top-right.xbm
* cursors/xbm/cursor-side-bottom-mask.xbm
* cursors/xbm/cursor-side-bottom.xbm
* cursors/xbm/cursor-side-left-mask.xbm
* cursors/xbm/cursor-side-left.xbm
* cursors/xbm/cursor-side-right-mask.xbm
* cursors/xbm/cursor-side-right.xbm
* cursors/xbm/cursor-side-top-mask.xbm
* cursors/xbm/cursor-side-top.xbm: new cursors for edge and corner
resizing. They perfectly align with the small crosshair and can be
used together with tool cursors and cursor modifiers.
* cursors/gimp-tool-cursors.xcf: add them here too.
* app/widgets/widgets-enums.h: add them to the GimpCursorType enum.
* app/widgets/gimpcursor.c: add them here too.
* app/display/gimpdisplayshell-cursor.c: treat them like the small
crosshair (don't replace them by the small crosshair but use them
as-is). Also allow the bad modifier with the large crosshair.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_cursor_update): use the new cursors. Don't
call gimp_tool_set_cursor() here.
(gimp_rectangle_tool_response): reset "function" to RECT_CREATING
when resetting the tool.
* app/tools/gimpselectiontool.[ch] (struct GimpSelectionTool):
added boolean member "allow_move" which defalts to TRUE.
(gimp_selection_tool_oper_update): don't move masks, floating
selections or anything when "allow_move" is FALSE. Changed
behavior of click inside a selection to simply create a new
selection, need to press alt+shift now to drag-float the
selection. Please test this, it's apretty fundamental change!
(gimp_selection_tool_cursor_update): use the tool's configured
cursor instead of always GIMP_CURSOR_MOUSE, so this function can
be called after gimp_rectangle_tool_cursor_update() to add the
plus, minus etc. modifiers.
* app/tools/gimpnewrectselecttool.c: implement
GimpTool::cursor_update() and call
gimp_rectangle_tool_cursor_update() from there. Chain up to get
the plus, minus etc. modifiers added.
Re-enble selection moving:
(gimp_new_rect_select_tool_oper_update): set GimpSelectionTool's
"allow_move" to FALSE unless the rectangle tool is in an idle
state.
(gimp_new_rect_select_tool_button_press): allow a selection moving
to be started if the rectangle tool is idle. Fall back to starting
a rect select if gimp_selection_tool_start_edit() returned FALSE.
2006-06-02 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.c (gimp_composite_use_cpu_accel):
need to test for GIMP_COMPOSITE_OPTION_NOEXTENSIONS.
* libgimp/gimp.c (gimp_config): call gimp_set_use_cpu_accel() from
here, not in gimp_main().
* plug-ins/common/sel_gauss.c: applied patch from Loren Merritt
that adds MMX code to boost the plug-in speed (bug #342860).
2006-06-02 Sven Neumann <sven@gimp.org>
Moved the CPU detection code to libgimpbase (see bug #342860):
* app/base/Makefile.am
* app/base/cpu-accel.[ch]
* app/base/test-cpu-accel.c: removed here...
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimpcpuaccel.[ch]
* libgimpbase/test-cpu-accel.c: ... and added here again with
some API changes.
* app/composite/Makefile.am
* app/composite/make-installer.py: changed accordingly.
* app/composite/gimp-composite-*-installer.c: regenerated.
* libgimp/gimp.c (gimp_main): call gimp_set_use_cpu_accel().
2006-06-01 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/modifier-bad.png
* cursors/xbm/modifier-bad-mask.xbm
* cursors/xbm/modifier-bad.xbm: new "bad" cursor
modifier. Replaces the "bad" cursor.
* cursors/gimp-tool-cursors.xcf: added it here too.
* app/widgets/widgets-enums.h: added GIMP_CURSOR_MODIFIER_BAD.
* app/widgets/gimpcursor.c: add the bad modifier. Leave the bad
cursor there for now.
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: use the modifier instead of the
cursor. Fixes hotspot jumping when switching between normal and
bad cursors. The changed cursor_update() functions even make more
sense IMHO. Fixes bug #158407.
2006-06-01 Sven Neumann <sven@gimp.org>
Added basic framework for plug-ins to access the use_cpu_accel
configuration (bug #342860):
* app/composite/gimp-composite.[ch]: added new function
gimp_composite_use_cpu_accel().
* libgimpbase/gimpprotocol.[ch]: added use_cpu_accel to the config
message.
* app/plug-in/gimppluginmanager-call.c: pass the return value of
gimp_composite_use_cpu_accel() for config.use_cpu_accel.
* libgimp/gimp.[ch]: make the config value accessible by means of
a new function gimp_use_cpu_accel().
* libgimp/gimp.def: updated.
* app/tools/gimprectangletool.[ch]: add "constrain" property
to specify whether to clip at image bounds when computing
dimensions.
* app/tools/gimpcroptool.c
* app/tools/gimpnewrectselecttool.c: set "constrain" to TRUE.
* app/tools/gimpellipseselecttool.c: set "constrain" to FALSE.
Hopefully fixes bug #329817.
2006-05-30 Michael Natterer <mitch@gimp.org>
Honor active components when pasting. Fixes bug #150845:
* app/core/gimplayer-floating-sel.c (floating_sel_composite):
don't temporarily set all image components to active while
compositing.
* app/core/gimpimage.c (gimp_image_set_component_active):
relax()/rigor() the floating selection around setting the "active"
flag. Also make sure the projection is updated correctly.
2006-05-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.c (gimp_data_editor_name_activate)
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_tree_name_edited): strip the newly
entered name from whitespace and reject empty names.
2006-05-30 Manish Singh <yosh@gimp.org>
* app/batch.c (batch_run): GIMP_BATCH_INTERPRETER can be set in
the environment to override the default batch interpreter procedure.
* plug-ins/pygimp/plug-ins/happy-valley-relief.py: basic python
code evaluator function.
* plug-ins/pygimp/plug-ins/Makefile.am: add above file.
2006-05-30 Manish Singh <yosh@gimp.org>
* app/file/gimprecentlist.c: #define _GNU_SOURCE instead of
_SVID_SOURCE, so we get all the declarations we need. Fixes
bug #342390.
2006-05-29 Sven Neumann <sven@gimp.org>
* configure.in: use PANGO_DISABLE_DEPRECATED for pango < 0.13.0.
* app/text/gimptext-vectors.c: added const qualifiers to the
FT_Vector parameters of the FT_Outline_Funcs.
2006-05-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factory_dialog_new_internal): code cleanup; only call
gtk_window_present() if called with present == TRUE.
2006-05-29 Sven Neumann <sven@gimp.org>
* app/core/gimpbrushgenerated.c (gimp_brush_generated_load): don't
choke on brush files with empty names (bug #343140).
(gimp_brush_generated_save): warn about brushes with empty names.
2006-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_key_press_event): make sure
text widgets get all key events first. Fixes bug #301006.
2006-05-28 Michael Natterer <mitch@gimp.org>
Applied patch from David Gowers which adds actions to select
palette and colormap colors with actions. Modified the patch quite
a bit. Fixes bug #130123.
* app/widgets/gimpcolormapeditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: add functions get_index()
which gets the currently selected color's index (optionally the
index of a passed color), set_index() which sets the selected
color by index, and max_index() which returns the maximum possible
color index.
* app/dialogs/dialogs-constructors.c: changed accordingly.
* app/actions/context-actions.c
* app/actions/context-commands.[ch]: actions and callbacks which
use the new functions.
2006-05-28 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette-import.[ch]: added support for extracting
colors from the selected pixels only.
* app/dialogs/palette-import-dialog.c: added "Sample merged" and
"Selected Pixels only" toggles. Fixes bug #316212. Cleaned up the
code quite a bit.
2006-05-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_picked):
removed all code except info dialog updating and chain up instead.
* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): newly
added default implementation. Also updates the colormap dialog and
picks into a palette.
* app/tools/gimppainttool.c (gimp_paint_tool_color_picked):
removed. The default impl. does this and much more now. Hopefully
fixes bug #320660.
2006-05-26 Michael Natterer <mitch@gimp.org>
* app/dialogs/palette-import-dialog.c: set the "Number of colors"
and "Interval" widgets insensitive for indexed images.
Fixes bug #342970.
2006-05-24 Sven Neumann <sven@gimp.org>
* app/config/gimprc-blurbs.h (SWAP_PATH_BLURB, TEMP_PATH_BLURB):
use "folder" in place of "directory".
* app/dialogs/preferences-dialog.c: use GtkFileChooserButtons for
the "swap-path" and "temp-path" preferences and a simple GtkEntry
for the "web-browser" preference.
* modules/cdisplay_proof.c: use a GtkFileChooserButton instead of
a GimpFileEntry widget.
2006-05-24 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_tool_list_thaw): the
default tool is the paintbrush, not rect select.
* app/tools/gimp-tools.c (gimp_tools_register): attach the default
visibility state to the tool_info.
* app/actions/tools-commands.c (tools_reset_cmd_callback): use the
attached boolean instead of reimplementing the default visibility
logic.
2006-05-24 Sven Neumann <sven@gimp.org>
* app/dialogs/palette-import-dialog.c: use a GtkFileChooserButton
instead of a GimpFileEntry widget.
* data/palettes/Tango.gpl (Name): removed "Palette" from name.
2006-05-24 Michael Natterer <mitch@gimp.org>
* app/pdb/gimppdb.c (gimp_pdb_real_register_procedure)
(gimp_pdb_real_unregister_procedure): use g_hash_table_replace()
instead of g_hash_table_insert() and make sure the used key is
always the name of the first procedure in the list.
Fixes bug #342578.
(It's actually a miracle that only the PDB browser crashed, and
not GIMP, since we were using pointers to g_free()'d memory as
keys when different plug-ins registered procedures with the same
name)
2006-05-23 Michael Natterer <mitch@gimp.org>
Fix for bug #333156:
* app/paint-funcs/paint-funcs-types.h (enum CombinationMode):
added value COMBINE_INTEN_A_INDEXED.
* app/paint-funcs/paint-funcs.c
(combine_inten_a_and_indexed_pixels): new function which
implements the new CombinationMode.
(combine_sub_region)
(combine_regions): added the needed bits to call the new function.
* app/core/gimpprojection-construct.c (project_indexed): added
mask PixelRegion parameter since that's supported by paint-funcs
now, replaced g_warning() about unimplemented combine type
by call to combine_regions(..., COMBINE_INTEN_A_INDEXED).
(gimp_projection_construct_layers): pass the mask to
project_indexed() and removed comments about not supporting it.
2006-05-23 Karine Delvare <edhel@gimp.org>
* app/core/gimpcontext.c
* app/tools/gimp-tools.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectselecttool.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: replace old rect select by new in the
toolbox.
2006-05-23 Sven Neumann <sven@gimp.org>
It makes more sense to have GimpData::dirty indicate a name change
than to invalidate the previews whenever the name changes.
* app/core/gimpdata.c: call gimp_object_name_changed() from
gimp_data_real_dirty() instead of implementing
GimpObject::name-changed and calling gimp_data_dirty() from there.
* app/core/gimpbrushclipboard.c
* app/core/gimppalette.c
* app/core/gimppatternclipboard.c: call gimp_data_dirty() in place
of gimp_object_name_changed().
* app/core/gimpbrushgenerated.c (gimp_brush_generated_dirty):
chain up unconditionally.
2006-05-23 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/drawable_transform.pdb
* tools/pdbgen/pdb/transform_tools.pdb: add the drawable's offset
to the x and y returned by gimp_drawable_mask_intersect() because
all transform functions expect image coordinates.
Fixes bug #342548.
* app/pdb/drawable_transform_cmds.c
* app/pdb/transform_tools_cmds.c: regenerated.
2006-05-23 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_dialog_update):
don't call the virtual function if there is no dialog.
(gimp_transform_tool_recalc): show the dialog here after updating it.
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c (dialog_update): don't show it here.
2006-05-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.[ch]: re-apply heavily modified patch
from Michael Schumacher which shows the clone source even while
not painting. Fixes bug #324224. Did some additional cleanup.
2006-05-22 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-commands.c (plug_in_collect_image_args):
removed debugging output.
* app/tools/gimpscaletool.c: create the GimpSizeBox in the
prepare() method to make entering relative sizes work.
2006-05-22 Sven Neumann <sven@gimp.org>
* app/tools/gimpscaletool.c (gimp_scale_tool_prepare): initialize
width, height and keep-aspect properties of the size box.
2006-05-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c: revert previous change. Tools must
not do anything essential in cursor_update(), and poking in the
GimpClone struct is a bad hack. Will look into this.
2006-05-21 Michael Natterer <mitch@gimp.org>
* app/tools/tool_manager.c (tool_manager_image_clean_dirty): don't
try to reset the active tool by destroying and re-creating it
because this doesn't work while gimp->busy is TRUE. Call
tool_manager_control_active(HALT) instead, which is the right way
to do it anyway. Fixes bug #330083.
Sprinkled some local variables all over the place to get rid of a
gazillion tool_manager->active_tool.
2006-05-21 Michael Natterer <mitch@gimp.org>
One of the following changes fixes a crash on exit when there is a
cut buffer and a clipboard manager is runnig. I don't care which,
since they are all the right thing to do:
* app/widgets/gimpdialogfactory.c (gimp_dialog_factory_finalize):
don't remove the factory from the hash table of all factories here...
(gimp_dialog_factory_dispose): ...but here. Use the right key for
the toolbox factory.
(gimp_dialog_factories_set_busy)
(gimp_dialog_factories_unset_busy): check the return value of
g_type_class_ref() before using it.
Unrelated:
(gimp_dialog_factory_dispose): free the list of open dialogs here,
not in dispose(). Don't leak all the factory's session infos.
2006-05-21 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimpimage-item-list.[ch]: new files with functions to
translate, flip, rotate, transform and align a list of items
inside an undo group.
(gimp_image_item_list_get_list): returns a list of items matching
any combination of GimpItemTypeMask and GimpItemSet.
* app/core/gimpitem.[ch]: added new function gimp_item_is_in_set().
* app/core/gimpitem-linked.[ch]: use the new functions. Removed
gimp_item_linked_get_list().
* app/tools/gimpeditselectiontool.c: use
gimp_image_item_list_get_list() instead of
gimp_item_linked_get_list().
* app/core/gimpimage-resize.c
* app/tools/gimpaligntool.c: use the new functions instead of
creating and iterating the lists manually.
2006-05-20 Manish Singh <yosh@gimp.org>
Fixes to address -ansi -pedantic compilation (bug #342390).
Thanks goes to Daniel Richard G. for noticing and suggesting
fixes.
* libgimpbase/gimpsignal.c: #include "config.h" and define
__POSIX_SOURCE for sigaction stuff.
* app/base/tile-swap.c (tile_swap_test): use more portable
S_IRUSR and S_IWUSR, instead of S_IREAD and S_IWRITE.
* plug-ins/common/ripple.c
* plug-ins/imagemap/imap_main.c: use C89 comments.
* plug-ins/Lighting/lighting_preview.h: don't define spin widget
variables here...
* plug-ins/Lighting/lighting_ui.[ch]: ... and instead take care
of them here.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/tools/gimpscaletool.c (gimp_scale_tool_dialog_update,
gimp_scale_tool_size_notify): use the same rounding to determine
width and height from the TransInfo struct.
2006-05-19 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/image.pdb: do not use enum values in C syntax
to describe the image mode.
* app/pdb/convert_cmds.c
* app/pdb/image_cmds.c
* libgimp/gimpconvert_pdb.c
* libgimp/gimpimage_pdb.c: regenerated.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformoptions.[ch]: removed one of the two
constrain properties.
* app/tools/gimprotatetool.c
* app/tools/gimptransformtool.c: changed accordingly.
* app/tools/gimpscaletool.c: sync "constrain" with the size-box's
"keep-aspect" property.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsizebox.c: connect to the chain-button and
update the "keep-aspect" property when it is toggled.
2006-05-18 Sven Neumann <sven@gimp.org>
* app/core/gimpparamspecs-desc.c: use the enum's name instead of
the nick, strip the "GIMP_" prefix and canonicalize it.
2006-05-18 Sven Neumann <sven@gimp.org>
* tools/pdbgen/app.pl
* tools/pdbgen/lib.pl: removed code that used to fiddles with
the
argument descriptions.
* tools/pdbgen/pdb/*.pdb: removed %%desc%% placeholder, added
some
missing argument descriptions.
* app/pdb/*_cmds.c
* libgimp/gimpdrawabletransform_pdb.c
* libgimp/gimpfloatingsel_pdb.c
* libgimp/gimpgradient_pdb.c
* libgimp/gimppainttools_pdb.c: regenerated.
* app/core/Makefile.am
* app/core/gimpparamspecs-desc.[ch] (gimp_param_spec_get_desc):
new function that creates a parameter description for the PDB.
* app/pdb/gimppdb-query.c
* app/pdb/procedural_db_cmds.c: use the new function to create
the
descriptions on the fly.
2006-05-18 Michael Natterer <mitch@gimp.org>
* app/tools/gimphuesaturationtool.c: add tooltips to all hue
partition radio buttons.
* app/tools/gimptextoptions.[ch]
* app/tools/gimpvectoroptions.[ch]: add the widgets that are
needed by the tools as members to the options structs instead of
attaching them with g_object_set_data().
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c: access the struct members instead of
using g_object_get_data().
* themes/Default/images/tools/stock-tool-align-16.png
* themes/Default/images/tools/stock-tool-align-22.png
* libgimpwidgets/gimpstock.c
* libgimpwidgets/gimpstock.h
* themes/Default/images/Makefile.am: add new (ugly) icon
for alignment tool.
* app/tools/gimpaligntool.c: use the new icon; change
"pressed" to "clicked" for buttons.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimpvectortool.c (gimp_vector_tool_set_vectors): use
the same method as the newly added text tool code for finding a
suitable display for the vectors.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushclipboard.c
(gimp_brush_clipboard_buffer_changed)
* app/core/gimppatternclipboard.c
(gimp_pattern_clipboard_buffer_changed): limit the size of
clipboard brushes and patterns to 512x512 pixels to prevent OOM
conditions when copying from huge drawables.
* app/tools/gimpaligntool.[ch]: major change in ui, to make
this tool behave like alignment tools found in vector apps.
now you select items by clicking or drawing a rubber-band
rectangle, add items by holding down shift, and then press
a button to align all the selected items.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-commands.c: moved the collection of plug-in
args to a utilty function. Add another function that is called
when the plug-in lives in <Brushes>, <Palettes> etc. and pass the
active object's name to the plug-in.
* plug-ins/pygimp/plug-ins/Makefile.am
* plug-ins/pygimp/plug-ins/palette-offset.py
* plug-ins/pygimp/plug-ins/palette-sort.py
* plug-ins/pygimp/plug-ins/palette-to-gradient.py: added new
scripts written by Joao S. O. Bueno Calligaris and fixed by Carol
Spears. Changed them myself again. The stuff doesn't work as
expected because python-fu has too much asumptions in its
register() code, and the sort script doesn't implement all modes
of Adrian's palette sorting perl script. Addresses bug #104639.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushclipboard.c
(gimp_brush_clipboard_buffer_changed)
* app/core/gimppatternclipboard.c
(gimp_pattern_clipboard_buffer_changed): remove calls to
gimp_data_dirty() because the emission of "name-changed" takes
care of that.
2006-05-17 Sven Neumann <sven@gimp.org>
* app/core/gimpbrushclipboard.c
(gimp_brush_clipboard_buffer_changed)
* app/core/gimppatternclipboard.c
(gimp_pattern_clipboard_buffer_changed): emit "name-changed" so that
the description is being updated.
2006-05-17 Michael Natterer <mitch@gimp.org>
* app/core/gimp.c (gimp_real_initialize): add a clipboard pattern
to the pattern factory (forgot to commit this file).
2006-05-16 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimppatternclipboard.[ch]: new GimpPattern subclass
that auto-updates its contents from gimp->global_buffer.
* app/core/gimp.c (gimp_real_initialize): add a clipboard pattern
to the pattern factory.
* app/widgets/gimpaction.c (gimp_action_set_proxy): replace the
GimpView by a new one if the viewable type changes, instead of
running into a warning (didn't happen before because this is only
used for imagefiles and patterns, which didn't have subclasses).
2006-05-16 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: implement copy_color() and
copy_color_pixels() which copy only the color bytes into a dest
that has one byte less than src. Renamed component_pixels() to
copy_component_pixels().
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpbrushclipboard.[ch]: new GimpBrush subclass that
auto-updates its contents from gimp->global_buffer.
* app/core/gimp.c (gimp_real_initialize): add a clipboard brush to
the brush factory. Fixes bug #111082.
2006-05-16 Sven Neumann <sven@gimp.org>
* app/app_procs.c (app_run): indentation.
* app/core/gimp.c (gimp_real_initialize)
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
moved a call to status_callback() to the plug-in manager.
2006-05-14 Michael Natterer <mitch@gimp.org>
Allow to initialize a new layer mask with any of the image's
channels. Fixes bug #310207.
* libgimpbase/gimpbaseenums.h (enum GimpAddMaskType): added
value GIMP_ADD_CHANNEL_MASK.
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimplayer.[ch] (gimp_layer_create_mask): added
GimpChannel* parameter. Hacked the GIMP_ADD_SELECTION_MASK code a
bit so it can handle GIMP_ADD_CHANNEL_MASK too. Cleaned up the
function a bit.
* app/dialogs/layer-add-mask-dialog.[ch]: added a menu of the
image's channels.
* app/actions/layers-commands.c (layers_add_mask_response): pass
the channel selected in the menu to gimp_layer_create_mask().
* tools/pdbgen/pdb/layer.pdb (layer_create_mask): use the image's
active channel when GIMP_ADD_CHANNEL_MASK is passed. Fail if there
is no active channel.
* app/pdb/layer_cmds.c: regenerated.
2006-05-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_set_layer): find a
suitable display and fully set up the tool (just as the vector
tool does). Fixes bug #322182.
(gimp_text_tool_button_press): chain up to activate the tool.
(gimp_text_tool_set_drawable): removed redundant check.
2006-05-13 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_transform): add an alpha
channel if the layer has none and interpolation is requested.
Works around bug #315048, the real fix would be to implement
interpolation on layers without alpha.
2006-05-13 Michael Natterer <mitch@gimp.org>
Added some new text layer actions and menu items (bug #316299).
* app/actions/layers-actions.c: added actions for "Text to Path",
"Text along Path" and "Text to Selection" (use the alpha to
selection callback for text to selection)
* app/actions/layers-commands.[ch]: added
layers_text_to_vectors_cmd_callback() and
layers_text_along_vectors_cmd_callback().
* app/widgets/gimphelp-ids.h: help IDs for the new actions.
* menus/image-menu.xml.in
* menus/layers-menu.xml: added them to the layers menus in the
image window and the layers dialog.
2006-05-13 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/core/gimp-util.c : dont include "config/gimpbaseconfig.c", it
gives an redefinition error with msvc. Instead include
config/gimpbaseconfig.h and libgimpconfig/gimpconfig-path.h
* plug-ins/common/psd_save.c : fix c99isms (declarations only at the
start of a block)
2006-05-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpview.h: save 20 bytes per instance by using
single bits instead of 6 gbooleans.
* app/widgets/gimpview.c: some code cleanup.
* app/widgets/gimpviewrendererbrush.c: don't #include "gimpbrush.h".
* app/widgets/gimpviewrendererbuffer.c: #include "gimpviewable.h"
instead of "gimpbuffer.h".
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimagefile.c
* app/widgets/gimpviewrendererimagefile.h: micro cosmetics.
2006-05-11 Michael Natterer <mitch@gimp.org>
* app/pdb/gimppdb-query.c (gimp_pdb_proc_info): restored old
version of this function, it was correct after all (spotted by
Kevin Cozens).
2006-05-11 Michael Natterer <mitch@gimp.org>
Applied modified patch from Michael J. Hammel which allows to
remove all keyboard shortcuts from the menus (fixes bug #331839):
* app/dialogs/preferences-dialog.c: added "Remove all keyboard
shortcuts" button to the "Interface" section.
* app/menus/menus.[ch]: added menus_remove() which does the
shortcut removal.
2006-05-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c: use
gimp_viewable_get_size() and get rid of useless
local "brush" and "buffer" variables.
2006-05-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c: code cleanup, no logic changed.
* app/widgets/gimptoolbox-color-area.c: make the very first click
on the color area work as expected.
2006-05-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_new)
* app/core/gimpitem.c (gimp_item_configure)
* app/display/gimpdisplay.c (gimp_display_new): make sure IDs wrap
correctly at G_MAXINT and skip IDs which are currently in use.
It makes no sense to treat gimp->image_table and gimp->images
differently, since they keep the same set of images. And it makes
no sense to treat gimp->displays and gimp->images differently.
Moved all container adding into the objects' constructors:
* app/core/gimp.c (gimp_create_image): don't add the new image
to gimp->images here...
* app/core/gimpimage.c (gimp_image_constructor): ...but here.
* app/core/gimp-gui.c (gimp_create_display): don't add the new
display to gimp->displays here...
* app/display/gimpdisplay.c (gimp_display_new): ...but here.
2006-05-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_new): set the
alternative button order here...
* app/dialogs/file-open-dialog.c (file_open_dialog_new)
* app/dialogs/file-save-dialog.c (file_save_dialog_new): ...instead
of here.
2006-05-07 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-scale.c (gimp_display_shell_scale):
return early if the shell is already at the requested zoom level.
(paranoia addition for bug #165032, which was already fixed by the
fix for bug #164281):
2006-05-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpbrusheditor.c: hide the button bar, which is
useless for the brush editor. Fixes user confusion (bug #306704).
2006-05-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimppainttool.c: connect to the context's
"brush-changed" signal and update the brush core's brush
accordingly. Fixes inconsistent brush preview when not moving
the mouse while the brush changes (bug #323404).
2006-05-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added "gboolean none_ok" members
to GimpParamSpecImageID, GimpParamSpecItemID and
GimpParamSpecDisplayID. If none_ok is set, allow '0' and '-1' as
valid IDs. Added "none_ok" parameter to all ID param spec
constructors.
* app/xcf/xcf.c: require real image IDs, but allow images without
active drawable.
* app/pdb/gimp-pdb-compat.c: set none_ok to TRUE in all compat
param specs, so only IDs that are really random garbage don't pass
validation. Fixes validation errors with 0 and -1 IDs.
* tools/pdbgen/app.pl: set none_ok to FALSE by default. Added
support for $arg->{none_ok} to control it.
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/progress.pdb
* tools/pdbgen/pdb/text_tool.pdb: use none_ok instead of
no_success (which disables validation entirely).
* app/pdb/[many]_cmds.c: regenerated.
2006-05-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added "gboolean none_ok" members
to GimpParamSpecImageID, GimpParamSpecItemID and
GimpParamSpecDisplayID. If none_ok is set, allow '0' and '-1' as
valid IDs. Added "none_ok" parameter to all ID param spec
constructors.
* app/pdb/gimp-pdb-compat.c: set none_ok to TRUE in all compat
param specs, so only IDs that are really random garbage don't pass
validation. Fixes validation errors with 0 and -1 IDs.
* tools/pdbgen/app.pl: set none_ok to FALSE by default. Added
support for $arg->{none_ok} to control it.
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/progress.pdb
* tools/pdbgen/pdb/text_tool.pdb: use none_ok instead of
no_success (which disables validation entirely).
* app/pdb/[many]_cmds.c: regenerated.
2006-05-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager.[ch]: added signals
"plug-in-opened" and "plug-in-closed". Added functions
gimp_plug_in_manager_add_open_plug_in() and _remove_open_plugin()
which maintain the list of open plug-ins and emit the signals.
* app/plug-in/gimpplugin.c (gimp_plug_in_open)
(gimp_plug_in_close): don't touch manager->open_plug_ins and don't
ref/unref the plug-in. Call above new functions instead. Don't
call gimp_pdb_dialogs_check().
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_pdb_dialogs_check().
* app/widgets/gimppdbdialog.[ch]: removed
gimp_pdb_dialogs_check_callback() and connect to the
plug-in-manager's "plug-in-closed" signal instead.
2006-05-04 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginshm.c: cleaned up a bit.
(gimp_plug_in_shm_new): return NULL if anything goes wrong,
instead of a GimpPlugInShm structure that contains no shm (we
don't need multiple cases of "there is no shm"),
* app/plug-in/gimppluginmanager.[ch]
(gimp_plug_in_manager_get_shm_ID)
(gimp_plug_in_manager_get_shm_addr): removed these functions.
* app/plug-in/gimppluginmanager-call.c (gimp_plug_in_manager_call_run)
* app/plug-in/gimpplugin-message.c (gimp_plug_in_handle_tile_req):
get the shm ID and addr directly from manager->shm if it exists,
use -1 and NULL otherwise.
Unrelated:
* app/plug-in/gimppluginmanager.c: move most stuff from
gimp_plug_in_manager_exit() to gimp_plug_in_manager_finalize().
Simplify plug-in killing in _exit().
2006-05-04 Sven Neumann <sven@gimp.org>
* app/core/gimp-user-install.[ch]: added a "verbose" parameter.
* app/app_procs.c (app_run): abort if the user installation fails.
2006-05-04 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.[ch] (struct GimpPlugIn): remove member
"name" and unused cruft "ref_count". Reordered other members a bit.
(gimp_plug_in_new): set GimpObject's name to
g_filename_display_basename(path) instead.
Use GimpObject's name instead of plug_in->name for error messages
and pass the full path to gimp_plug_in_debug_argv()
* app/plug-in/gimpplugindebug.c (gimp_plug_in_debug_argv): extract
the path's basename ourselves.
* app/plug-in/gimpplugin-message.c: GimpObject's name for
error messages.
2006-05-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.c (gimp_string_array_new)
(gimp_param_string_array_validate): restore the strict checks
on string arrays.
* app/plug-in/gimppluginmanager-help-domain.c
(gimp_plug_in_manager_get_help_domains): return NULL string arrays
when there are 0 help domains to fix the inconsistency at its root.
2006-05-04 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.c
* app/plug-in/gimppluginmanager-call.c: use the right procedure
types in calls to gimp_plug_in_proc_frame_foo().
2006-05-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c
(gimp_selection_data_get_tool_info): port to using
gimp_selection_data_get_object(), it was simply forgotten.
Fixes tool dropping (bug #336402).
2006-05-03 Michael Natterer <mitch@gimp.org>
Made an object out of the plug-in struct. Also change refcounting
considerably:
- gimp_plug_in_open() adds a reference that is only dropped by
gimp_plug_in_close().
- temporarily ref the plug-in while handling messages.
- remporarily ref the plug-in while a recursive main loop is
running.
- each caller of gimp_plug_in_new() also unrefs the plug-in before
returning, the only reference that persists across functions
(that keeps the plug-in alive) is the one added by open().
* app/plug-in/plug-in.[ch]
* app/plug-in/plug-in-context.[ch]
* app/plug-in/plug-in-message.[ch]
* app/plug-in/plug-in-progress.[ch]: removed these files...
* app/plug-in/gimpplugin.[ch]
* app/plug-in/gimpplugin-context.[ch]
* app/plug-in/gimpplugin-message.[ch]
* app/plug-in/gimpplugin-progress.[ch]: ...and added here as GObject.
* app/plug-in/plug-in-proc-frame.[ch]: removed...
* app/plug-in/gimppluginprocframe.[ch]: ...and added with a namespace.
* app/plug-in/Makefile.am
* app/plug-in/plug-in-types.h
* app/plug-in/gimppluginmanager-call.c
* app/plug-in/gimppluginmanager-file.c
* app/plug-in/gimppluginmanager.[ch]
* app/pdb/gimppluginprocedure.c
* app/pdb/gimptemporaryprocedure.c
* app/pdb/gimptemporaryprocedure.h
* tools/pdbgen/pdb/context.pdb
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/message.pdb
* tools/pdbgen/pdb/plug_in.pdb
* tools/pdbgen/pdb/progress.pdb
* tools/pdbgen/pdb/undo.pdb: changed accordingly.
* app/pdb/context_cmds.c
* app/pdb/drawable_cmds.c
* app/pdb/help_cmds.c
* app/pdb/message_cmds.c
* app/pdb/plug_in_cmds.c
* app/pdb/progress_cmds.c
* app/pdb/undo_cmds.c: regenerated.
2006-05-03 Sven Neumann <sven@gimp.org>
* app/core/gimpparamspecs.c (gimp_string_array_new,
gimp_param_string_array_validate): relaxed the checks so that
GimpStringArray deals correctly with (length == 0 && data != NULL).
Fixes bug #340365.
2006-05-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainercombobox.c
(gimp_container_combo_box_remove_item): turned a #warning into an
explanation because the bug it referred to is marked as WONTFIX.
2006-05-02 Sven Neumann <sven@gimp.org>
* fileicon.ico
* wilber.ico: new icons for the Windows build created by Jernej
Simon%GÄ%@i%GÄ%@ based on the icons drawn by Jimmac (bug #340223).
2006-04-29 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.[ch]: removed plug_in_push() and
plug_in_pop()...
* app/plug-in/gimppluginmanager.[ch]: ...and added them here as
gimp_plug_in_manager_plug_in_push() and _pop()
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run): changed
accordingly.
* app/plug-in/plug-in.c (plug_in_close): removed an unused
variable, moved another one to a local scope.
* app/plug-in/plug-in.h: indentation.
2006-04-29 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager-locale-domain.c
(gimp_plug_in_manager_get_locale_domains): NULL-terminate string
arrays here too, so they can be freed with g_strfreev() (even
though they currently aren't).
* app/widgets/gimphelp.c: set the plug-in arguments
correctly. Fixes warnings and makes help work again.
2006-04-29 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am (AM_CPP_FLAGS): define GIMP_APP_VERSION.
* app/core/gimp-user-install.c: use GIMP_APP_VERSION instead of
hardcoding it.
2006-04-29 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimp-user-install.[ch]: new files based on code that
used to live in user-install-dialog.c.
* app/dialogs/user-install-dialog.[ch]: only the dialog code
remained here.
* app/app_procs.c: use the new user-install API. Perform a
non-interactive user installation when running without a display.
2006-04-29 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimppluginmanager-locale-domain.c
(gimp_plug_in_manager_get_locale_domains): NULL-terminate the
locale_domains and locale_paths string vectors, as they are freed
with g_strfreev() in gimp_plug_in_manager_restore().
2006-04-29 Tor Lillqvist <tml@novell.com>
* app/plug-in/plug-in.c (plug_in_close): Make it compile again on
Win32. Use g_usleep() instead of select()/Sleep() Unix/Windows
ifdef.
2006-04-29 Sven Neumann <sven@gimp.org>
* app/dialogs/user-install-dialog.[ch]: removed unused code and
unused parameters passed to user_install_dialog_run().
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-locale-domain.[ch] (plug_in_locale_domains):
new function which returns string arrays of all registered locale
domains and paths.
(plug_in_standard_locale_domain): removed this function. The
standard plug-in domain is included in the domains returned by
plug_in_locale_domains().
* app/plug-in/plug-ins.c (plug_ins_init): simply bind the text
domains here instead of calling gimp_menus_init(). Destroy
gimp->plug_in_defs much earlier.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_menus_init().
* app/menus/plug-in-menus.[ch]: removed plug_in_menus_init(),
binding text domains is completely done in the core now.
2006-04-27 Michael Natterer <mitch@gimp.org>
Added some signals inspired by Rockwalrus' libpdb:
* app/pdb/gimppdb.[ch]: added signals "register-procedure" and
"unregister-procedure".
* app/pdb/gimppluginprocedure.[ch]: added signal "menu-path-added".
* app/actions/plug-in-actions.[ch]
* app/menus/plug-in-menus.[ch]: connect to the new signals and
create/destroy plug-in actions and menus accordingly. Made all
needed functions private and merged some of them with the newly
added signal callbacks.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_menus_create_item() and
gimp_menus_delete_item() and all related stuff.
* app/plug-in/plug-in.c
* app/plug-in/plug-ins.c: removed calls to the removed functions.
* app/plug-in/plug-ins.c (plug_ins_init): add the plug-in
procedures to the PDB *after* calling gimp_menus_init() so their
locale domains are properly initialized when the menus are
created.
2006-04-27 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: hide the GimpParamSpecRGB struct
again. Added getter for the has_alpha field.
* libgimpcolor/gimpcolor.def: updated.
* app/config/gimpconfig-dump.c
* libgimpconfig/gimpconfig-serialize.c: use
gimp_param_spec_rgb_has_alpha() instead of accessing the
GimpParamSpecRGB struct directly.
2006-04-27 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: added "has_alpha" to GimpParamSpecRGB.
Made the GimpParamSpecRGB struct public. When validating a color,
only look at the alpha channel if has_alpha is set.
* libgimpconfig/gimpconfig-params.h: added "has_alpha" to
GIMP_CONFIG_INSTALL_PROP_RGB macro definition.
* libgimpconfig/gimpconfig-serialize.c: serialize color values as
"(rgb r g b)" if the param-spec indicates that the alpha channel
is meaningless.
* app/config/gimpconfig-dump.c: take "has_alpha" into account when
documenting color properties.
* app/core/gimpcontext.c
* app/core/gimpgrid.c
* app/display/gimpdisplayoptions.c
* app/text/gimptext.c
* app/widgets/gimpaction.c
* app/widgets/gimpcolorbar.c
* libgimpwidgets/gimpcolorarea.c
* libgimpwidgets/gimpcolorbutton.c: specify whether color properties
have an alpha channel.
* tools/pdbgen/app.pl: handle "has_alpha" for color paramaters.
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/context.pdb
* tools/pdbgen/pdb/grid.pdb
* tools/pdbgen/pdb/image.pdb: set the "has_alpha" flag where
appropriate.
* app/pdb/gimp-pdb-compat.c (gimp_pdb_compat_param_spec): set
"has_alpha" to TRUE for GIMP_PDB_COLOR.
* app/pdb/channel_cmds.c
* app/pdb/context_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/grid_cmds.c
* app/pdb/image_cmds.c
* app/pdb/palette_cmds.c
* app/pdb/palettes_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
* app/config/gimpdisplayconfig.c (gimp_display_config_class_init):
removed unused code.
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppluginaction.[ch]: use a GParamSpecObject instead
of GParamSpecPointer for the "procedure" property. Keep a reference
on the action's procedure. Did a global s/proc/procedure/.
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-commands.c (plug_in_repeat_cmd_callback):
truncate the value array to the number of actually set parameters.
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/Makefile.am (SUBDIRS): changed order of subdirs to match the
bottom-up module dependency order more closely.
2006-04-26 Sven Neumann <sven@gimp.org>
* app/actions/vectors-commands.c
(vectors_selection_to_vectors_cmd_callback): do not pass an
invalid drawable to the plug-in, just omit the argument.
Fixes bug #339759.
2006-04-26 Michael Natterer <mitch@gimp.org>
* app/pdb/Makefile.am
* app/pdb/pdb-types.h
* app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all
procedures and functions to register and run them. Renamed all
functions and did some cleanups.
* app/pdb/gimp-pdb.[ch]
* app/core/gimp.[ch]: removed the same stuff here.
* app/pdb/gimp-pdb-query.[ch]: removed these files...
* app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB.
* app/pdb/gimp-pdb-compat.h: fix include guard.
* app/batch.c
* app/actions/vectors-commands.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-ins.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimphelp.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/fileops.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
* tools/pdbgen/pdb/procedural_db.pdb: changed includes and function
calls accordingly.
* tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp
pointers to register the internal procedures with. Changed some
newlines in the generated code.
* app/pdb/*_cmds.c
* app/pdb/internal_procs.[ch]: regenerated.
* app/core/gimppdbprogress.[ch]
* app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY
properties.
* app/plug-in/plug-in-progress.c
* app/gui/gui-vtable.c: pass gimp->pdb when creating them.
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: use the new local pdb pointers
instead of some foo->bar->gimp->pdb overkill.
2006-04-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimpthresholdtool.c: added an "Auto" button and
initialize the tool with a default threshold of 127 again.
Removed some cruft and did some cleanup.
2006-04-25 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: code cleanup, moved variables into
local scopes, added const qualifiers.
2006-04-23 Sven Neumann <sven@gimp.org>
* app/dialogs/module-dialog.c
* app/dialogs/palette-import-dialog.c: use GimpDialog instead of a
GimpViewableDialog with a NULL viewable.
* app/widgets/gimpviewabledialog.c: deprecate use of
GimpViewableDialog with a NULL viewable.
* app/dialogs/resolution-calibrate-dialog.c: whitespace.
2006-04-21 Sven Neumann <sven@gimp.org>
* app/config/gimprc-blurbs.h: minor string changes.
* app/config/gimprc.c: declared an array as const.
* app/dialogs/user-install-dialog.c: further streamlining of the
user installation.
2006-04-21 Sven Neumann <sven@gimp.org>
* app/dialogs/user-install-dialog.c: in an effort to basically
get rid of the user installation dialog, removed the license and
tuning pages as well as the code that was responsible for the
nifty orange style. More to come ...
2006-04-21 Sven Neumann <sven@gimp.org>
Applied a slightly modified version of a patch from Lode Leroy
(bug #336183):
* app/base/gimphistogram.[ch]: added new function
gimp_histogram_get_threshold() that returns an optimal
binarization threshold.
* app/tools/gimpthresholdtool.c: use the new function to
initialize the Threshold tool.
2006-04-20 Simon Budig <simon@gimp.org>
* app/base/curves.c: implemented a new interpolation for the
"smooth" curve type. This fixes the artefacts as described in
bug #169078 although there definitely is room for improvement.
This has an impact on the API as now the curves used by the
gimp-curves-spline PDB call change. I do however believe, that
the change is for good and the old behaviour was simply buggy.
2006-04-20 Tor Lillqvist <tml@novell.com>
* app/widgets/gimpsessioninfo.c (get_appropriate_monitor): New
helper function. Same functionality as
gdk_screen_get_monitor_at_window(), except that it takes a window
geometry as parameter and not the window itself.
(gimp_session_info_set_geometry): Make sure the window is
completely inside a monitor. (#339099, #324254)
M ChangeLog
M app/paint/gimpconvolve.c
M app/paint-funcs/paint-funcs.c
M app/paint-funcs/paint-funcs.h
M app/tools/gimpiscissorstool.c
M libgimpbase/gimputils.c
M modules/colorsel_cmyk.c
M regexrepl/regex.c
2006-04-19 Sven Neumann <sven@gimp.org>
* app/dialogs/user-install-dialog.c: removed an unneeded call to
gtk_widget_realize() (bug #324254). Sprinkled const qualifiers to
avoid relocations.
2006-04-15 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch]: added
gimp_g_type_instance_get_memsize() and
gimp_g_param_spec_get_memsize().
Changed gimp_g_object_get_memsize() to use
gimp_g_type_instance_get_memsize().
Handle more boxed types in gimp_g_value_get_memsize().
* app/core/gimp.c (gimp_get_memsize): add the memsize of some
members that are new or were forgotten.
* app/pdb/gimpprocedure.c
* app/pdb/gimppluginprocedure.c: implement GimpObject::get_memsize().
2006-04-14 Manish Singh <yosh@gimp.org>
* app/plug-in/plug-in.h: Some compilers don't handle "'" in #error
directives well. Reword to not use a contraction.
2006-04-11 Kevin Cozens <kcozens@cvs.gnome.org>
* app/pdb/gimp-pdb-query.c: Changed formatting of output from
gimp-procedural-db-dump to make it more easily human (and machine)
readable. Fixes bug #337843.