mirror of https://github.com/GNOME/gimp.git
added some logic to avoid that an info message replaces a warning. Allow
2008-08-15 Sven Neumann <sven@gimp.org> * app/display/gimpstatusbar.[ch]: added some logic to avoid that an info message replaces a warning. Allow info messages to replaced other info messages. * app/display/gimpdisplay-handlers.c: changed accordingly. svn path=/trunk/; revision=26572
This commit is contained in:
parent
8977c477ad
commit
644ad1ef2c
|
@ -154,12 +154,9 @@ gimp_display_saved_handler (GimpImage *image,
|
|||
GimpDisplay *display)
|
||||
{
|
||||
GtkWidget *statusbar = GIMP_DISPLAY_SHELL (display->shell)->statusbar;
|
||||
gchar *filename;
|
||||
|
||||
filename = file_utils_uri_display_name (uri);
|
||||
|
||||
gimp_statusbar_push_temp (GIMP_STATUSBAR (statusbar), GTK_STOCK_SAVE,
|
||||
_("Image saved to '%s'"), filename);
|
||||
gchar *filename = file_utils_uri_display_name (uri);
|
||||
|
||||
gimp_statusbar_push_temp (GIMP_STATUSBAR (statusbar), GIMP_MESSAGE_INFO,
|
||||
GTK_STOCK_SAVE, _("Image saved to '%s'"), filename);
|
||||
g_free (filename);
|
||||
}
|
||||
|
|
|
@ -496,8 +496,8 @@ gimp_statusbar_progress_message (GimpProgress *progress,
|
|||
const gchar *stock_id;
|
||||
gboolean handle_msg = FALSE;
|
||||
|
||||
/* don't accept a message if we are already displaying one */
|
||||
if (statusbar->temp_timeout_id)
|
||||
/* don't accept a message if we are already displaying a more severe one */
|
||||
if (statusbar->temp_timeout_id && statusbar->temp_severity > severity)
|
||||
return FALSE;
|
||||
|
||||
/* we can only handle short one-liners */
|
||||
|
@ -536,7 +536,7 @@ gimp_statusbar_progress_message (GimpProgress *progress,
|
|||
g_object_unref (layout);
|
||||
|
||||
if (handle_msg)
|
||||
gimp_statusbar_push_temp (statusbar, stock_id, "%s", message);
|
||||
gimp_statusbar_push_temp (statusbar, severity, stock_id, "%s", message);
|
||||
|
||||
return handle_msg;
|
||||
}
|
||||
|
@ -1030,33 +1030,37 @@ gimp_statusbar_pop (GimpStatusbar *statusbar,
|
|||
}
|
||||
|
||||
void
|
||||
gimp_statusbar_push_temp (GimpStatusbar *statusbar,
|
||||
const gchar *stock_id,
|
||||
const gchar *format,
|
||||
gimp_statusbar_push_temp (GimpStatusbar *statusbar,
|
||||
GimpMessageSeverity severity,
|
||||
const gchar *stock_id,
|
||||
const gchar *format,
|
||||
...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
g_return_if_fail (GIMP_IS_STATUSBAR (statusbar));
|
||||
g_return_if_fail (format != NULL);
|
||||
|
||||
va_start (args, format);
|
||||
gimp_statusbar_push_temp_valist (statusbar, stock_id, format, args);
|
||||
gimp_statusbar_push_temp_valist (statusbar, severity, stock_id, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_statusbar_push_temp_valist (GimpStatusbar *statusbar,
|
||||
const gchar *stock_id,
|
||||
const gchar *format,
|
||||
va_list args)
|
||||
gimp_statusbar_push_temp_valist (GimpStatusbar *statusbar,
|
||||
GimpMessageSeverity severity,
|
||||
const gchar *stock_id,
|
||||
const gchar *format,
|
||||
va_list args)
|
||||
{
|
||||
GimpStatusbarMsg *msg = NULL;
|
||||
gchar *message;
|
||||
|
||||
g_return_if_fail (GIMP_IS_STATUSBAR (statusbar));
|
||||
g_return_if_fail (severity <= GIMP_MESSAGE_WARNING);
|
||||
g_return_if_fail (format != NULL);
|
||||
|
||||
/* don't accept a message if we are already displaying a more severe one */
|
||||
if (statusbar->temp_timeout_id && statusbar->temp_severity > severity)
|
||||
return;
|
||||
|
||||
message = gimp_statusbar_vprintf (format, args);
|
||||
|
||||
if (statusbar->temp_timeout_id)
|
||||
|
@ -1066,6 +1070,8 @@ gimp_statusbar_push_temp_valist (GimpStatusbar *statusbar,
|
|||
g_timeout_add (MESSAGE_TIMEOUT,
|
||||
(GSourceFunc) gimp_statusbar_temp_timeout, statusbar);
|
||||
|
||||
statusbar->temp_severity = severity;
|
||||
|
||||
if (statusbar->messages)
|
||||
{
|
||||
msg = statusbar->messages->data;
|
||||
|
|
|
@ -37,31 +37,32 @@ typedef struct _GimpStatusbarClass GimpStatusbarClass;
|
|||
|
||||
struct _GimpStatusbar
|
||||
{
|
||||
GtkStatusbar parent_instance;
|
||||
GtkStatusbar parent_instance;
|
||||
|
||||
GimpDisplayShell *shell;
|
||||
GimpDisplayShell *shell;
|
||||
|
||||
GSList *messages;
|
||||
GHashTable *context_ids;
|
||||
guint seq_context_id;
|
||||
GSList *messages;
|
||||
GHashTable *context_ids;
|
||||
guint seq_context_id;
|
||||
|
||||
GdkPixbuf *icon;
|
||||
GdkPixbuf *icon;
|
||||
|
||||
guint temp_context_id;
|
||||
guint temp_timeout_id;
|
||||
guint temp_context_id;
|
||||
guint temp_timeout_id;
|
||||
GimpMessageSeverity temp_severity;
|
||||
|
||||
gchar cursor_format_str[CURSOR_FORMAT_LENGTH];
|
||||
gchar length_format_str[CURSOR_FORMAT_LENGTH];
|
||||
gchar cursor_format_str[CURSOR_FORMAT_LENGTH];
|
||||
gchar length_format_str[CURSOR_FORMAT_LENGTH];
|
||||
|
||||
GtkWidget *cursor_label;
|
||||
GtkWidget *unit_combo;
|
||||
GtkWidget *scale_combo;
|
||||
GtkWidget *cursor_label;
|
||||
GtkWidget *unit_combo;
|
||||
GtkWidget *scale_combo;
|
||||
|
||||
GtkWidget *progressbar;
|
||||
GtkWidget *cancel_button;
|
||||
gboolean progress_active;
|
||||
gboolean progress_shown;
|
||||
gdouble progress_value;
|
||||
GtkWidget *progressbar;
|
||||
GtkWidget *cancel_button;
|
||||
gboolean progress_active;
|
||||
gboolean progress_shown;
|
||||
gdouble progress_value;
|
||||
};
|
||||
|
||||
struct _GimpStatusbarClass
|
||||
|
@ -120,10 +121,12 @@ void gimp_statusbar_pop (GimpStatusbar *statusbar,
|
|||
const gchar *context);
|
||||
|
||||
void gimp_statusbar_push_temp (GimpStatusbar *statusbar,
|
||||
GimpMessageSeverity severity,
|
||||
const gchar *stock_id,
|
||||
const gchar *format,
|
||||
...) G_GNUC_PRINTF(3,4);
|
||||
...) G_GNUC_PRINTF(4,5);
|
||||
void gimp_statusbar_push_temp_valist (GimpStatusbar *statusbar,
|
||||
GimpMessageSeverity severity,
|
||||
const gchar *stock_id,
|
||||
const gchar *format,
|
||||
va_list args);
|
||||
|
|
Loading…
Reference in New Issue