mirror of https://github.com/GNOME/gimp.git
don't message "Image saved" from here.
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.
This commit is contained in:
parent
7f6033fe72
commit
5ef1749496
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
|||
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
|
||||
|
|
|
@ -220,7 +220,6 @@ file_save_cmd_callback (GtkAction *action,
|
|||
GimpPDBStatusType status;
|
||||
GError *error = NULL;
|
||||
GList *list;
|
||||
gchar *filename;
|
||||
|
||||
for (list = gimp_action_groups_from_name ("file");
|
||||
list;
|
||||
|
@ -235,14 +234,9 @@ file_save_cmd_callback (GtkAction *action,
|
|||
uri, save_proc,
|
||||
GIMP_RUN_WITH_LAST_VALS, FALSE, &error);
|
||||
|
||||
filename = file_utils_uri_display_name (uri);
|
||||
|
||||
switch (status)
|
||||
{
|
||||
case GIMP_PDB_SUCCESS:
|
||||
gimp_message (image->gimp, G_OBJECT (display), GIMP_MESSAGE_INFO,
|
||||
_("Image saved to '%s'"),
|
||||
filename);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_CANCEL:
|
||||
|
@ -251,14 +245,22 @@ file_save_cmd_callback (GtkAction *action,
|
|||
break;
|
||||
|
||||
default:
|
||||
gimp_message (image->gimp, G_OBJECT (display), GIMP_MESSAGE_ERROR,
|
||||
_("Saving '%s' failed:\n\n%s"),
|
||||
filename, error->message);
|
||||
g_clear_error (&error);
|
||||
{
|
||||
gchar *filename;
|
||||
|
||||
filename = file_utils_uri_display_name (uri);
|
||||
|
||||
gimp_message (image->gimp, G_OBJECT (display),
|
||||
GIMP_MESSAGE_ERROR,
|
||||
_("Saving '%s' failed:\n\n%s"),
|
||||
filename, error->message);
|
||||
|
||||
g_free (filename);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
g_free (filename);
|
||||
|
||||
for (list = gimp_action_groups_from_name ("file");
|
||||
list;
|
||||
|
|
|
@ -95,6 +95,7 @@ enum
|
|||
SELECTION_CONTROL,
|
||||
CLEAN,
|
||||
DIRTY,
|
||||
SAVED,
|
||||
UPDATE,
|
||||
UPDATE_GUIDE,
|
||||
UPDATE_SAMPLE_POINT,
|
||||
|
@ -355,6 +356,16 @@ gimp_image_class_init (GimpImageClass *klass)
|
|||
G_TYPE_NONE, 1,
|
||||
GIMP_TYPE_DIRTY_MASK);
|
||||
|
||||
gimp_image_signals[SAVED] =
|
||||
g_signal_new ("saved",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
G_STRUCT_OFFSET (GimpImageClass, saved),
|
||||
NULL, NULL,
|
||||
gimp_marshal_VOID__STRING,
|
||||
G_TYPE_NONE, 1,
|
||||
G_TYPE_STRING);
|
||||
|
||||
gimp_image_signals[UPDATE] =
|
||||
g_signal_new ("update",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
|
@ -489,6 +500,7 @@ gimp_image_class_init (GimpImageClass *klass)
|
|||
|
||||
klass->clean = NULL;
|
||||
klass->dirty = NULL;
|
||||
klass->saved = NULL;
|
||||
klass->update = NULL;
|
||||
klass->update_guide = NULL;
|
||||
klass->update_sample_point = NULL;
|
||||
|
@ -1923,6 +1935,23 @@ gimp_image_clean_all (GimpImage *image)
|
|||
g_signal_emit (image, gimp_image_signals[CLEAN], 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_image_saved:
|
||||
* @image:
|
||||
* @uri:
|
||||
*
|
||||
* Emits the "saved" signal, indicating that @image was saved to the
|
||||
* location specified by @uri.
|
||||
*/
|
||||
void
|
||||
gimp_image_saved (GimpImage *image,
|
||||
const gchar *uri)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_IMAGE (image));
|
||||
g_return_if_fail (uri != NULL);
|
||||
|
||||
g_signal_emit (image, gimp_image_signals[SAVED], 0, uri);
|
||||
}
|
||||
|
||||
/* flush this image's displays */
|
||||
|
||||
|
|
|
@ -201,6 +201,9 @@ struct _GimpImageClass
|
|||
GimpDirtyMask dirty_mask);
|
||||
void (* dirty) (GimpImage *image,
|
||||
GimpDirtyMask dirty_mask);
|
||||
void (* saved) (GimpImage *image,
|
||||
const gchar *uri);
|
||||
|
||||
void (* update) (GimpImage *image,
|
||||
gint x,
|
||||
gint y,
|
||||
|
@ -255,6 +258,8 @@ gchar * gimp_image_get_filename (const GimpImage *image);
|
|||
void gimp_image_set_save_proc (GimpImage *image,
|
||||
GimpPlugInProcedure *proc);
|
||||
GimpPlugInProcedure * gimp_image_get_save_proc (const GimpImage *image);
|
||||
void gimp_image_saved (GimpImage *image,
|
||||
const gchar *uri);
|
||||
|
||||
void gimp_image_set_resolution (GimpImage *image,
|
||||
gdouble xres,
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
#include "gimpdisplay.h"
|
||||
#include "gimpdisplay-handlers.h"
|
||||
|
||||
#include "gimp-intl.h"
|
||||
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
|
@ -42,6 +44,9 @@ static void gimp_display_update_handler (GimpProjection *projection,
|
|||
GimpDisplay *display);
|
||||
static void gimp_display_flush_handler (GimpImage *image,
|
||||
GimpDisplay *display);
|
||||
static void gimp_display_saved_handler (GimpImage *image,
|
||||
const gchar *uri,
|
||||
GimpDisplay *display);
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
@ -73,6 +78,9 @@ gimp_display_connect (GimpDisplay *display,
|
|||
g_signal_connect (image, "flush",
|
||||
G_CALLBACK (gimp_display_flush_handler),
|
||||
display);
|
||||
g_signal_connect (image, "saved",
|
||||
G_CALLBACK (gimp_display_saved_handler),
|
||||
display);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -83,6 +91,9 @@ gimp_display_disconnect (GimpDisplay *display)
|
|||
g_return_if_fail (GIMP_IS_DISPLAY (display));
|
||||
g_return_if_fail (GIMP_IS_IMAGE (display->image));
|
||||
|
||||
g_signal_handlers_disconnect_by_func (display->image,
|
||||
gimp_display_saved_handler,
|
||||
display);
|
||||
g_signal_handlers_disconnect_by_func (display->image,
|
||||
gimp_display_flush_handler,
|
||||
display);
|
||||
|
@ -128,3 +139,16 @@ gimp_display_flush_handler (GimpImage *image,
|
|||
{
|
||||
gimp_display_flush (display);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_display_saved_handler (GimpImage *image,
|
||||
const gchar *uri,
|
||||
GimpDisplay *display)
|
||||
{
|
||||
gchar *filename = file_utils_uri_display_name (uri);
|
||||
|
||||
gimp_message (image->gimp, G_OBJECT (display), GIMP_MESSAGE_INFO,
|
||||
_("Image saved to '%s'"), filename);
|
||||
|
||||
g_free (filename);
|
||||
}
|
||||
|
|
|
@ -326,7 +326,7 @@ gimp_display_new (GimpImage *image,
|
|||
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
/* If there isn't an interface, never create a displaylay */
|
||||
/* If there isn't an interface, never create a display */
|
||||
if (image->gimp->no_interface)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -173,6 +173,8 @@ file_save (GimpImage *image,
|
|||
gimp_image_clean_all (image);
|
||||
}
|
||||
|
||||
gimp_image_saved (image, uri);
|
||||
|
||||
documents = GIMP_DOCUMENT_LIST (image->gimp->documents);
|
||||
imagefile = gimp_document_list_add_uri (documents,
|
||||
uri,
|
||||
|
|
Loading…
Reference in New Issue