2008-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/actions/view-commands.c (view_shrink_wrap_cmd_callback): We
need to center the image after a Shrink Wrap.
svn path=/trunk/; revision=26472
2008-08-07 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.c (layers_actions): added mnemonic
to
the new action.
* de.po: Updated German translation.
svn path=/trunk/; revision=26432
2008-08-07 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: added new action
"layers-new-from-visible".
* app/widgets/gimphelp-ids.h: added new help-id.
* menus/layers-menu.xml
* menus/image-menu.xml.in: added the new action.
* app/actions/edit-actions.c: improved the blurb for
"edit-copy-visible".
svn path=/trunk/; revision=26421
2008-07-30 Sven Neumann <sven@gimp.org>
* app/dialogs/file-open-dialog.c (file_open_dialog_response):
attach the URI of the last opened image to the Gimp object.
* app/actions/file-commands.c (file_open_dialog_show): use the
last opened URI as a fallback for initializing the dialog.
svn path=/trunk/; revision=26339
2008-07-21 Sven Neumann <sven@gimp.org>
* app/actions/windows-actions.c (windows_actions_dock_notify):
plugged another small memory leak.
svn path=/trunk/; revision=26259
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/actions/tools-commands.c (tools_activate_enum_action):
simply call gimp_enum_action_selected() instead of poking around
in the action's internals calling gimp_action_activate()
svn path=/trunk/; revision=26001
2008-06-02 Sven Neumann <sven@gimp.org>
* app/actions/tools-actions.c: added a few more actions to set
tool values to default values. Added "backslash" as the default
shortcut for "tools-value-2-set-to-default", which is
effectively
"Reset Brush Scale" (bug #493030).
svn path=/trunk/; revision=25881
2008-05-31 Martin Nordholts <martinn@svn.gnome.org>
Add keyboard shortcut support for reseting to default value of
e.g. brush scale. Fixes bug #493030.
* app/actions/actions.[ch]: Make action_select_value() take a
default-parameter and add support for it. Also use default_value
from gint and gdouble param specs.
* app/actions/actions-types.h: Added
GIMP_ACTION_SELECT_SET_TO_DEFAULT.
* app/actions/tools-actions.c: Add _SET_TO_DEFAULT actions.
* app/actions/view-commands.c:
* app/actions/layers-commands.c:
* app/actions/context-commands.c: Pass defaults to
action_select_property().
svn path=/trunk/; revision=25874
2008-05-30 Sven Neumann <sven@gimp.org>
* app/dialogs/module-dialog.c: cleaned up the UI a bit. Removed
some information and a button that was not really useful. Only
show the error state when there is actually an error.
* app/actions/dialogs-actions.c: changed menu item to "Module
Manager".
svn path=/trunk/; revision=25867
2008-05-21 Sven Neumann <sven@gimp.org>
Add Desaturate as an image-map tool with live preview (bug #533808):
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpdesaturateconfig.[ch]: added config object for the
desaturate point filter.
* app/gegl/gimpoperationdesaturate.[ch]: derive from
GimpOperationPointFilter. Unrolled the inner loop.
* app/core/gimpdrawable-desaturate.c: changed accordingly.
* app/tools/Makefile.am
* app/tools/gimpdesaturatetool.[ch]: added desaturate as an
imagemap tool. So far only the GEGL code path is implemented.
* app/tools/gimp-tools.c: register the new tool.
* app/dialogs/dialogs.c: register the new tool dialog.
* app/dialogs/Makefile.am
* app/dialogs/desaturate-dialog.[ch]: removed the desaturate dialog.
* app/actions/drawable-actions.c
* app/actions/drawable-commands.[ch]: removed action
"drawable-desaturate".
* app/widgets/gimphelp-ids.h: changed help IDs accordingly.
* menus/image-menu.xml.in: replaced "drawable-desaturate" with
"tools-desaturate".
* libgimpwidgets/gimpstock.h: added a define for
GIMP_STOCK_TOOL_DESATURATE.
svn path=/trunk/; revision=25726
2008-05-20 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimptoggleaction.[ch]
* app/widgets/gimpradioaction.[ch]: added new action types derived
from GtkToggleAction and GtkRadioAction. These types override the
"connect_proxy" method to enable tooltips in menus.
* app/widgets/gimpactiongroup.c: use the new action types.
* app/actions/dockable-actions.c: added a tooltip for the
"dockable-lock-tab" action.
svn path=/trunk/; revision=25717
2008-05-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdockbook.[ch]: added a "locked" propery to
GimpDockable. A locked dockable cannot be moved by drag-n-drop.
Allows users to protect their dockables from accidental changes,
mainly when working with a tablet.
* app/widgets/gimpsessioninfo-dockable.[ch]: store the "locked"
property in the session info.
* app/actions/dockable-actions.c
* app/actions/dockable-commands.[ch]: added an action for
toggling
the "locked" state.
* app/widgets/gimphelp-ids.h: new help-id "gimp-dock-tab-lock".
* menus/dockable-menu.xml.in: show the new menu item.
* app/actions/plug-in-actions.c: formatting.
svn path=/trunk/; revision=25715
2008-05-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h: add help IDs for the stuff in the
Windows menu.
* app/actions/windows-actions.c: use them.
svn path=/trunk/; revision=25687
2008-05-17 Michael Natterer <mitch@gimp.org>
* app/actions/windows-actions.c: add tooltips to the menu items of
open and recently closed docks.
* app/widgets/gimpaction.c: connect to "notify::tooltip" and make
sure gimp_help_set_help_data() gets called when the action's
tooltip changes.
svn path=/trunk/; revision=25684
2008-05-16 Michael Natterer <mitch@gimp.org>
Implement the presistent menu of recently closed docks, still
somewhat hackish but fully functional. Fixes bug #132744.
* app/actions/dialogs-actions.c
* app/actions/dialogs-commands.[ch]
* menus/image-menu.xml.in: remove the menu items that were
creating the hardcoded preconfigured docks.
* app/dialogs/dialogs.[ch]: add GimpContainer of recently closed
docks and API to load and save it.
* app/gui/session.c: call the recent dock load and save functions.
* app/widgets/gimpsessioninfo.[ch]: implement the GimpConfig interface
and (de)serialize via proper interface methods.
* app/gui/session.c
* app/widgets/gimpdialogfactory.c: use the GimpConfig API
to (de)serialize session infos and added the code that was
formerly in the info's (de)serialize functions but didn't belong
there.
* app/widgets/gimpaction.[ch]: add "max-width-chars" property and
set it on proxy menu item labels.
* app/actions/windows-actions.[ch]
* app/actions/windows-commands.[ch]
* app/menus/windows-menu.c: add actions and menu of recently
closed docks and code to restore the dock when the menu items are
selected. Use above new action property to ensure a minimum
width of the menu.
* app/widgets/gimpmenudock.c: use '-' instead of '|' for
separating notebooks in the window title. Menu items don't like '|'.
* app/widgets/gimpdock.c: removed the confirmation dialog when
closing docks and simply add them to the recent docks container.
This code is totally misplaced and will move to another file soon.
svn path=/trunk/; revision=25671
2008-05-14 Michael Natterer <mitch@gimp.org>
* app/menus/windows-menu.c
* app/actions/windows-actions.c
* menus/image-menu.xml.in: move the list of dockable dialogs and
the list of recent docks to submenus and keep the list of open
image windows and docks at the "Windows" menu toplevel. The list
of recent docks doesn't exist yet, its contents are fake.
svn path=/trunk/; revision=25666
2008-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpaction.[ch]: add an "ellipsize" property that is
applied to all proxy menu items' labels.
* app/actions/windows-actions.c: set the dock actions to
PANGO_ELLIPSIZE_END because their labels can be insanely long.
svn path=/trunk/; revision=25635
2008-05-11 Michael Natterer <mitch@gimp.org>
* app/actions/windows-commands.[ch]
* app/actions/windows-actions.c
* app/menus/windows-menu.c: add dynamic actions and menu items for
all open docks. Present the dock when the menu item is selected.
svn path=/trunk/; revision=25633
2008-05-10 Michael Natterer <mitch@gimp.org>
* app/actions/windows-actions.c: renamed the "Create New Dock"
submenu to simply "Docks". Its contents are about ti change soon.
* menus/image-menu.xml.in: changed accordingly. Added a "Docks"
placeholder inside and add the "show toolbox" menu item there.
svn path=/trunk/; revision=25628
2008-05-10 Michael Natterer <mitch@gimp.org>
* app/actions/windows-actions.c: don't hide the empty images menu,
use gimp_image_get_uri() instead of the object's name.
svn path=/trunk/; revision=25626
2008-05-10 Michael Natterer <mitch@gimp.org>
Start changing the "Dialogs" menu to "Windows", still incomplete.
Addresses bug #309707.
* app/actions/Makefile.am
* app/actions/windows-actions.[ch]
* app/actions/windows-commands.[ch]: new files which currently
hold the "show toolbox" action and callback and new code which
maintains automatically generated actions for accessing (raising)
all open images.
* app/actions/actions.c: register the new "windows" action group.
* app/actions/dialogs-actions.c
* app/actions/dialogs-commands.[ch]: remove "show toolbox"
action and callback and also the action for the "Disalogs" menu.
* app/menus/Makefile.am
* app/menus/windows-menu.[ch]: new files which create and destroy
the menu items for the image window actions.
* app/menus/menus.c: register the "windows" action group with
all UI managers that have the "dialogs" action group.
* app/menus/image-menu.c (image_menu_setup): call
windows_menu_setup().
* app/gui/gui.c: s/dialogs_show_toolbox/windows_show_toolbox/g
* menus/image-menu.xml.in: some minor s/dialogs/windows/
and add the "Images" submenu.
svn path=/trunk/; revision=25623
2008-05-05 Michael Natterer <mitch@gimp.org>
* app/actions/drawable-commands.c
(drawable_levels_stretch_cmd_callback): the second parameter of
gimp_drawable_levels_stretch() is now a GimpProgress.
svn path=/trunk/; revision=25570
2008-04-22 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c (view_actions_update): simplify call
to window_actions_update() (we already have a local "shell"
variable that is NULL when there is no display).
svn path=/trunk/; revision=25514
2008-04-09 Michael Natterer <mitch@gimp.org>
* menus/image-menu.xml.in: add "File/New" submenu and an "Acquire"
placeholder inside it. Removed "File/Acquire". Removed the "Xtns"
menu.
* app/plug-in/plug-in-menu-path.[ch] (plug_in_menu_path_map):
add "menu_label" parameter and add support for mapping around
individual menu items while preserving their translation and
mnemonics. Add mappings for the known menus from "Xtns" and map
them to "File/New".
Map everything else in "Xtns" to "Filters/Extensions".
* app/plug-in/gimppluginmanager-menu-branch.c
(gimp_plug_in_manager_add_menu_branch): pass the menu_label so
menu branches can be mapped with their translation.
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_add_menu_path): pass NULL because mapping
menu items which have no submenu makes no sense and is redundant.
* app/actions/image-actions.c: remove the "Xtns" menu action.
* app/actions/file-actions.c: add action for the "File/New" menu
and removed the "File/Acquire" action.
* app/actions/edit-actions.c: rename "Paste as New" to
"From Clipboard".
* menus/image-menu.xml.in: add the "From Clipboard" action to the
"File/New" menu.
svn path=/trunk/; revision=25427
2008-04-09 Sven Neumann <sven@gimp.org>
* app/core/gimpcontainer.[ch]: added new methods
gimp_container_get_{first,last}_child().
* app/actions/file-actions.c (file_actions_close_all_update)
* app/dialogs/layer-add-mask-dialog.c (layer_add_mask_dialog_new)
* app/dialogs/palette-import-dialog.c (palette_import_image_callback)
* app/gui/gui-vtable.c (gui_get_empty_display):
* app/widgets/gimpmenudock.c (gimp_menu_dock_image_changed): use
the new GimpContainer methods.
* app/core/gimpundostack.c: use the new GimpContainer methods and
cleaned up the code.
svn path=/trunk/; revision=25426
2008-04-09 Sven Neumann <sven@gimp.org>
* menus/image-menu.xml.in: moved Languages to the bottom. Removed
separator from the Filters list as there was really no rule as to
what goes above and what goes below.
* app/actions/plug-in-actions.c: added Filters->Decor submenu.
* plug-ins/script-fu/script-fu.c (script_fu_extension_init):
removed registration of redundant menu branches.
svn path=/trunk/; revision=25422
2008-04-08 Michael Natterer <mitch@gimp.org>
Start getting rid of the "Xtns" menu:
* app/actions/dialogs-actions.c (dialogs_toplevel_actions):
renamed "Module Manager" to "Modules".
* menus/image-menu.xml.in: move it to "Edit/Preferences" for the
time being so it doesn't block the removal of the "Xtns" menu.
Move "Languages" placeholder from "Xtns" to "Filters".
* app/plug-in/plug-in-menu-path.c (menu_path_mappings): map
"Xtns/Languages" to "Filters/Languages".
svn path=/trunk/; revision=25414
2008-04-07 Sven Neumann <sven@gimp.org>
* app/actions/templates-actions.c
* app/actions/templates-commands.c: when creating an image from a
template, skip the New Image dialog as suggested in bug #480802.
svn path=/trunk/; revision=25391
2008-04-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplay.[ch]: added new function
gimp_display_close() which decides if gimp_display_delete() or
gimp_display_empty() needs to be called.
* app/display/gimpdisplay-foreach.[ch]: added new function
gimp_displays_close() and removed the 'do_quit' parameter from
gimp_displays_delete().
* app/gui/gui.c (gui_exit_callback): changed accordingly.
* app/display/gimpdisplayshell-close.c: removed
gimp_display_shell_really_close() and call gimp_display_close()
instead.
* app/display/gimpdisplayshell.c (gimp_display_shell_empty):
moved
code to update the ui managers here.
* app/actions/file-commands.c (file_save_cmd_callback)
(file_close_cmd_callback)
* app/dialogs/file-save-dialog.c (file_save_dialog_response)
* app/dialogs/quit-dialog.c (quit_close_all_dialog_response):
close displays instead of deleting them.
* app/gui/gui-vtable.c (gui_display_delete): call
gimp_display_close().
svn path=/trunk/; revision=25377
2008-04-02 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c: don't set a help-id on items in the
Open Recent menu.
* app/menus/file-menu.c (file_menu_setup): show a larger thumbnail
in the tooltips for recently used images.
svn path=/trunk/; revision=25332
2008-03-25 Michael Natterer <mitch@gimp.org>
* app/actions/image-actions.c: remove "image-new-from-image"
action.
* app/actions/image-commands.[ch]: remove its callback and made
the "image-new" callback use the current image's dimensions
instead.
* menus/image-menu.xml.in: use the "image-new" action.
svn path=/trunk/; revision=25218
2008-03-25 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: renamed
file_last_opened_cmd_callaback() to file_open_recent_cmd_callback().
Use the empty display as progress object.
svn path=/trunk/; revision=25215
2008-03-25 Sven Neumann <sven@gimp.org>
* app/actions/documents-commands.c: only fiddle with
GtkRecentManager when "save-document-history" is enabled.
* app/config/gimprc-blurbs.h
* app/dialogs/preferences-dialog.c: changed description and
label
for the "save-document-history" option.
svn path=/trunk/; revision=25212
2008-03-24 Sven Neumann <sven@gimp.org>
* app/core/gimp-user-install.c (user_install_migrate_files):
don't
migrate "documents".
* app/actions/documents-commands.c
(documents_remove_cmd_callback)
(documents_remove_dangling_foreach): remove from
GtkRecentManager
before removing the item from the documents list.
svn path=/trunk/; revision=25196
2008-03-24 Sven Neumann <sven@gimp.org>
* app/actions/documents-commands.c
(documents_remove_dangling_foreach): also remove the dangling
item
from GtkRecentManager.
svn path=/trunk/; revision=25191
2008-03-24 Sven Neumann <sven@gimp.org>
Do not any longer keep the document history in two places. We
only
use GtkRecentManager now:
* app/core/Makefile.am
* app/core/gimp-documents.[ch]: removed these files.
* app/core/gimpdocumentlist.c: removed code to load and save the
"documents" file.
(gimp_document_list_add_uri): call gimp_recent_list_add_uri()
here.
* app/core/gimpimagefile.[ch]: added function to set the
mime-type.
* app/core/gimp.c (gimp_restore): removed code to load the
document history.
(gimp_real_exit): removed code to save it.
* app/core/gimp-gui.[ch]: extended the vtable with a method to
populate the document list.
* app/gui/gui-vtable.c: added code to populate the document
history
from the list of recently used files kept by GtkRecentManager.
* app/gui/gui.c (gui_restore_callback): load the recent files
here.
* app/file/file-open.c
* app/file/file-save.c: no need to call
gimp_recent_list_add_uri()
any longer as gimp_document_list_add_uri() does that for us now.
* app/actions/documents-commands.c
(documents_clear_cmd_callback):
purge the items from GtkRecentManager. Also changed the dialog
to
emphasize that this operation now affects the document history
in
all applications.
* docs/gimp.1.in: removed reference to "documents" file.
svn path=/trunk/; revision=25190
2008-03-23 Michael Natterer <mitch@gimp.org>
Never shrink the empty display when filling it, only grow:
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-scale.[ch]: add "gboolean
grow_only" parameters to shrink_wrap() APIs which restricts
resizing of the window to growing.
* app/display/gimpdisplayshell-scale.[ch]
(gimp_displaY_shell_scale_resize): remove boolean "redisplay"
parameter because is was always passed as TRUE. Add boolean
"grow_only" instead and pass it on to shrink_wrap()
* app/actions/view-commands.c
* app/display/gimpdisplayshell-handlers.c: pass grow_only = FALSE.
* app/display/gimpdisplayshell.c (gimp_display_shell_idle_fill):
pass grow_only = TRUE.
svn path=/trunk/; revision=25178
2008-03-21 Michael Natterer <mitch@gimp.org>
Remove the toolbox menu:
* configure.in: remove --enable-toolbox-menu option.
* menus/Makefile.am
* menus/toolbox-menu.xml.in: removed.
* menus/image-menu.xml.in: add the debug menu here.
* menus/menus.xsl: remove transformations depending on whether
there is a toolbox menu or not.
* app/menus/Makefile.am
* app/menus/toolbox-menu.[ch]: removed.
* app/menus/menus.c: remove the toolbox menu but keep the
<Toolbox> UI manager around so we can configure its actions
separate from normal docks.
* app/actions/image-actions.c (image_actions): remove the action
for the toolbox menubar.
* app/widgets/gimptoolbox.c: remove all menu code.
* app/plug-in/plug-in-menu-path.c: map plug-in registered toolbox
menu items to their new location in the image menu
unconditionally.
* plug-ins/common/screenshot.c
* plug-ins/common/uniteditor.c
* plug-ins/script-fu/script-fu.c
* plug-ins/script-fu/scripts/web-browser.scm
* plug-ins/twain/twain.c
* plug-ins/winsnap/winsnap.c: remove menu registrations under
<Toolbox>/File and change <Toolbox>/Help to <Image>/Help. Leave
<Toolbox>/Xtns untouched until its final location and name are
decided.
svn path=/trunk/; revision=25156
2008-03-18 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayoptions.[ch]: add new options object
for the "no image" display appearance.
* app/display/gimpdisplayshell.[ch]: keep one of them around.
* app/display/gimpdisplayshell-appearance.[ch]: use the options
object when the display is empty. Add guards against no image
to some functions. Add gimp_display_shell_appearance_update()
which sets all options according to the current display state
(normal, fullscreen, no image).
* app/actions/view-actions.c: don't allow to configure the GUI
of the empty display.
* app/display/gimpdisplayshell-callbacks.c: use the new appearance
update function instead of doing it all here.
* app/display/gimpdisplayshell-close.c
* app/gui/gui-vtable.c: update the appearance when clearing or
filling the display.
* app/display/gimpdisplayshell-selection.c: forgot some guards
against empty displays.
svn path=/trunk/; revision=25114
2008-03-18 Michael Natterer <mitch@gimp.org>
First draft of the "no image open" window, which is implemented as
a display without image (a view with NULL model). Didn't change
the display's appearance yet so I can first make sure the display
without image works properly in all details before hiding these
details.
* app/core/gimp-gui.[ch]: add "gimp" parameter to display_create()
and allow "image" to be NULL.
* app/core/gimpcontext.c (gimp_context_real_set_display): a
display's image can be NULL now.
* app/display/gimpdisplay.[ch]: add Gimp and GimpDisplayConfig
members. Add Gimp parameter to gimp_display_shell_new(). Changed
gimp_display_reconnect() to gimp_display_set_image() and allow to
set a NULL image.
* app/gui/gui-vtable.c (gui_display_create): if there is a single
display without an image, call gimp_display_set_image() on that
display instead of creating a new one.
* app/display/gimpdisplayshell-close.c: if the last display is
closed, don't close it but make it empty. Factored out that code
to gimp_display_shell_really_close().
* app/display/gimpdisplayshell-dnd.c: when dropping uris on an
empty display, open the first one into that display and the other
ones as layers of the newly opened image. This is consistent with
dropping on an existing image but maybe needs some discussion.
* app/display/gimpdisplayshell-callbacks.c: bail out early in the
tool event callback so tools never have to deal with empty
displays. In expose(), draw the drop zone on the empty display.
* app/display/gimpdisplayshell-title.c: set the empty display's
title to "Gimp - Drop Files".
* app/display/gimpdisplay-foreach.c
* app/display/gimpdisplay-handlers.c
* app/display/gimpdisplayshell-appearance.c
* app/display/gimpdisplayshell-autoscroll.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-cursor.c
* app/display/gimpdisplayshell-dnd.c
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell-preview.c
* app/display/gimpdisplayshell-render.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-scroll.c
* app/display/gimpdisplayshell-selection.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/display/gimpstatusbar.c: use display->gimp and
display->config instead of going via the image. Guard against
empty displays in some few places (most places can't be
called). Where needed, use the canvas' dimensions instead of the
image's dimensions so scroll offsets and scrollbars still have
sane values instead of the last image's ones.
* app/actions/actions.c (action_data_get_gimp)
(action_data_get_context): use display->gimp instead of
display->image->gimp.
* app/actions/edit-commands.c (edit_paste_cmd_callback): redirect
to "paste as new" if there is an empty display.
* app/actions/tools-commands.c (tools_select_cmd_callback): don't
initialize the new tool on an empty display.
* app/actions/view-actions.c (view_actions_update): changed lots
of sensitivity settings to be insensitive when there is no image
(instead of no display).
* app/actions/view-commands.c: use the display's config object
instead of gimp's.
svn path=/trunk/; revision=25113
2008-03-06 Sven Neumann <sven@gimp.org>
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]
* app/tools/gimptransformtool.c: allow to control the preview
opacity by actions (defaults to < to > keys).
svn path=/trunk/; revision=25050
2008-03-04 Sven Neumann <sven@gimp.org>
* app/actions/edit-commands.c (edit_copy_visible_cmd_callback)
(edit_cut_cmd_callback): added statusbar messages informing the
user that pixels have been transferred to the clipboard.
svn path=/trunk/; revision=25035
2008-02-24 Sven Neumann <sven@gimp.org>
* app/actions/edit-actions.c: removed default keyboard shortcuts
from actions that work with named buffers. Use Ctrl-Shift-V as
the
default keyboard shortcut for "Paste As New Image" and
Ctrl-Shift-C for "Copy Visible".
svn path=/trunk/; revision=24954
2008-02-21 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-actions.c (plug_in_actions_history_changed):
don't call plug_in_actions_update() because that updated the
sensitivity of *all* plug-in actions according to the properties
of the *current* image. Instead, look up the original GtkAction of
the history items of *this* action group and copy the sensitivity
from that action. Fixes bug #517683.
svn path=/trunk/; revision=24934
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/tools/gimpimagemaptool.h: don't #include <gegl.h>
* app/actions/tools-commands.c
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimp-tools.c: include it here. Whenever the build
breaks because of some GEGL change in GIMP, please inlcude
<gegl.h> instead of <glib-object.h> or before <gtk/gtk.h> in the
affected .c files.
svn path=/trunk/; revision=24685
2007-12-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcairo-utils.[ch]: addec const qualifiers to
GimpRGB parameters.
* app/widgets/gimprender.[ch]: removed global variables for
checkerboard colors and introduced functions to get the
checkerboard colors as pointers to GimpRGB structs.
* app/actions/view-actions.c
* app/display/gimpdisplayshell-appearance.c
* app/widgets/gimpviewrenderer.c
* app/widgets/gimpcolormapeditor.c: changed accordingly.
svn path=/trunk/; revision=24451
2007-12-20 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-menu-branch.[ch]: added accessor
for the list of menu branches.
* app/actions/plug-in-actions.c (plug_in_actions_setup): use it.
svn path=/trunk/; revision=24417
* app/widgets/gimphelp-ids.h
* app/display/gimpdisplayshell-scale.[ch]
* app/display/gimpnavigationeditor.[ch]
* app/actions/view-commands.[ch]
* app/actions/view-commands.c:
Changed "Fit Image to Window" to "Fill Window", and changed
"fit-to" to "fill" in all the related things. Fixes
bug #490364.
svn path=/trunk/; revision=24370
2007-12-14 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch]: added GErrors when functions can fail.
* app/actions/edit-commands.c: handle the returned errors.
* tools/pdbgen/pdb/edit.pdb: same here (*don't* pass the error as
usual since these functions never fail but have a boolean return
value indicating success instead; ugly, but better than having the
gimp_message() calls in the core). Also changed the named buffer
cut and copy functions to do the same (never fail but return a
NULL buffer name on failure), so they behave as documented.
* app/pdb/edit_cmds.c: regenerated.
svn path=/trunk/; revision=24362
2007-12-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimprender.[ch]: export the light and dark check
color so that places that just need this information don't have to
access the gimp_render_blend_{dark,light}_check arrays.
* app/actions/view-actions.c
* app/display/gimpdisplayshell-appearance.c
* app/widgets/gimpcolormapeditor.c: changed accordingly.
svn path=/trunk/; revision=24351
2007-12-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: added GErrors to
gimp_selection_extract() and gimp_selection_float().
* app/core/gimp-edit.c
* app/tools/gimpeditselectiontool.c
* app/actions/select-commands.c: handle the returned error.
* app/core/gimpdrawable-transform.c: pass NULL errors since this
file knows what it does and won't get errors.
* tools/pdbgen/pdb/selection.pdb: pass the error.
* app/pdb/selection_cmds.c: regenerated.
svn path=/trunk/; revision=24286
2007-12-06 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore-stroke.[ch]: added GError arguments and
fixed all functions to abort when the first call to
gimp_paint_core_start() fails (it won't succeed either for the
next path or whatever segemts).
* app/core/gimpitem.[ch]: added GError to gimp_item_stroke()
* app/core/gimpselection.c
* app/core/gimpchannel.c
* app/vectors/gimpvectors.c: don't gimp_message() in
GimpItem::stroke() but set the error.
* app/dialogs/stroke-dialog.c
* app/actions/vectors-commands.c
* app/actions/select-commands.c: handle the returned errors.
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/paint_tools.pdb: pass the error to the stroke
functions.
* app/pdb/paint_tools_cmds.c
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=24273
2007-12-06 Michael Natterer <mitch@gimp.org>
Move some gimp_message() calls where they belong:
* app/core/gimplayer-floating-sel.[ch]: removed unreachable
gimp_message() in floating_sel_anchor() and added GError parameter
to floating_sel_to_layer().
* app/core/gimplayer.c
* app/core/gimpimage-quick-mask.c
* app/actions/layers-commands.c: pass NULL or an error as
appropriate and show the error message.
* tools/pdbgen/pdb/floating_sel.pdb: set the error when the passed
layer was no floating selection.
* app/pdb/floating_sel_cmds.c: regenerated.
svn path=/trunk/; revision=24272
2007-12-05 Martin Nordholts <martinn@svn.gnome.org>
* app/actions/tool-options-commands.c
(tool_options_save_to_cmd_callback)
(tool_options_restore_from_cmd_callback): Only care about
GIMP_CONFIG_PARAM_SERIALIZE properties, fixes bug #498948.
svn path=/trunk/; revision=24269
2007-11-28 Sven Neumann <sven@gimp.org>
* app/actions/drawable-commands.c (drawable_flip_cmd_callback):
fixed orientation type used for linked items (bug #499161).
svn path=/trunk/; revision=24238
2007-10-06 Sven Neumann <sven@gimp.org>
* app/core/gimpselection.c (gimp_selection_float): don't pop up
a
warning dialog if the selection is empty (bug #483896).
* app/actions/select-commands.c (select_float_cmd_callback): use
gimp_message() here in case that gimp_selection_float() fails.
svn path=/trunk/; revision=23746
2007-09-30 Sven Neumann <sven@gimp.org>
* app/actions/templates-commands.c: reverted last change. We
would
also have to change a string if we wanted to do this change.
svn path=/trunk/; revision=23696
2007-09-30 Sven Neumann <sven@gimp.org>
* app/actions/templates-commands.c
(templates_create_image_cmd_callback): when creating an image
from a
template, skip the New Image dialog as suggested in bug #480802.
svn path=/trunk/; revision=23695
2007-09-15 Michael Natterer <mitch@gimp.org>
Make layer masks work consistently on layers without alpha.
Fixes bug #475548.
* app/core/gimplayer.c (gimp_layer_apply_mask): changed to work
on layers without alpha.
* app/actions/layers-commands.c (layers_add_mask_response): don't
automatically add an alpha channel when adding a layer mask.
svn path=/trunk/; revision=23555
2007-08-18 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c (view_actions_update): use _()
instead of N_() when setting the label of "Revert Zoom"
directly. Fixes bug #467933.
svn path=/trunk/; revision=23326
2007-06-27 Sven Neumann <sven@gimp.org>
* app/actions/image-actions.c: as suggested by the HIG, use
Alt-Return as default shortcut for the Image Properties dialog.
svn path=/trunk/; revision=22848
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-06-15 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c (view_actions_update): make sure all
view actions are insensitive when there is no view.
svn path=/trunk/; revision=22787
2007-06-09 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-resize.[ch]: added
gimp_image_resize_to_selection().
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: added an action and a menu item for
it.
Fixes bug #335672.
* plug-ins/common/align_layers.c: resolved a conflicting
mnemonic.
svn path=/trunk/; revision=22749
2007-05-27 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch] (gimp_container_get_neighbor_of_active):
new utility function which returns the neighbor of a container's
active item.
* app/widgets/gimpcontainerview-utils.[ch]
(gimp_container_view_remove_active): remove a container view's
active item, using above function to select its neighbor.
* app/actions/data-commands.c
* app/actions/buffers-commands.c
* app/actions/documents-commands.c
* app/actions/templates-commands.c: use above functions to select
reasonable items when deleting from a list (instead of always
jumping to the first item).
svn path=/trunk/; revision=22632
2007-04-17 Sven Neumann <sven@gimp.org>
Allow other applications to open images in GIMP as if they were
new images (without associating a filename). Fixes bug #423118.
* app/file/file-open.[ch]: added parameter 'as_new' to
file_open_image() and its variants.
* app/actions/data-commands.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/core/gimpimagefile.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptoolbox-dnd.c: changed accordingly.
* app/app.[ch]
* app/main.c: added new command-line option '--as-new'.
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: added new method "OpenAsNew" to the
D-Bus interface.
* docs/gimp.1.in: document the new command-line option.
svn path=/trunk/; revision=22264
2007-04-12 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-commands.c: if a plug-in or script
registered with a DISPLAY argument after the run-mode argument,
then pass the ID of the active display to the script, optionally
followed by image and drawable IDs.
* plug-ins/script-fu/scheme-wrapper.c
* plug-ins/script-fu/script-fu-enums.h
* plug-ins/script-fu/script-fu-interface.c
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/script-fu-types.h: added SF-DISPLAY parameter.
svn path=/trunk/; revision=22241
2007-03-31 Michael Natterer <mitch@gimp.org>
* app/actions/dialogs-actions.c
* app/actions/dock-actions.c
* app/actions/edit-actions.c
* app/actions/file-actions.c
* app/actions/help-actions.c
* app/actions/layers-actions.c
* app/actions/plug-in-actions.c
* app/actions/tools-actions.c
* app/actions/vectors-actions.c
* app/actions/view-actions.c
* app/actions/window-actions.c: add many missing action tooltips
and fixed some broken/inconsistent ones. Sorry for the big string
change but the inconsistenties were just too big to ship 2.4 like
that.
svn path=/trunk/; revision=22204
2007-03-19 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-actions.c
* app/menus/plug-in-menus.c: GimpPlugInProcedure has a boolean
member "file_proc" now, use it instead of checking prefixes,
extensions and magics manually.
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_set_mime_type)
(gimp_plug_in_procedure_set_thumb_loader): set
plug_in_proc->file_proc to TRUE here too.
* plug-ins/common/pnm.c: register "image/x-portable-anymap" as
mime-type and "pnm" as extension for file-pnm-save so it's
recognized as file procedure.
svn path=/trunk/; revision=22152
2007-03-19 Michael Natterer <mitch@gimp.org>
Make sure we create actions for all plug-in procedures which have
a menu_label, so it's possible to assign shortcuts to them.
Fixes bug #371300.
* app/actions/plug-in-actions.c (plug_in_actions_setup): removed
duplicate code and simply call plug_in_actions_register_procedure()
on all actions, it already does all needed checks and signal
connections by itself.
(plug_in_actions_update)
(plug_in_actions_register_procedure)
(plug_in_actions_unregister_procedure): unified checks for whether
a plug-in procedure needs an action or not: it needs either a
menu_label or menu_paths and must not have extensions, prefixes or
magics.
* libgimp/gimp.c (gimp_install_procedure): document that it's
possible to install shortcut-only procedures by registering a
menu_label but no menu_paths.
svn path=/trunk/; revision=22147
2007-03-10 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: cache the result of
gimp_plug_in_procedure_get_label() and made the return value
const.
* app/actions/plug-in-actions.c
* app/plug-in/gimpplugin-cleanup.c
* app/plug-in/gimppluginmanager.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed accordingly.
* app/file/file-open.c
* app/file/file-save.c: include the plug-in name (or actually
the
label) in the error messages.
svn path=/trunk/; revision=22095
2007-03-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
instead of "libgimpmath/gimpmath.h".
* app/core/gimpbrush.h
* app/paint/gimppaintcore.h
* app/paint/gimpperspectiveclone.h
* app/text/gimptext.h
* app/tools/gimptransformtool.h: include gimpvector.h and
gimpmatrix.h explicitely where they are needed in public structs.
* app/*/*.c
* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
where needed.
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=22084
2007-03-05 Michael Natterer <mitch@gimp.org>
Makes default Select -> Border behaviour consistent, and makes
'sticky image edges' optional by adding a checkbox in the Border
Selection dialog. Patch by Martin Nordholts. Fixes bug #350009.
* app/actions/select-commands.c (select_border_cmd_callback)
(select_border_callback): Added edge-lock checkbox to dialog and
modified calls accordingly.
* app/paint-funcs/paint-funcs.c (border_region)
(compute_transition): Fixed algorithm. (compute_transition is a
helper function to the algorithm). Also clarified many parts of
the algorithm with comments.
* app/paint-funcs/paint-funcs.h
* app/core/gimpchannel.[ch]
* app/core/gimpselection.c: Added gboolean edge_lock to function
calls/signatures.
* app/pdb/selection_cmds.c: Regenerated.
svn path=/trunk/; revision=22047
2007-02-18 Sven Neumann <sven@gimp.org>
* app/actions/edit-commands.c (edit_copy_cmd_callback): show an
informational message in the statusbar. There is otherwise no
indication that something has happened.
svn path=/trunk/; revision=21940
2007-02-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: add "locale_domain" and
"help_domain" members and APIs to get/set them. Removed locale and
help domain parameters from all other functions.
* app/plug-in/gimpplugin.c (gimp_plug_in_add_temp_proc)
* app/plug-in/plug-in-def.c (plug_in_def_add_procedure)
(plug_in_def_set_locale_domain_name)
(plug_in_def_set_help_domain_name): make sure all plug-in procedures
have locale and help domains.
* app/plug-in/gimppluginmanager.[ch]: removed function
gimp_plug_in_manager_get_label().
* app/plug-in/gimppluginmanager.c
* app/plug-in/gimpplugin-cleanup.c
* app/actions/plug-in-actions.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed (simplified) accordingly.
svn path=/trunk/; revision=21937
2007-02-16 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-close.c: use GTK_STOCK_SAVE as icon
for the message dialog.
* app/actions/data-commands.c (data_delete_cmd_callback): improved
delete dialog.
svn path=/trunk/; revision=21928
2007-02-14 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-actions.c
* app/plug-in/gimppluginprocedure.[ch]: added utility function to
retrieve the translated blurb of a plug-in procedure. Make sure
that gettext isn't called with the empty string.
svn path=/trunk/; revision=21917
2007-01-23 Kevin Cozens <kcozens@cvs.gnome.org>
* app/actions/context-actions.c
* app/actions/tools-actions.c: s/minumum/minimum/ typo
spotted by Joao S. O. Bueno Calligaris.
svn path=/trunk/; revision=21772
2007-01-20 Michael Natterer <mitch@gimp.org>
Close the display after "Save as" when invoked via the "Close
Without Saving" dialog. Fixes bug #383700.
* app/actions/actions-types.h: added enum GimpSaveMode { SAVE,
SAVE_AS, SAVE_A_COPY, SAVE_AND_CLOSE }.
* app/actions/file-actions.c: changed the 4 save actions into
GimpEnumActions with above enum as values.
* app/actions/file-commands.[ch]: merged the save callbacks into
one and pass a "close_after_saving" boolean to
file_save_dialog_show().
* app/widgets/gimpfiledialog.[ch]: added "gboolean
close_after_saving" parameter to gimp_file_dialog_set_image() and
to the GimpFileDialog struct.
* app/dialogs/file-save-dialog.c: if the file was saved
successfully and close_after_saving is TRUE, close the display if
the image has not become dirty again in the meantime.
svn path=/trunk/; revision=21743
2007-01-16 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c (file_open_dialog_show): use the
toplevel widget as transient parent.
svn path=/trunk/; revision=21724
2007-01-15 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.[ch]
* app/actions/file-actions.c
* menus/image-menu.xml.in: removed "file-open-from-image" action
and simply use "file-open-image" from both File menus. Makes the
behavior more predictable and removes unneeded complexity.
svn path=/trunk/; revision=21716
2006-12-18 Sven Neumann <sven@gimp.org>
* app/actions/edit-actions.c (edit_actions): changed
"undo-editor-popup" to "undo-popup". This was forgotten in the
fix
for #345251. Fixes bug #386960.
2006-12-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpuimanager.[ch]: added new function
gimp_ui_manager_activate_action() as a shortcut for looking up the
action and activating it.
* app/actions/dialogs-actions.c
* app/display/gimpdisplayshell-close.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: use the new function.
* app/actions/file-commands.c
* app/dialogs/file-save-dialog.c: minor code cleanup.
2006-12-11 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c: don't message "Image saved" from
here.
* app/core/gimpimage.[ch]: introduced new signal "saved".
* app/file/file-save.c (file_save): call gimp_image_saved() from
here.
* app/display/gimpdisplay-handlers.c: connect to
GimpImage::saved
and show the "Image saved" message. Makes it show up on all
displays
and regardless of how the file was saved.
* app/display/gimpdisplay.c: fixed typo in comment.
2006-12-11 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]
* app/display/gimpdisplayshell-close.c: introduced new action
'file-save-and-close' and moved display deletion there.
2006-12-10 Sven Neumann <sven@gimp.org>
* app/actions/tool-options-commands.c
(tool_options_save_new_cmd_callback): pass the toplevel widget
as
parent to gimp_query_string_box().
2006-12-10 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimptoolpresets.[ch]: added GimpToolPresets, derived
from GimpList.
* app/core/gimptoolinfo.[ch]: use the new type, renamed
member "options_presets" to "presets".
* app/actions/tool-options-actions.c
* app/actions/tool-options-commands.c
* app/core/gimptooloptions.[ch]
* app/menus/tool-options-menu.c
* app/widgets/gimptooloptionseditor.c: changed accordingly.
* app/tools/gimp-tools.c: let the GimpToolPresets object deal
with
loading and saving the presets from ${gimpdir}/tool-options.
* app/core/gimpcontainer-filter.c
* app/core/gimpdocumentlist.c
* app/core/gimplist.c
* app/text/gimpfontlist.c: use canonical property names.
2006-11-25 Simon Budig <simon@gimp.org>
* libgimpwidgets/gimpresolutionentry.c
* libgimpwidgets/gimpwidgets.def: fix typo in a function name.
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c: handle all enum values
and use sane ones.
* app/widgets/gimpcontrollerinfo.c: fix a warning.
2006-11-22 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c (action_select_property): add support for
G_TYPE_INT properties.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: add actions and callback which
affect the foreground select tool's stroke-width property.
* app/tools/gimpforegroundselecttool.c: map tool-action-value-2
(tool tip size) to the new action.
* app/tools/gimppaintoptions-gui.c: fixed visibility of the brush
scale slider.
2006-11-17 Simon Budig <simon@gimp.org>
* app/core/gimpparamspecs.c: Hack up gimp_value_set_item() to do
the correct thing for subtypes of GimpItems.
* app/actions/plug-in-commands.c: Don't rely on the GimpValues for
type checking, pass the param specs to the _collect functions and
use them for typechecking.
2006-11-17 Michael Natterer <mitch@gimp.org>
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: added actions and callbacks for
the new paint options brush scale property. Assigned new
shortcuts: '<' and '>' are now changing tool-value-1 and '[' and
']' are changing tool-value-2
* app/actions/context-actions.c: removed the shortcuts from the
brush size actions.
* app/tools/gimpbrushtool.c
* app/tools/gimpcolortool.c: set tool-value-2 to brush-scale and
to color-average-radius, so '[' and ']' always affect the size of
the tip of the active tool. tool-value-1 is connected to
context-opacity so that is changeable using '<' and '>' now.
2006-11-05 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]
* menus/image-menu.xml.in: renamed file-open-as-layer to
file-open-as-layers to complete the changes done to fix bug
#358082.
2006-10-29 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-actions.c (plug_in_repeat_action): use the
"value" field for the GimpRunMode, it used to be "0" to reference
the first plug-in in the history.
* app/actions/plug-in-commands.[ch] (plug_in_repeat_cmd_callback):
always pick the first item from the history and use the passed
value as GimpRunMode instead of determining it from the action's
name.
2006-10-29 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-actions.c: use GimpPlugInActions instead of
GimpEnumActions so the menu items show any kind of icons (not only
stock-id icons). Now if any plug-in that shows up in the history
registered non-stock-id icons, this change would be actually
useful ;) Fixes bug #338525.
* app/actions/plug-in-commands.[ch] (plug_in_history_cmd_callback):
new callback for the history, much simpler than
plug_in_repeat_cmd_callback().
2006-10-21 Michael Natterer <mitch@gimp.org>
Added "Edit -> Fade" which allows to modify the paint mode and
opacity of the last drawable operation (fill, plugins etc.).
Started from a patch by Bill Skaggs. Fixes bug #170707.
* app/base/base-enums.[ch] (enum GimpLayerModeEffects): register
the values REPLACE_MODE, ERASE_MODE and ANTI_ERASE_MODE with
the type system.
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpwidgets-constructors.[ch]: added "gboolean
with_replace_modes" to the paint mode menu constructors.
* app/tools/gimppaintoptions-gui.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimplayertreeview.c: pass with_replace_modes = FALSE.
* app/core/gimpdrawableundo.[ch]: added members which keep tiles,
paint mode and opacity of the pasted pixels.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_get_fadeable):
returns a GimpUndo suitable for a fade operation, or NULL.
* app/core/gimp-edit.[ch] (gimp_edit_fade): implements the actual
fade by undoing the last operation and then re-applying the pixels
with different paint mode and opacity.
* app/core/gimpdrawable-combine.c: store the pasted pixels in
the GimpDrawableUndo.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: action and callback for fade.
* app/dialogs/Makefile.am
* app/dialogs/fade-dialog.[ch]: the fade dialog.
* app/widgets/gimphelp-ids.h: the fade help ID.
* menus/image-menu.xml.in: added a menu entry in "Edit".
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-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-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-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.
* 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.[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-08 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added function gimp_get_tool_info().
* app/actions/tools-commands.c
* app/actions/vectors-commands.c
* app/tools/gimppainttool.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptoolbox.c: use the new function instead of poking
into gimp->tool_info_list.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: moved code that deals with
the space key into separate functions. Added space_shaded_tool
to GimpDisplayShell instead of using a static variable for it.
* app/tools/tool_manager.c: removed unused include.
2006-09-06 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-commands.c (plug_in_run_cmd_callback)
(plug_in_repeat_cmd_callback): also add the procedure to the
history if it is called from the "Repeat" or "Re-Show" menus.
* plug-ins/common/vpropagate.c: changed progress text.
2006-09-05 Michael Natterer <mitch@gimp.org>
* app/actions/debug-actions.c
* app/actions/debug-commands.[ch]
* menus/toolbox-menu.xml.in: added "Dump Attached Data" menu item
which prints the stuff that is attached to the gimp and
user_context objects.
2006-09-03 Michael Natterer <mitch@gimp.org>
* app/dialogs/palette-import-dialog.[ch]: removed
palette_inport_dialog_show() and palette_import_dialog_destroy()
and don't remember the created dialog internally. Instead, made
palette_import_dialog_new() public.
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: register it with the
toplevel dialog factory as singleton toplevel.
* app/actions/palettes-commands.c (palettes_import_cmd_callback):
use the dialog factory to create the palette import dialog.
2006-09-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpaction.[ch]: added a context property and use
it when creating GimpViews.
* app/actions/file-actions.c: set the context on the "Open Recent"
actions.
2006-09-01 Michael Natterer <mitch@gimp.org>
* app/actions/gradient-editor-actions.c
* app/actions/gradient-editor-commands.[ch]: added actions and
callbacks to select a gradient segment's left and right color
type. Handle FG/BG color correctly in a few places. Use
GimpDataEditor's context instead of the user context.
* menus/gradient-editor-menu.xml: added the actions to the menu.
Cleanup:
* app/actions/palette-editor-actions.c
* app/actions/palette-editor-commands.c: use GimpDataEditor's
context instead of the user context.
* app/actions/brush-editor-actions.c: remove unused context
variable.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.c
(gimp_container_view_real_set_container)
(gimp_container_view_real_set_context)
(gimp_container_view_item_selected)
(gimp_container_view_thaw): support setting a context even if
the viewed container's children_type is *not* a property of
GimpContext. This removes a major restriction of container
views and allows to get rid of some hacks:
* app/widgets/gimpitemtreeview.[ch]: removed GimpContext member
and implement GimpContainerView::set_context() instead of
GimpDocked::set_context().
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimplayertreeview.c: use GimpContainerView's context
instead of GimpItemTreeView's and implement GimpContainerView's
set_context() instead of GimpDocked's.
* app/actions/actions.c (action_data_get_gimp)
(action_data_get_context): don't special-case GimpItemTreeView any
more, it's just like a normal GimpContainerView now.
* app/widgets/gimpcontrollerlist.c
(gimp_controller_list_constructor): set a context on the
GimpContainerView so its renderers have a context to use.
2006-08-29 Michael Natterer <mitch@gimp.org>
Changed GimpViewable preview rendering to have a context to get
FG/BG/whatever from. Use the context to enable dynamic FG/BG
colors in gradients. Fixes bug #127676 and bug #352214. Addresses
bug #128367 (doesn't fix it because there's no loading/saving and
no GUI yet).
* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
specifying gradient colors in terms of foreground and background.
* app/core/gimpgradient.[ch]: added color_type members to the
GimpGradientSegment struct and honor them in
gimp_gradient_get_color_at(). Added GimpContext parameters to all
functions which finally call get_color_at().
* app/core/gimp-gradients.c: use the new method to implement the
builtin gradients.
* app/core/gimpviewable.[ch]: added GimpContext parameters to all
get_preview() and get_pixbuf() functions.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-preview.[ch]
* app/core/gimpgradient.c
* app/core/gimpimage-preview.[ch]
* app/core/gimpimagefile.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.[ch]
* app/text/gimpfont.c
* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
and ::get_pixbuf() implementations accordingly.
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.[ch]
* app/dialogs/dialogs-constructors.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/resize-dialog.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/paint/gimppaintoptions.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/actions/gradient-editor-commands.c
* app/widgets/gimpaction.c
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpbufferview.c
* app/widgets/gimpcellrendererviewable.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpclipboard.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpgradientselect.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppaletteeditor.[ch]
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.[ch]
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpview-popup.[ch]
* app/widgets/gimpview.[ch]
* app/widgets/gimpviewablebutton.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderer-frame.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
and parameters, implement GimpDocked::set_context() in many
widgets. Pass these locally remembered contexts to GimpViewable
functions. Did some minor cleanups on the way. There are still
some minor FIXMEs around where the code uses a NULL context (which
is allowed by the APIs)
* app/pdb/drawable_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/image_cmds.c: regenerated.
2006-08-25 Michael Natterer <mitch@gimp.org>
* app/actions/file-actions.c (file_actions_setup)
(file_actions_last_opened_update): if there are too few images in
the document history, use the action's name as its label for the
empty slots, to keep the translation of "" from showing up in the
shortcut editor.
2006-08-08 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-history.[ch]: added API to
remove
a procedure from the history.
* app/plug-in/gimppluginmanager.c
(gimp_plug_in_manager_remove_temp_proc): remove the procedure
from
the history.
2006-08-08 Sven Neumann <sven@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/gimppluginmanager-history.[ch]: new files that
deal
with the history of plug-in procedures.
* app/actions/plug-in-actions.[ch]
* app/plug-in/gimppluginmanager.[ch]: changed accordingly.
2006-08-08 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-commands.c (plug_in_run_cmd_callback): add
all procedures that take an image paramter to the history of
last-used procedures. Fixes bug #348243.
(plug_in_repeat_cmd_callback): use
plug_in_collect_drawable_args()
to construct the procedure arguments.
* app/actions/plug-in-actions.c
* app/plug-in/gimppluginmanager.[ch]: renamed "last_plug_ins" to
"history"; it's actually a list of procedures.
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-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-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-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-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 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/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-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.
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.
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...
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-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-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-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-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-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-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-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 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-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-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactiongroup.[ch]: take const arrays of action
entries.
* app/actions/*-actions.c: declare action arrays as const.
2006-04-07 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-run.[ch]: made plug_in_run_temp() public and
changed its parameters to match the ones of plug_in_run().
* app/pdb/gimpprocedure.[ch]: added GimpProcedure::execute_async()
which takes an additional display_ID parameter and returns nothing.
* app/pdb/gimppluginprocedure.c
* app/pdb/gimptemporaryprocedure.c: implement it, using
plug_in_run() and plug_in_run_temp().
* app/core/gimp-utils.[ch]: added gimp_value_array_truncate()
which takes a GValueArray and the number of values to truncate the
array to.
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/pdb/gimp-pdb.c
* app/plug-in/plug-ins.c
* app/widgets/gimphelp.c: use gimp_procedure_execute_async()
instead of plug_in_run() and don't #include "plug-in-run.h".
Truncate GValueArray passed to plug-ins again, and don't just pass
some default values to the noninteractive args.
Unrelated:
* tools/pdbgen/pdb/plug_in.pdb: don't call
gimp_menus_create_branch() here.
* app/plug-in/plug-ins.c (plug_ins_menu_branch_add): call it here
instead.
* app/pdb/plug_in_cmds.c: regenerated.
2006-04-07 Michael Natterer <mitch@gimp.org>
* app/pdb/gimp-pdb.c (gimp_pdb_register)
(gimp_pdb_unregister): ref all registered procedures.
* app/xcf/xcf.c
* tools/pdbgen/app.pl: unref newly created procedures after
registering them.
* app/core/gimp.[ch]: renamed member "plug_in_proc_defs" to
"plug_in_procedures". Renamed "proc_def" variables to "procedure".
* app/actions/plug-in-actions.c
* app/menus/plug-in-menus.c: changed accordingly.
* app/plug-in/plug-ins.[ch]: keep a reference to all procs which
are in gimp->plug_in_procedures.
(plug_ins_exit): unref them all and free the list. Apparently we
were leaking them before on exit.
* app/plug-in/plug-in-def.[ch]: s/proc_defs/procedures/. Ref
procedures added with plug_in_def_add_procedure(). Added
plug_in_def_remove_procedure() which unrefs them again. Removed
"free_proc_defs" parameter from plug_in_def_free() and always
unref the procedures.
* app/plug-in/plug-in.[ch]: added plug_in_add_temp_proc() and
plug_in_remove_temp() proc. Ref the added procedures.
* app/plug-in/plug-in-message.c: use the new APIs instead of
adding/removing procs and temp procs from their lists manually.
Unref the newly created procedure after adding then to the
plug_in_def or plug_in.
* app/plug-in/plug-in-rc.[ch]
* app/plug-in/plug-ins-query.c
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-04-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-merge.[ch] (gimp_image_merge_visible_layers):
allow to discard invisible layers as suggested in bug #337557.
* app/actions/image-commands.c
* app/dialogs/image-merge-layers-dialog.[ch]: added a check button
to the Merge Visible Layers dialog to control the new feature.
* app/file/file-open.c
* tools/pdbgen/pdb/image.pdb: pass FALSE for the new parameter.
* app/pdb/image_cmds.c: regenerated.
2006-04-06 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-run.[ch]: removed plug_in_repeat()...
* app/actions/plug-in-commands.c: ...and merged it into
plug_in_repeat_cmd_callback(). It's essentially the same code as
plug_in_run_cmd_callback() and there's no reason (except
historical ones) to keep its implementation separate.
2006-04-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-types.h
* app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure
and made a GObject derived from GimpProcedure (instead of having
a pointer to a GimpProcedure). Added image_types and file_magic
utility functions taken from plug-ins.[ch]. Still lives in the
same crappy files because I am undecided where to put it...
* app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed
switch() statement and always call the internal marshaller because
GimpProcedure::execute() is properly overridden by
GimpPlugInProcedure now.
* app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic
utilities added to GimpPlugInProcedure.
* app/actions/file-commands.c
* app/actions/plug-in-actions.[ch]
* app/actions/plug-in-commands.[ch]
* app/core/gimp-gui.[ch]
* app/core/gimp.[ch]
* app/core/gimpimage.[ch]
* app/dialogs/file-open-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/print-size-dialog.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/file/file-utils.[ch]
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.[ch]
* app/plug-in/plug-in-def.[ch]
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c
* app/plug-in/plug-ins-query.c
* app/widgets/gimpactiongroup.[ch]
* app/widgets/gimpdnd-xds.c
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpfileprocview.[ch]
* app/widgets/gimppluginaction.[ch]
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed addordingly.
* app/pdb/fileops_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
2006-04-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and
corresponding GParamSpecs to use them as PDB arguments.
Each GimpPDBArgType has one or more corresponding GTypes in the
core now.
* app/pdb/gimpargument.[ch] (struct GimpArgument)
(struct GimpArgumentSpec): removed "value" member because the
GValue's/GParamSpec's GType carries just as much information now.
(gimp_argument_type_to_pdb_arg_type): new function which maps
GTypes to GimpPDBArgType.
(gimp_pdb_arg_type_to_string): formerly known as
procedural_db_type_name().
* app/pdb/gimpprocedure.[ch]
* app/pdb/procedural_db.[ch]: completely switch to GValue. Use the
new GParamSpecs for procedure arguments. GimpPDBArgType is only
used for adding compat args/values of plug-in procedures.
(procedural_db_run_proc): the va_list expects a sequence of
(GType, value, GType, value, ..., G_TYPE_NONE) now.
* app/plug-in/plug-in-params.[ch]: changed accordingly.
(plug_in_param_defs_check): removed this function.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use
plug_in_proc_args_check() instead and initialize the GimpProcedure
before doing so.
* tools/pdbgen/app.pl
* tools/pdbgen/pdb.pl: use the new param spec types and their
utility functions. Changed argument/value registration
accordingly.
* app/pdb/procedural-db-query.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-ins.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimphelp.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-03-31 Michael Natterer <mitch@gimp.org>
* app/pdb/gimpprocedure.[ch]: added gimp_procedure_new() and
gimp_procedure_free() functions.
* app/plug-in/plug-in-proc-def.h (struct PlugInProcDef): use a
ProcRecord pointer instead of including the entire struct.
* app/plug-in/plug-in-proc-def.c: use the new() and free()
functions above to allocate/free the ProcRecord.
* app/actions/plug-in-actions.c
* app/actions/plug-in-commands.c
* app/menus/plug-in-menus.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c
* app/plug-in/plug-ins-query.c
* app/plug-in/plug-ins.c
* app/xcf/xcf.c: changed accordingly.
Unrelated:
* app/pdb/gimpprocedure.c (gimp_procedure_execute): be more verbose
when warning about out-of-bounds parameter values.
* tools/pdbgen/pdb/fileops.pdb: allow GIMP_RUN_WITH_LAST_VALS for
file_save because indirect saving (e.g. remote or compressed)
needs it.
* app/pdb/fileops_cmds.c: regenerated.
2006-03-30 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (struct Argument): replace the value
union by a GValue.
(procedural_db_argument_init)
(procedural_db_compat_arg_init): new functions to initialize
an Argument. They call g_value_init() on the Argument's value.
(procedural_db_arguments)
(procedural_db_return_values): initialize the returned Argument
arrays so their GValues are ready to use. Allow to get the
(unsuccessful) return values of a NULL ProcRecord.
(procedural_db_destroy_args): g_value_unset() the values. Added a
"gboolean full_destroy" parameter. Its only effect is to destroy
PDB arrays, everything else is nicely memory managed by GValue.
(procedural_db_execute)
(procedural_db_run_proc): do GValue stuff. Added n_args and
n_return_vals parameters to execute().
(procedural_db_execute_proc): private function to execute a
procedure. Validates the passed in arguments using the registered
GParamSpecs before passing them to the resp. exec method.
* app/plug-in/plug-in-params.[ch] (plug_in_params_to_args): needs
an array of ProcArgs now in order to initialize the Arguments'
GValues correctly. Passing NULL ProcArgs uses
procedural_db_compat_arg_init(), so procedures (plug-ins)
returning more values than expected work.
(plug_in_args_to_params): do GValue stuff here too.
(plug_in_args_destroy): removed this function,
procedural_db_destroy_args() does the same now.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run):
simplified quite a bit because everything returns n_return_values
now. Call plug_in_params_to_args() only of the procedure was found.
(plug_in_handle_proc_return_priv): pass ProcRecs to
plug_in_params_to_args().
* app/batch.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-run.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimppdbdialog.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb: changed accordingly: don't
g_new/g_free Argument arrays, always use procedural_db_foo()
functions. Use GValue functions to get/set Arguments.
* tools/pdbgen/pdb.pl: added get_value_func and set_value_func to
all PDB types. Removed id_func, id_ret_func and check_func. Added
flags which indicated that a type is an ID. Removed unused utility
functions.
* tools/pdbgen/lib.pl: use the flag instead of looking at
functions and value types.
* tools/pdbgen/app.pl: use the get_value_func and set_value_func
to marshal inargs and outargs. Removed all checks performed on
inargs because that's done by GParamSpec validation now. Added the
missing bits to register excluded values with GimpParamSpecEnum.
* app/pdb/*_cmds.c: regenerated.