Commit Graph

157 Commits

Author SHA1 Message Date
6c6cf7a881 app: Move import and export URI updates to file_save()
We should handle import-URI and export-URI at a lower level so
e.g. the import URI is reset when gimp_dnd_xds_save_image() is
used.

This change also simplifies unit testing.
2011-02-02 22:31:27 +01:00
1702822720 app: Fix copy-paste error in file-save-dialog.c
Fix what must have been a copy-paste error, we can not want to set
GIMP_FILE_SAVE_LAST_URI_KEY after we have exported.
2011-02-02 22:31:27 +01:00
366cddc856 app: gimp_image_get/set_imported/exported/save_a_copy_uri()
Add more proper core API for GimpImage URI management.
2011-02-02 22:28:46 +01:00
8d61a61c0e app: Remove GIMP_FILE_EXPORT_TO_URI_KEY
Remove GIMP_FILE_EXPORT_TO_URI_KEY which is always identical to
GIMP_FILE_EXPORT_URI_KEY.
2011-02-02 22:28:46 +01:00
5819c3c83a app: Have an "Export" button, not "Save", in export dialogs 2009-12-06 08:58:44 +01:00
c5b856f16f Use gimp_display_get_image() instead of display->image 2009-10-06 19:20:44 +02:00
c181f4eb05 app: Add and use gimp_image_is_dirty() 2009-07-03 21:11:21 +02:00
631e128ddd app: Forget import source after saving as XCF
Forget the import source after save. We interpret a save as that the
user is not interested in being able to quickly export back to the
original any longer. The effect of this is that if we have an
'Overwrite' menu item, it becomes insensitive and set to 'Export to'.
2009-07-02 22:17:36 +02:00
6742ebc949 app: don't call gimp_ui_manager_update() directly
gimp_ui_manager_update() should not be called directly. Instead call
gimp_image_flush() after doing changes that need to be reflected in
the menus.
2009-05-17 11:02:31 +02:00
c03c93ba44 app: Don't bother asking for overwrite if the extension is invalid 2009-05-16 13:02:55 +02:00
c23370c3af app: Emit the GimpImage::exported signal when image is exported 2009-05-16 13:02:55 +02:00
2fcf33db5d app: Don't reset save-a-copy URI on URI change 2009-05-16 13:02:55 +02:00
11e5ecc5ca app: Update 'Export to' to the most recent export URI
When an image have been successfully exported we shall set the 'Export
to' URI to the target URI.
2009-05-16 13:02:54 +02:00
72bc3aeed3 app: Remember last export URI for each image 2009-05-16 13:02:54 +02:00
64f7d9b93b app: Improve save and export error messages 2009-05-16 09:48:13 +02:00
0971d61fc4 app: Add an 'export' mode to the file save dialog 2009-05-16 09:48:12 +02:00
3025dac653 app: Introduce and use GimpFileChooserAction
Introduce and use GimpFileChooserAction in the core so that we can
differentiate Save from Export later.
2009-05-16 09:48:12 +02:00
f10bf1d7fd app: Fix save overwrite logic for files with added extensions
When the user specifies a filename in the save dialog, make sure the
overwrite confirmation is not shown if the filename will be
altered. It doesn't make sense to ask for permission to overwrite a
file that will never be overwritten.
2009-05-15 19:41:13 +02:00
8033f4c0d5 app: Fix potential memory leak in save dialog code
Fix potential memory leak in save dialog code with a new helper function
file_save_dialog_get_uri(). We must free zero-length strings.
2009-05-15 19:41:13 +02:00
9c2aae1281 app: Update name of file_save_dialog_save_image() parameter
Rename file_save_dialog_save_image() parameter save_a_copy to
change_saved_state since that is the semantics it has now.
2009-05-06 17:09:31 +02:00
a0d9f6e57e app: Rename file_save() parameter save_a_copy to change_saved_state
Rename file_save() parameter save_a_copy to change_saved_state since
that is the semantics it has now.
2009-05-06 15:03:30 +02:00
edac194b23 app: Move save-on-copy URI remembering to the appropriate place
The Save a copy-URI shall only be remembered when the URI has been
entered through the dialog, so move it from file_save() to
file_save_dialog_response(). This is a preparation for the future
where we need to pass TRUE to save_a_copy without the URI being
remembered.
2009-05-04 21:04:37 +02:00
82d327a550 Revert "app: Move last-save URI management to file_save()"
This reverts commit f6cd700dd6. We
can't save the last-save-URI on such a low level.
2009-05-03 09:29:04 +02:00
f6cd700dd6 app: Move last-save URI management to file_save()
Move the logic to remember the URI of the last saved file from
file_save_dialog_response() to the more central place file_save().
2009-05-03 08:45:19 +02:00
8064bbf22e app: Pass Gimp instead of GimpContext to file_save() 2009-05-03 08:35:01 +02:00
3c1366a0c1 app: Merge almost identical higher level file_save() wrappers
Merge file_savefile_write_with_uri_and_proc() and
file_save_dialog_save_image() which contains the same logic. Call the
result file_save_dialog_save_image() in lack of a better name, and
keep it in file-save-dialog.[ch] for now in lack of a better place.
2009-05-02 15:58:32 +02:00
290d433edf app: Remove image refs in file_save_dialog_save_image()
The function file_save() also refs the image so there is no for
file_save_dialog_save_image() to do the same.
2009-05-02 15:33:05 +02:00
1bd506d91d app: Make file_save_dialog_save_image() more general
Move out specialized logic from file_save_dialog_save_image() to make
it more similar to file_write_with_uri_and_proc() in file-commands.c
2009-05-02 09:05:34 +02:00
a93346d0a0 app: Gather save dialog uri defaults in one place
Gather save dialog uri defaults in one place. Move the small bits of
it from file_save_dialog_new() to gimp_file_dialog_set_save_image()
where the rest is.
2009-05-01 12:23:46 +02:00
b0af6524b4 app/file: Rename gimpfile.h to gimp-file.h and fix include guards
The source filename convention would indicate that gimpfile.h
	holds code for the GimpFile object. Rename it to gimp-file.h
	to make clear that it doesn't.
2009-05-01 09:03:13 +02:00
e622dc3cad app: Introduce gimpfile.h
Introduce gimpfile.h which for now contains defines for GObject data
keys used when managing save and open dialog URI defaults. More are to
be added.
2009-04-30 20:00:18 +02:00
7bddad1320 app: Introduce file_save_dialog_unknown_ext_msg()
Introduce file_save_dialog_unknown_ext_msg() so that we don't need to
have a copy-pasted huge error message (and prepare for more intricate
message handling).
2009-04-25 18:14:13 +02:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
5503e6a055 Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h had a
2008-10-09  Michael Natterer  <mitch@gimp.org>

	Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
	had a GEGL dependency (they will have in the next commit, but I
	wanted to keep the commit separate).

	* app/dialogs/Makefile.am
	* app/file/Makefile.am
	* app/gui/Makefile.am
	* app/menus/Makefile.am
	* app/paint/Makefile.am
	* app/plug-in/Makefile.am
	* app/text/Makefile.am
	* app/vectors/Makefile.am
	* app/widgets/Makefile.am
	* app/xcf/Makefile.am: add GEGL_CFLAGS.

	* app/actions/*.c
	* app/core/*.c
	* app/dialogs/*.c
	* app/display/*.c
	* app/file/*.c
	* app/gui/*.c
	* app/menus/*.c
	* app/paint/*.c
	* app/pdb/gimppdb-utils.c
	* app/pdb/gimpprocedure.c
	* app/plug-in/*.c
	* app/text/*.c
	* app/tools/*.c
	* app/vectors/*.c
	* app/widgets/*.c
	* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
	to all files which include a drawable subclass or gimpimage.h

	* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
	in all generated files.

	* app/pdb/*-cmds.c: regenerated.

	* data/images/gimp-splash.png: the goat is still sleeping.
	By Aurore Derriennic.


svn path=/trunk/; revision=27202
2008-10-09 20:24:04 +00:00
409bdaa30b fix crash (don't dereference dialog after it has been destroyed). Also put
2008-05-17  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/file-save-dialog.c (file_save_dialog_response): fix
	crash (don't dereference dialog after it has been destroyed). Also
	put back code that sets the dialog back to sensitive if it still
	exists.


svn path=/trunk/; revision=25686
2008-05-17 14:07:25 +00:00
62fdd17b23 added infrastructure to access and set some state information of the
2008-05-08  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpfiledialog.[ch]: added infrastructure to 
access
	and set some state information of the GtkFileChooser.

	* app/dialogs/file-open-dialog.c
	* app/dialogs/file-save-dialog.c: don't keep the file-chooser
	dialogs around. Instead keep the state attached to the Gimp 
object
	(one state for load, one for save dialogs). Closes bug #528811.


svn path=/trunk/; revision=25586
2008-05-08 11:30:54 +00:00
fe11741319 added new function gimp_display_close() which decides if
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-05 20:32:24 +00:00
9b551273ab forgot to port some debug output to GIMP_LOG().
2007-12-25  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/file-save-dialog.c: forgot to port some debug output
	to GIMP_LOG().


svn path=/trunk/; revision=24431
2007-12-25 16:10:22 +00:00
6ee660075e add SAVE_DIALOG log domain.
2007-11-18  Michael Natterer  <mitch@gimp.org>

	* app/gimp-log.[ch]: add SAVE_DIALOG log domain.

	* app/dialogs/file-save-dialog: port debug output to GIMP_LOG().


svn path=/trunk/; revision=24186
2007-11-18 17:55:52 +00:00
0691f94df6 app/file/file-save.[ch] (file_save) app/dialogs/file-save-dialog.c
* app/file/file-save.[ch] (file_save)
* app/dialogs/file-save-dialog.c (file_save_dialog_save_image)
* app/actions/file-commands.c (file_save_cmd_callback)
* app/widgets/gimpdnd-xds.c (gimp_dnd_xds_save_image): don't pass
Gimp instance to file_save() calls as it's not needed

svn path=/trunk/; revision=23528
2007-09-13 14:48:32 +00:00
8ff9c4c84c drop own recently used files code in favour of GtkRecentManager:
* app/core/gimp-gui.c (gimp_recent_list_add_uri), app/core/gimp-gui.h,
app/gui/gui-vtable.c (gui_recent_list_add_uri): add
{gimp,gui}_recent_list_add_uri(), gui_recent_list_add_uri() dispatches to
GtkRecentManager

* app/dialogs/file-save-dialog.c (file_save_dialog_save_image),
app/actions/file-commands.c (file_save_cmd_callback),
app/widgets/gimpdnd-xds.c (gimp_dnd_xds_save_image): pass Gimp instance to
file_save() calls

* app/file/file-open.c (file_open_with_proc_and_display,
file_open_layers), app/file/file-save.c (file_save), app/file/file-save.h:
pass Gimp instance to gimp_recent_list_add_uri() calls

* app/file/gimprecentitem.c, app/file/gimprecentitem.h,
app/file/gimprecentlist.c, app/file/gimprecentlist.h: removed

* app/file/Makefile.am: drop reference to removed files

svn path=/trunk/; revision=23526
2007-09-13 14:19:30 +00:00
cc2a076df5 app/file/Makefile.am app/file/file-procedure.[ch] split functions dealing
2007-05-11  Sven Neumann  <sven@gimp.org>

        * app/file/Makefile.am
        * app/file/file-procedure.[ch]
        * app/file/file-utils.[ch]: split functions dealing with file
        procedures into their own file and renamed them.

        * app/file/file-open.c
        * app/dialogs/file-save-dialog.c
        * app/actions/file-commands.c
        * app/widgets/gimpthumbbox.c
        * app/widgets/gimpdnd-xds.c
        * app/widgets/gimpimagepropview.c
        * tools/pdbgen/pdb/fileops.pdb: changed accordingly

        * app/pdb/fileops_cmds.c: regenerated.


svn path=/trunk/; revision=22474
2007-05-11 18:50:35 +00:00
9e1202f025 let the return value indicate whether the file has been saved.
2007-02-05  Sven Neumann  <sven@gimp.org>

	* app/dialogs/file-save-dialog.c (file_save_dialog_save_image):
	let the return value indicate whether the file has been saved.
	(file_save_dialog_response): only hide the dialog after the 
image
	has been saved.


svn path=/trunk/; revision=21852
2007-02-05 20:07:42 +00:00
a4863593ec Close the display after "Save as" when invoked via the "Close Without
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-20 19:38:09 +00:00
50fabff948 added new function gimp_ui_manager_activate_action() as a shortcut for
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-15 12:03:47 +00:00
41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
f47f58886a undef DEBUG_SPEW again.
2006-11-07  Sven Neumann  <sven@gimp.org>

	* app/dialogs/file-save-dialog.c: undef DEBUG_SPEW again.

	* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
	don't draw the handles while the rectangle is being moved.
2006-11-07 14:08:14 +00:00
43b20e0673 use file_utils_uri_display_basename() instead of g_path_get_basename() to
2006-11-05  Sven Neumann  <sven@gimp.org>

	* app/dialogs/file-save-dialog.c (file_save_dialog_check_uri):
use
	file_utils_uri_display_basename() instead of
g_path_get_basename()
	to get an uri's basename.
2006-11-06 08:12:57 +00:00
f5afb754a5 Added message severities and make sure all messages are routed through a
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-09 08:17:22 +00:00
ba4db39c9d after appending an extension, invoke "response" on the dialog and bail
2006-09-10  Michael Natterer  <mitch@gimp.org>

	* app/dialogs/file-save-dialog.c (file_save_dialog_check_uri):
	after appending an extension, invoke "response" on the dialog and
	bail out, so the file chooser re-runs the overwrite-confirm check.
2006-09-10 11:55:43 +00:00