diff options
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/e-alert-activity.c | 18 | ||||
-rw-r--r-- | e-util/e-alert-dialog.c | 33 | ||||
-rw-r--r-- | e-util/e-alert-dialog.h | 1 |
3 files changed, 38 insertions, 14 deletions
diff --git a/e-util/e-alert-activity.c b/e-util/e-alert-activity.c index 1e8f915213..23f747fe1f 100644 --- a/e-util/e-alert-activity.c +++ b/e-util/e-alert-activity.c @@ -14,12 +14,16 @@ * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see <http://www.gnu.org/licenses/> * + * Authors: + * Jonathon Jongsma <jonathon.jongsma@collabora.co.uk> * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * Copyright (C) 2009 Intel Corporation * */ #include "e-alert-activity.h" +#include "e-alert-dialog.h" #define E_ALERT_ACTIVITY_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ @@ -100,21 +104,27 @@ alert_activity_constructed (GObject *object) { EActivity *activity; EAlertActivity *alert_activity; + EAlert *alert; GtkWidget *message_dialog; - const gchar *primary_text; - const gchar *secondary_text; + gchar *primary_text; + gchar *secondary_text; alert_activity = E_ALERT_ACTIVITY (object); message_dialog = e_alert_activity_get_message_dialog (alert_activity); object = G_OBJECT (message_dialog); - primary_text = g_object_get_data (object, "primary"); - secondary_text = g_object_get_data (object, "secondary"); + alert = e_alert_dialog_get_alert (E_ALERT_DIALOG (message_dialog)); + primary_text = e_alert_get_primary_text (alert); + secondary_text = e_alert_get_secondary_text (alert); + g_object_unref (alert); activity = E_ACTIVITY (alert_activity); e_activity_set_primary_text (activity, primary_text); e_activity_set_secondary_text (activity, secondary_text); + g_free (primary_text); + g_free (secondary_text); + /* This is a constructor property, so can't do it in init(). * XXX What we really want to do is override the property's * default value, but GObject does not support that. */ diff --git a/e-util/e-alert-dialog.c b/e-util/e-alert-dialog.c index 5b8d2a8299..dd4d399f36 100644 --- a/e-util/e-alert-dialog.c +++ b/e-util/e-alert-dialog.c @@ -125,7 +125,6 @@ e_alert_dialog_constructed (GObject *obj) GtkWidget *action_area; GtkWidget *content_area; GString *out; - gchar *perr=NULL, *serr=NULL; gchar *title, *primary, *secondary; g_return_if_fail (self != NULL); @@ -203,15 +202,11 @@ e_alert_dialog_constructed (GObject *obj) g_string_append_printf (out, "<span weight=\"bold\" size=\"larger\">%s</span>\n\n", primary); - /* FIXME: What is this used for? */ - perr = g_strdup (primary); - } else - perr = g_strdup (title); /* XXX: why? */ + } secondary = e_alert_get_secondary_text (alert); if (secondary) { g_string_append (out, secondary); - serr = g_strdup (secondary); } g_free (secondary); @@ -238,9 +233,6 @@ e_alert_dialog_constructed (GObject *obj) gtk_widget_show_all(hbox); gtk_box_pack_start (GTK_BOX (content_area), hbox, TRUE, TRUE, 0); - /* FIXME: What is this used for? */ - g_object_set_data_full ((GObject *) self, "primary", perr, g_free); - g_object_set_data_full ((GObject *) self, "secondary", serr, g_free); } static void @@ -333,7 +325,7 @@ e_alert_run_dialog_for_args (GtkWindow *parent, const gchar *tag, const gchar *a /** * e_alert_dialog_count_buttons: - * @dialog: a #GtkDialog + * @dialog: a #EAlertDialog * * Counts the number of buttons in @dialog's action area. * @@ -360,3 +352,24 @@ e_alert_dialog_count_buttons (EAlertDialog *dialog) return n_buttons; } + +/** + * e_alert_dialog_get_alert: + * @dialog: a #EAlertDialog + * + * Convenience API for getting the #EAlert associated with @dialog + * + * Return value: the #EAlert associated with @dialog. The alert should be + * unreffed when no longer needed. + */ +EAlert * +e_alert_dialog_get_alert (EAlertDialog *dialog) +{ + EAlert *alert = NULL; + + g_return_val_if_fail (dialog != NULL, NULL); + + g_object_get (dialog, "alert", &alert, + NULL); + return alert; +} diff --git a/e-util/e-alert-dialog.h b/e-util/e-alert-dialog.h index d70a76a951..df87c90f99 100644 --- a/e-util/e-alert-dialog.h +++ b/e-util/e-alert-dialog.h @@ -76,6 +76,7 @@ gint e_alert_run_dialog(GtkWindow *parent, EAlert *alert); gint e_alert_run_dialog_for_args (GtkWindow *parent, const gchar *tag, const gchar *arg0, ...); guint e_alert_dialog_count_buttons (EAlertDialog *dialog); +EAlert *e_alert_dialog_get_alert (EAlertDialog *dialog); G_END_DECLS |