2005-09-24 Michael Natterer <mitch@gimp.org>
Applied (slightly modified) patch from Sylvain Foret which adds
"Close All" menu entries and dialog. Fixes bug #163532.
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: added "file-close-all" action
and callback.
* app/dialogs/dialogs-constructors.[ch]
* app/dialogs/dialogs.c
* app/dialogs/quit-dialog.[ch]: added close all dialog which is a
modified quit dialog.
* app/widgets/gimphelp-ids.h: added help ID.
* menus/image-menu.xml.in
* menus/toolbox-menu.xml.in: add close all next to quit.
2005-05-18 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c (file_open_dialog_show): set the
file dialogs transient for the parent window (display or toolbox).
2005-02-24 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c (file_open_as_layer_cmd_callback):
preselect the image just as in file_open_from_image_cmd_callback().
2005-02-13 Michael Natterer <mitch@gimp.org>
* app/file/file-save.[ch]: removed file_save() and renamed
file_save_as() to file_save() which always requires "uri" and
"file_proc" to be passed. This functions does no more file_proc by
extension finding and stuff.
* app/actions/file-commands.c (file_save_cmd_callback): only call
file_save() if the image has both uri and save_proc, fall back to
file_save_as_cmd_callback() otherwise.
* app/dialogs/file-save-dialog.c: completely chopped and
reconstructed. Added tons of checks for extension vs. save_proc
consistency and ask the user if she really wants to save weird
stuff. Added masive debugging output because I'm far from certain
that everything is correct.
2005-01-13 Michael Natterer <mitch@gimp.org>
Made the file open and save dialogs use the last used folder
instead of defaulting to current directory. Fixes bug #162385.
* app/widgets/gimpfiledialog.[ch] (gimp_file_dialog_set_uri):
removed this function because it had no functionality except
creating usability problems.
* app/actions/file-commands.c: use gtk_file_chooser_set_uri()
instead but *only* if we already have an uri from an alread open
image or the document hinstory.
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): set
the file chooser's uri only if we have an uri from the image
itself. Leave the current folder untouched otherwise and just set
the current name (e.g. "Untitled").
* app/dialogs/file-save-dialog.c (file_save_dialog_save_image): on
successful save, remember the used uri by attaching it to the
"gimp" instance.
(file_save_dialog_new): set the last saved uri's folder on the
newly created file save dialog.
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: replace % with space
in file name before showing error message,
fixes bug #162147.
* app/core/gimp-gui.c
* app/widgets/gimpmessagebox.c: be a bit more paranoid
about validating utf8 for messages.
2004-11-16 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c
* app/dialogs/file-save-dialog.c
* app/file/file-save.[ch]
* app/widgets/gimpfiledialog.[ch]: combined "set_uri_and_proc" and
"set_image_clean" parameters into a single "save_a_copy"
parameter. When saving a copy, attach the used URI to the image and
let the "Save a Copy" file chooser default to the last used value.
2004-10-23 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.c (file_save_cmd_callback): don't
g_return_if_fail() if there is no active drawable, just silently
return.
* app/actions/image-commands.c: remember the last merge_type of
the "Merge Visible Layers" dialog.
* app/actions/layers-commands.c: remeber the last values of the
"Add Layer Mask" dialog.
* app/actions/select-commands.c: renamed a bunch of static
variables to be consistent with other variables used to remember
dialog values.
* app/actions/view-commands.c (view_fullscreen_cmd_callback): it's
useless to update the "view-fullscreen" actions here because the
"fullscreen" state of the shell changes asynchronously
2004-10-19 Michael Natterer <mitch@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/vectors-options-dialog.[ch]: one more dialog split
out of actions/.
* app/actions/vectors-commands.c: removed it here. Merged more
utility functions into their only callers.
* app/actions/dockable-commands.c
* app/actions/edit-commands.c
* app/actions/file-commands.c
* app/actions/palettes-commands.c
* app/actions/tool-options-commands.c
* app/actions/view-commands.c: renamed "qbox" and "query_box"
variables to "dialog".
2004-10-14 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c (file_revert_cmd_callback): creata
an UTF-8 filename from the image URI and display that instead of
the URI.
* app/dialogs/convert-dialog.c (convert_dialog_new): removed the
palette size warning for transparent images. The number of colors
is already adjusted to 255. This text was IMO more frightening
than helpful.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagedialog.c: handle parent widget not being
a GtkWindow by calling gtk_widget_get_toplevel().
* app/actions/data-commands.c
* app/actions/edit-commands.c
* app/actions/file-commands.c: ported more boolean queries to
GimpMessageDialog.
2004-10-06 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.c (file_revert_confirm_callback):
removed the code which sets the new image on all contexts where
the old image was set...
* app/display/gimpdisplay-foreach.c (gimp_displays_reconnect):
...and added it here so it happens for all calls of this function,
also from the PDB. Fixes bug #154638.
2004-09-21 Michael Natterer <mitch@gimp.org>
For the sake of completeness, added a GUI for the hidden
"Open as Layer" feature:
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: added "file-open-as-layer"
action and callback. Abuse the "gimage" field of GimpFileDialog to
indicate layer opening (it's otherwise unused for file-open).
* app/dialogs/file-open-dialog.c: if dialog->gimage is non-NULL,
open the selected files as layers for that image.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_FILE_OPEN_AS_LAYER.
* menus/image-menu.xml.in: added it to the menu.
2004-09-13 Michael Natterer <mitch@gimp.org>
* app/actions/file-commands.c: resurrected file_open_dialog_show()
and file_save_dialog_show() as private utility functions to get
rid of code duplication.
2004-09-13 Michael Natterer <mitch@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/file-dialog-utils.[ch]: removed these files.
* app/dialogs/file-save-dialog.[ch]: removed functions
file_save_dialog_show() and file_save_a_copy_dialog_show() and
changed internal function file_save_dialog_create() to
file_save_dialog_new().
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: made it completely
managed by the dialog factory.
* app/actions/file-commands.c: create it using the dialog
factory. Attach it to the image so we open only one save
dialog per image.
* app/dialogs/file-open-dialog.c: added precondition checks
to file_open_dialog_new().
2004-09-13 Michael Natterer <mitch@gimp.org>
* app/dialogs/file-open-dialog.[ch]: removed function
file_open_dialog_show() and changed internal function
file_open_dialog_create() to file_open_dialog_new().
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: made it completely
managed by the dialog factory.
* app/actions/file-commands.c: create it using the dialog factory.
2004-09-09 Michael Natterer <mitch@gimp.org>
* app/gui/file-open-location-dialog.[ch]: changed
file_open_location_dialog_show() to
file_open_location_dialog_new() and return the dialog.
* app/gui/dialogs.c
* app/gui/dialogs-constructors.[ch]: added a constructor for it
and let the dialog factory manage it entirely.
* app/actions/file-commands.c
(file_open_location_dialog_cmd_callback): use the dialog factory
to create it.
2004-08-10 Michael Natterer <mitch@gimp.org>
Redid the whole internal progress stuff: don't pass around
progress_callback and progress_data; instead, provide a
pointer to a GimpProgressInterface which can be implemented
by a variety of backends.
Addresses (but not yet fixes) bugs #6010, #97266 and #135185.
* app/display/Makefile.am
* app/display/gimpprogress.[ch]: removed the old progress hack.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpprogress.[ch]: implement GimpProgressInterface.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressdialog.[ch]: the standalone progress
dialog as widget implementing GimpProgressInterface.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.[ch]
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpthumbbox.[ch]: added GimpProgressInterface
implementation to these classes.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: replaced the old progress vtable entries
by two new to create and destroy a GimpProgressDialog in case
no other progress is available.
* app/pdb/procedural_db.[ch]
* app/plug-in/plug-in-run.[ch]
* tools/pdbgen/app.pl: pass a GimpProgress to all PDB wrappers and
all plug-ins.
* app/plug-in/plug-in.[ch]
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-progress.c: handle the case there the
plug-in was crated with a progress as well as the case where it
wasn't.
* app/app_procs.c
* app/batch.c
* app/xcf/xcf.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: changed accordingly.
* app/core/gimpimagefile.[ch]
* app/display/gimpdisplayshell-dnd.c
* app/gui/file-open-dialog.c
* app/gui/file-open-location-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: pass a GimpProgress to all file
related functions. Embed the progress in the file dialog where
possible.
* app/core/gimpdrawable-blend.[ch]
* app/core/gimpdrawable-transform.[ch]
* app/core/gimpimage-convert.[ch]
* app/core/gimpimage-flip.[ch]
* app/core/gimpimage-resize.[ch]
* app/core/gimpimage-rotate.[ch]
* app/core/gimpimage-scale.[ch]
* app/core/gimpitem-linked.[ch]
* app/core/gimpitem.[ch]
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimplayer.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c: replaced callback/data by GimpProgress.
* app/tools/gimpblendtool.c
* app/tools/gimptransformtool.c
* app/gui/convert-dialog.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/actions/image-commands.c
* app/actions/layers-commands.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: changed callers accordingly.
* app/pdb/*_cmds.c: regenerated.
2004-07-16 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfileprocview.[ch]: added new widget that offers
a treeview on file procedures.
* app/widgets/gimpfiledialog.[ch]: replaced the file type option
menu with the new GimpFileProcView widget.
(gimp_file_dialog_set_image): reset the file type to Automatic
(fixes bug #141535).
* app/actions/file-commands.c
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: changed accordingly.
* plug-ins/common/bz2.c
* plug-ins/common/gz.c: don't register "xcf.gz" and "xcf.bz2"
extension. It's redundant and breaks the code that sets the
extension from the selected file-type.
* plug-ins/common/dicom.c: register a shorter menu label.
* plug-ins/common/gbr.c
* plug-ins/common/gih.c
* plug-ins/common/pat.c
* plug-ins/common/url.c: register stock icons.
2004-05-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.h: added GimpContext parameters
to GimpActivateItemFunc, GimpNewItemFunc and GimpEditItemFunc.
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpitemtreeview.c: pass the view's context to
the functions.
* app/actions/actions.c (action_data_get_context): return
gimp_get_user_context() if "data" is a Gimp.
* app/actions/channels-commands.[ch]
* app/actions/layers-commands.[ch]
* app/actions/vectors-commands.[ch]: added GimpContext parameters
to the resp. activate, new and edit functions and use the passed
context instead of gimp_get_user_context().
* app/actions/layers-commands.[ch]: removed the merge and flatten
callbacks.
* app/actions/image-commands.[ch]: made public layer merge utility
function private and cleaned the whole file up a lot.
* app/actions/layers-actions.c: use the callbacks from
image-commands.c for merge and flatten.
* app/actions/edit-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c: use action_data_get_context()
instead of gimp_get_user_context().
* app/actions/edit-actions.c: some cleanup.
2004-05-25 Michael Natterer <mitch@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: removed action "file-new", added
action "file-open-from-image".
* app/actions/image-actions.c
* app/actions/image-commands.[ch]: added actions "image-new" and
"image-new-from-image".
* menus/image-menu.xml.in: use the "-from-image" variants of
the "new" and "open" actions so the dialogs are preconfigured
from the image they were invoked from (regression fix).
* menus/toolbox-menu.xml.in: s/file-new/image-new/.
2004-05-24 Michael Natterer <mitch@gimp.org>
Long overdue core container cleanup:
* app/core/gimplist.[ch]: added "unique-names" and "sort-func"
properties and merged the resp. code from GimpDataList into
GimpList. Removed "policy" parameters from gimp_list_new() and
added "unique_names". Added new constructor gimp_list_new_weak().
Made public function gimp_list_uniquefy_name() private.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpdatalist.[ch]: removed. Its functionality is
entirely in GimpList now.
* app/core/gimpdata.[ch]: added gimp_data_name_compare() which
used to live in GimpDataList.
* app/core/gimp.c
* app/core/gimpdatafactory.c
* app/core/gimpimage.c
* app/core/gimptoolinfo.c
* app/core/gimpundostack.c
* app/paint/gimp-paint.c
* app/tools/gimp-tools.c
* app/widgets/gimpdevices.c
* app/widgets/gimptemplateeditor.c
* app/widgets/gimpundoeditor.c: changed list creation accordingly.
Made gimp->templates, gimp->named_buffers, tool_info->presets and
the image's lists of layers, channels and vectors automatically
ensure unique names.
* app/widgets/gimptemplateview.c
* app/actions/file-commands.c
* app/actions/templates-commands.c
* app/actions/tool-options-commands.c: removed calls to
gimp_list_uniquefy_name().
* app/core/gimpitem.c: removed major insanity where the items
themselves where ensuring their unique names. Bah!
* app/core/gimplayer.c (gimp_layer_name_changed): chain up
conditionally.
* app/core/gimplayermask.c (gimp_layer_mask_name_changed): removed
because there is no need any more to keep the parent
implementation from being invoked.
2004-05-14 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/fileops.pdb: added new PDB function
gimp_register_file_handler_mime() that allows to associate a MIME
type with a file procecdurre.
* app/pdb/fileops_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpfileops_pdb.[ch]: regenerated.
* app/plug-in/plug-in-proc.[ch]
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-ins.[ch]: store a mimetype with file procedures.
* app/actions/file-commands.c
* app/core/gimpdocumentlist.[ch]
* app/core/gimpimagefile.[ch]
* app/file/file-open.[ch]
* app/file/file-save.c: set the thumbnail's mimetype from the file
procedure used to load/save the image.
* app/xcf/xcf.c
* plug-ins/bmp/bmp.c
* plug-ins/common/csource.c
* plug-ins/common/dicom.c
* plug-ins/common/gif.c
* plug-ins/common/gifload.c
* plug-ins/common/jpeg.c
* plug-ins/common/mng.c
* plug-ins/common/png.c
* plug-ins/common/postscript.c
* plug-ins/common/psd.c
* plug-ins/common/psd_save.c
* plug-ins/common/sunras.c
* plug-ins/common/svg.c
* plug-ins/common/tga.c
* plug-ins/common/tiff.c
* plug-ins/common/wmf.c
* plug-ins/common/xbm.c
* plug-ins/common/xpm.c
* plug-ins/common/xwd.c
* plug-ins/faxg3/faxg3.c
* plug-ins/winicon/main.c: register a mimetype, set a translatable
action name (taken from shared-mime-info) and register to the <Load>
and <Save> menus using gimp_plugin_menu_register().
2004-05-05 Michael Natterer <mitch@gimp.org>
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: remove "file-close" action and
callback...
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: ...and added it here as
"view-close" because that's what it does.
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c: s/QMask/QuickMask/g
* app/gui/menus.c: add the "channels" action group to the <Image>
and <Dock> UI managers, renamed UI manager <Dialogs> to
<Dockable>.
* app/widgets/gimpdockbook.c: s/<Dialogs>/<Dockable>/.
* menus/image-menu.xml.in: s/file-close/view-close/, added
separators at the end of most menus, moved the bottom group of the
"View" menu after the zoom group.
2004-05-02 Michael Natterer <mitch@convergence.de>
* app/actions/Makefile.am
* app/actions/file-dialog-actions.[ch]: new files containing
factored out code to set up the <Load> and <Save> actions.
Use GimpPlugInActions instead of just GtkActions.
* app/actions/file-dialog-commands.[ch]: new files containing
file_dialog_type_cmd_callback() which is a
GimpPlugInAction::selected() callback now.
* app/actions/file-commands.[ch]: removed the callback here.
* app/actions/file-open-actions.c
* app/actions/file-save-actions.c: removed code duplication and
use file_dialog_actions_setup() instead.
2004-04-29 Michael Natterer <mitch@gimp.org>
Switch from GtkItemFactory to GtkUIManager. The migration is
almost complete, still stuff missing/incomplete, definitely added
a bunch of new bugs...
* app/actions/*-commands.[ch]: converted all callback from
GtkItemFactory callbacks to GtkAction callbacks.
* app/actions/debug-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/help-actions.c
* app/actions/plug-in-actions.c
* app/actions/qmask-actions.c
* app/actions/tool-options-actions.c: various fixes.
* app/display/gimpdisplay.[ch]
* app/display/gimpdisplayshell-appearance.[ch]
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: move everything from
GtkItemFactory to GtkUIManager.
* app/gui/dialogs.[ch]: added new function dialogs_get_toolbox().
Needed because the action callbacks don't have a widget parameter
and sometimes we need a parent window for showing dialogs.
* app/gui/Makefile.am
* app/gui/brushes-menu.[ch]
* app/gui/buffers-menu.[ch]
* app/gui/channels-menu.[ch]
* app/gui/colormap-editor-menu.[ch]
* app/gui/dialogs-menu.[ch]
* app/gui/documents-menu.[ch]
* app/gui/error-console-menu.[ch]
* app/gui/fonts-menu.[ch]
* app/gui/gradient-editor-menu.[ch]
* app/gui/gradients-menu.[ch]
* app/gui/images-menu.[ch]
* app/gui/layers-menu.[ch]
* app/gui/palette-editor-menu.[ch]
* app/gui/palettes-menu.[ch]
* app/gui/patterns-menu.[ch]
* app/gui/qmask-menu.[ch]
* app/gui/templates-menu.[ch]
* app/gui/vectors-menu.[ch]: removed these files.
* app/gui/gui.c: create a global UI manager for the image popup
menu and the toolbox menubar.
* app/gui/menus.[ch]: removed all GtkItemFactory code.
* app/gui/image-menu.[ch]
* app/gui/toolbox-menu.[ch]: removed everything except the trivial
setup_funcs.
* app/gui/file-open-menu.c
* app/gui/file-save-menu.c
* app/gui/tool-options-menu.c: don't use the macros from menus.h
any more, they are gone.
* app/gui/gui-vtable.c
* app/gui/plug-in-menus.[ch]: create/destroy the dynamic plug-in
menu entries.
* app/tools/gimpimagemaptool.c: s/gimp_item_factory_update/
gimp_ui_manager_update/g
* app/widgets/gimpuimanager.[ch]: added API to get an action
group by name.
* app/widgets/gimpmenufactory.c: don't choke on the item_factory
entries being NULL.
* app/widgets/gimpactiongroup.c: make sure booleans set using
g_object_set() only have TRUE or FALSE values.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: removed all GtkItemFactory
code and enable the #if 0'ed UI manager stuff.
* menus/gradient-editor-menu.xml: fixed typos.
* menus/image-menu.xml: duplicate everything so we have both
an image menubar and an image popup menu. Badly cries for an
XSL processor.
* menus/toolbox-menu.xml: added an "Extensions" placeholder.
2004-03-22 Michael Natterer <mitch@gimp.org>
* app/file/file-open.c (file_open_with_proc_and_display): removed
the undo clearing/sanitizing code...
(file_open_image): ...and added it here so *all* newly opened
images start with a clean and sane undo state.
* app/gui/file-commands.c (file_revert_confirm_callback): removed
(incomplete) undo sanitizing here too.
2004-02-27 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfiledialog.[ch]: new widget swallowing most
of file-dialog-utils.[ch]'s functionality.
* app/widgets/widgets-types.h: added "gpointer callback_data" to
GimpItemFactorySetupFunc so the setup_funcs can create items in
the same context as the item factory's default items.
* app/widgets/gimpmenufactory.c (gimp_menu_factory_menu_new):
pass "callback_data" to setup_func().
* app/gui/file-open-menu.[ch]
* app/gui/file-save-menu.[ch]: use the passed callback_data
when creating the menus and attach the file_proc to the
menu items using g_object_set_data().
* app/gui/file-commands.[ch]: merged separate file type callbacks
for open and save dialogs into one callback which simply
calls gimp_file_dialog_set_file_proc().
* app/gui/file-dialog-utils.[ch]: removed file_dialog_new()
and file_dialog_set_proc().
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: use the new widget and removed
global variables except the dialog pointer itself.
* app/gui/image-menu.[ch]
* app/gui/tool-options-menu.[ch]
* app/gui/toolbox-menu.[ch]: changed accordingly.
2004-01-31 Michael Natterer <mitch@gimp.org>
Use the global <Image> accel_group in all docks except the
toolbox (the latter needs GTK+ 2.4's new menu features).
Addresses bug #119878:
* app/gui/buffers-commands.c
* app/gui/channels-commands.c
* app/gui/data-commands.c
* app/gui/documents-commands.c
* app/gui/drawable-commands.c
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/gradients-commands.c
* app/gui/image-commands.c
* app/gui/layers-commands.c
* app/gui/plug-in-commands.c
* app/gui/select-commands.c
* app/gui/tool-options-commands.c
* app/gui/tools-commands.c
* app/gui/vectors-commands.c
* app/gui/view-commands.c: changed the various return_if_no_foo()
macros to also accept a GimpDock as user_data.
* app/gui/image-menu.c (image_menu_update): don't update the
display related menu items if they don't exist (see below).
* app/gui/gui.c (gui_display_changed): simplified.
* app/widgets/gimpimagedock.[ch]: create an "<Image>" item_factory
and attach its accel_group to the dock. Destroy all display
related menu items. Destroy the layer stack navigation items
because their default shortcuts interfere with tree and grid view
keybindings. Connect to "image_changed" of the dock's private
context and to "flush" of the image container to update the
item_factory's state.
2003-11-08 Michael Natterer <mitch@gimp.org>
To be multihead safe, each new window or menu needs to be
associated with a GdkScreen or it will pop up on the default
screen.
* libgimpwidgets/gimpquerybox.[ch]
* app/display/gimpdisplayshell-layer-select.[ch]
* app/widgets/widgets-types.h
* app/widgets/gimpitemfactory.[ch]
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimptemplateview.[ch]
* app/widgets/gimptooldialog.[ch]
* app/widgets/gimpviewabledialog.[ch]
* app/gui/channels-commands.[ch]
* app/gui/color-notebook.[ch]
* app/gui/convert-dialog.[ch]
* app/gui/edit-commands.[ch]
* app/gui/grid-dialog.[ch]
* app/gui/image-commands.[ch]
* app/gui/info-dialog.[ch]
* app/gui/layers-commands.[ch]
* app/gui/offset-dialog.[ch]
* app/gui/resize-dialog.[ch]
* app/gui/stroke-dialog.[ch]
* app/gui/templates-commands.[ch]
* app/gui/vectors-commands.[ch]: added "GtkWidget *parent"
paramaters to all functions which create menus, popups or windows
and pass "parent" to gimp_dialog_new() or one of the various
wrappers around it. As a side effect, this fixes bug #61092.
* app/widgets/gimpdialogfactory.[ch]: added "GdkScreen *screen"
instead of "parent" here since there are no possible parent
windows on startup.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_origin_button_press): added a quick hack to
send a display to another screen: click the origin button with the
middle mouse button.
* app/display/gimpdisplayshell.c
(gimp_display_shell_screen_changed): don't chain up
undonditionally (don't crash).
* libgimpwidgets/gimpdialog.c (gimp_dialog_new_valist): set the
dialog's screen from a non-GtkWidget parent widget. The rest of
non-window parent widget handling is still unimplemented.
* libgimpwidgets/gimpcolorbutton.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdockable.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimphelp.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppreview-popup.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpsessioninfo.c
* app/widgets/gimptoolbox-color-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpwidgets-utils.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpnavigationview.c
* app/gui/module-browser.c
* app/gui/dialogs-commands.c
* app/gui/dialogs-constructors.c
* app/gui/drawable-commands.c
* app/gui/file-commands.c
* app/gui/file-new-dialog.c
* app/gui/file-save-dialog.c
* app/gui/gradient-editor-commands.c
* app/gui/gui-vtable.c
* app/gui/gui.c
* app/gui/info-window.c
* app/gui/palette-import-dialog.c
* app/gui/palettes-commands.c
* app/gui/qmask-commands.c
* app/gui/select-commands.c
* app/gui/tool-options-commands.c
* app/gui/view-commands.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimpcroptool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimptransformtool.c
* plug-ins/FractalExplorer/FractalExplorer.c
* plug-ins/gfig/gfig.c
* plug-ins/gflare/gflare.c: changed addordingly. Changed all
menu_position funcs to place the menu on the right screen.
2003-09-05 Sven Neumann <sven@gimp.org>
* app/base/gimplut.[ch] (gimp_lut_free): free the memory allocated
for the GimpLut structure. Removed trailing whitespace.
* app/core/gimpbuffer.c: cosmetics.
* app/core/gimpedit.[ch]: let gimp_edit_cut() and gimp_edit_copy()
return a pointer to the global cut buffer instead of creating a
GimpBuffer which was leaked by most callers.
* app/gui/edit-commands.c: changed accordingly.
* libgimpwidgets/gimpquerybox.[ch] (string_query_box_ok_callback):
removed a superfluous g_strdup(); made GimpQueryStringCallback take
a const gchar* pointer.
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/palettes-commands.c: changed accordingly.
2003-08-21 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimphelp-ids.h: new file defining the available help
topics. Work in progress and totally unusable for matching to the
help system. Stay tuned...
* app/gui/about-dialog.c
* app/gui/brushes-menu.c
* app/gui/buffers-menu.c
* app/gui/channels-commands.[ch]
* app/gui/channels-menu.c
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/file-new-dialog.c
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c
* app/gui/gradients-commands.c
* app/gui/gradients-menu.c
* app/gui/image-menu.c
* app/gui/layers-commands.[ch]
* app/gui/layers-menu.c
* app/gui/module-browser.c
* app/gui/offset-dialog.c
* app/gui/palettes-menu.c
* app/gui/patterns-menu.c
* app/gui/resize-dialog.c
* app/gui/select-commands.c
* app/gui/templates-menu.c
* app/gui/tips-dialog.c
* app/gui/toolbox-menu.c
* app/gui/vectors-commands.[ch]
* app/gui/vectors-menu.c: replaced literal HTML file paths by help
IDs from gimphelp-ids.h. Renamed some menu callbacks to be
consistent with similar ones. This is just an intermediate commit
and not finished.
While browsing all the menus, I noticed that our "x to selection"
functions are not consistent at all. They should all offer the
REPLACE,ADD,SUBTRACT,INTERSECT options:
* app/core/gimpchannel.[ch]: added new function
gimp_channel_new_from_alpha(). Removed gimp_channel_layer_alpha()
and gimp_channel_layer_mask().
* app/core/gimpimage-mask.[ch]: added
gimp_image_mask_select_alpha() and
gimp_image_mask_select_component() which offer the full set of
operation, feather and feather_radius parameters as the other
selection functions.
* app/core/gimpimage-mask-select.[ch]: removed
gimp_image_mask_layer_alpha() and gimp_image_mask_layer_mask().
* app/gui/channels-commands.c (channels_channel_to_selection): use
gimp_image_mask_select_component() instead of implementing it
here.
* app/gui/image-menu.c
* app/gui/layers-commands.[ch]: offer the full choice of
REPLACE,ADD,SUBTRACT,INTERSECT with "Alpha to Selection" and "Mask
to Selection".
* tools/pdbgen/pdb/selection.pdb: changed accordingly.
* app/pdb/selection_cmds.c: regenerated.
2003-07-08 Sven Neumann <sven@gimp.org>
* app/gui/file-commands.c (file_save_cmd_callback): warn if the
image has no active drawable instead of silently returning. Not
sure if this is correct, but it could help to resolve#116936.
2003-05-17 Michael Natterer <mitch@gimp.org>
Fixed File->Revert, which was completely broken before:
* app/gui/file-commands.c (file_revert_confirm_callback): set the
new image on all GimpContexts which had the old image set. Unref
the new image after the displays are reconnected.
Added some paranoia code for similar future situations (the
functions below were not broken, but affected by the above bug):
* app/display/gimpdisplay-handlers.c (gimp_display_disconnect):
set gdisp->gimage to NULL before unrefing the image.
* app/widgets/gimpimagedock.c (gimp_image_dock_image_changed):
unref the gimage pointer returned by g_object_get() only if it is
non-NULL. Cleanup.