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.
2005-12-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.[ch]: set the new
"do-overwrite-confirmation" property on GtkFileChooser. Removed
gimp_file_overwrite_dialog().
* app/dialogs/file-save-dialog.c (file_save_dialog_check_uri):
removed broken code which tried to figure if a file exists.
Fixes bug #309729.
* app/widgets/gimpdnd-xds.c: added gimp_file_overwrite_dialog()
here as private utility function.
2005-09-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpprogressbox.c
* plug-ins/script-fu/script-fu-interface.c: made progress bars HIG
compliant (with italic label below).
* app/widgets/gimpfiledialog.[ch]: use a GimpProgressBox intead of
implementing the progress bar again.
2005-09-09 Michael Natterer <mitch@gimp.org>
Added parent window API to the GimpProgress interface and to
the libgimp progress stuff. Might look strange, but does
the right thing in almost all cases (image window, file dialog,
script-fu dialog etc). Fixes bug #62988.
* app/core/gimpprogress.[ch]: added GimpProgress::get_window()
which should return a toplevel window ID if the progress is in a
window that wants to be the transient parent of plug-in dialogs.
* app/widgets/gimpwidgets-utils.[ch] (gimp_window_get_native): new
function which returns the window handle of a GtkWindow's GdkWindow.
* app/widgets/gimpfiledialog.c: implement ::get_window().
* app/display/gimpdisplay.[ch]: ditto. Removed window handle API.
* app/gui/gui-vtable.c: changed accordingly.
* libgimpbase/gimpbaseenums.[ch] (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_GET_WINDOW.
* app/plug-in/plug-in-progress.[ch] (plug_in_progress_get_window):
new function. Also renamed some functions to match the
GimpProgress interface, and not the legacy PDB procedure names.
* tools/pdbgen/pdb/progress.pdb
* app/core/gimppdbprogress.c: implement get_window() on both
sides of the wire, keeping backward compatibility (hopefully).
* libgimp/gimpprogress.[ch]: deprecated gimp_progress_install()
and added gimp_progress_install_vtable() which takes a vtable with
padding to be extensible. Added get_window() vtable entry and
dispatch it accordingly. Also added pulse() which was implemented
in a hackish way before. Everything is of course backward
compatible.
* libgimp/gimpprogressbar.c: inmplement the get_window() stuff
so a plug-in dialog containing a progress can be the transient
parent of another dialog in another plug-in.
* libgimp/gimpui.[ch] (gimp_ui_get_progress_window): new function
which returns a foreign GdkWindow of this plug-ins progress
window.
Renamed gimp_window_set_transient_for_default_display() to
gimp_window_set_transient() and make it use the progress' window
handle instead of the display's (which is the right thing to do in
almost all cases).
* libgimp/gimp.def
* libgimp/gimpui.def: add the new functions.
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimpexport.c
* plug-ins/*/*.c: follow API change.
2005-08-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
when looking for the file extension, only look at the part after
the last directory separator.
2005-07-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_new): enable
remote files: set local_only to FALSE if the PDB has
"file_uri_load/save" procedures (yes, this is questionable).
2005-03-25 Sven Neumann <sven@gimp.org>
* app/dialogs/file-save-dialog.c
* app/widgets/gimpfiledialog.[ch]: moved overwrite confirmation
dialog to app/widgets.
* app/widgets/gimpdnd-xds.c: set "Untitled.xcf" as default name
for untitled images; ask for confirmation before overwriting a
local file.
2005-02-12 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.[ch]: added GimpProgress::pulse.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpprogressbox.c
* app/widgets/gimpprogressdialog.c
* app/widgets/gimpthumbbox.c: implement it in the classes that
implement the GimpProgress interface.
* app/plug-in/plug-in-progress.[ch]: allow plug-ins to pulse their
progress.
* tools/pdbgen/pdb/progress.pdb: added a procedure for the new
functionality.
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimp.def: updated.
2005-02-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters): add
an "All Images" filter and select it by default.
2005-02-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_desc_string):
changed "Remote Image" to "Remote File". The state of the
thumbnail doesn't tell us if this is an image file at all.
* app/widgets/gimpthumbbox.c: don't auto-thumbnail remote files.
* libgimpthumb/gimpthumb-utils.[ch]
* libgimpthumb/gimpthumbnail.c: do the same workaround for UNC
paths as in file_utils_filename_from_uri().
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.
2004-11-18 Michael Natterer <mitch@gimp.org>
* plug-ins/common/compressor.c (compressors): added back the
.xcf.gz and .xcf.bz2 extensions because they are the only way
to figure the special nature of this plug-in's extensions.
* app/widgets/gimpfileprocview.[ch]: keep a list of "meta
extensions" (extensions which have a '.' themselves).
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
try to replace the whole extension if the last extension is one of
the meta extensions kept by GimpFileProcView. Fixes bug #158377.
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-11-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters):
limit the number of file extensions that are added to the file
filter menu to keep the file dialog from growing too wide.
2004-11-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
return early if gimp_file_proc_view_get_proc() didn't return a file
procedure. Should fix bug #158369.
2004-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters):
don't check for file_proc->menu_paths. Our load and save procedure
don't necessarily register a menu path any longer.
* app/plug-in/plug-ins.c: minor cleanup.
* app/xcf/xcf.c (xcf_init): no need for adding menu paths for the
XCF load and save procedures.
* tools/pdbgen/pdb/fileops.pdb: fixed outdated documentation.
* app/pdb/fileops_cmds.c
* libgimp/gimpfileops_pdb.c: regenerated.
2004-10-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c: construct a case-insensitive glob
pattern to use when filtering for file extensions.
2004-09-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_uri):
simplified the code that selects an image file by its URI.
2004-09-05 Sven Neumann <sven@gimp.org>
* configure.in: bumped version number to 2.1.5.
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_uri): select
the image file, not only the folder it lives in. Fixes bug #151638.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressbox.[ch]: new GtkVBox subclass featuring
a label and a progressbar. Implements GimpProgressIterface.
* app/widgets/gimpprogressdialog.[ch]: replaced label and progress
by a GimpProgressBox. Delegate most progress functionality to it.
* app/widgets/gimpwidgets-utils.[ch]: factored out utility
function gimp_dialog_set_sensitive().
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_sensitive):
use it.
* app/gui/file-open-location-dialog.c (file_open_location_response):
embed the called file procedure's progress using a GimpProgressBox.
2004-08-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.[ch]
(gimp_file_dialog_set_sensitive): new function which works on all
widgets in the dialog except the cancel button.
Remember if the active progress is cancelable and added two
booleans "busy" and "canceled". Added GtkDialog::response()
implementation which, if the dialog is busy, cancels the active
progress and sets the dialog's "canceled" state.
Moved the progress bar right above the action area so it is next
to the cancel button and in the same place for both open and save
dialogs.
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c: use the new API to make image loading
and saving cancelable again.
* app/widgets/gimpthumbbox.c: use the same stuff to make
thumbnailing cancelable. Increased the minimum height a bit so it
doesn't resize when the progress bars are shown.
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-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h: added the removed help IDs back.
* app/widgets/gimpfileprocview.[ch]: cache all file_procs' help
IDs and added gimp_file_proc_view_get_help_id() which returns the
selected item's help ID.
* app/widgets/gimpfiledialog.c: added a custom help func which
shows the help for the selected file_proc if the proc_view has the
focus.
2004-07-17 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c (file_actions): use GIMP_STOCK_WEB
for "file-open-location".
* app/widgets/gimpfiledialog.c: create the scrolled window with
shadow_type GTK_SHADOW_IN.
* app/widgets/gimpfileprocview.c (gimp_file_proc_view_new): skip
procedures that register a prefix (the URL loader).
* app/widgets/gimphelp-ids.h: removed help IDs that used to be
used from the file-open and file-save menus.
* plug-ins/common/xwd.c (query): "X window dump" seems to be more
appropriate than "X window image".
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-06-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): unset
the filename if the image is unnamed.
* configure.in
* app/sanity.c: depend on gtk+ >= 2.4.1.
* app/widgets/gimpthumbbox.[ch]: changed gimp_thumb_box_set_uris()
to gimp_thumb_box_take_uris() since the function takes ownership
of the list,
* app/widgets/gimpfiledialog.c: changed accordingly. Removed code
that worked around a problem in gtk+ < 2.4.1.