]> git.0d.be Git - empathy.git/commitdiff
empathy_subscription_dialog_show: display user's message if any (#630707)
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 27 Oct 2010 16:57:08 +0000 (18:57 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 9 Nov 2010 08:05:38 +0000 (09:05 +0100)
libempathy-gtk/empathy-contact-dialogs.c
libempathy-gtk/empathy-contact-dialogs.h
src/empathy-event-manager.c

index 9189d41e6d8748619fb3f2663cbfa1f03fbb7ed2..a5ae51d031dde32a0909c9f80c335661fcb7ee78 100644 (file)
@@ -91,11 +91,13 @@ subscription_dialog_response_cb (GtkDialog *dialog,
 
 void
 empathy_subscription_dialog_show (EmpathyContact *contact,
+                                 const gchar *message,
                                  GtkWindow     *parent)
 {
        GtkBuilder *gui;
        GtkWidget *dialog;
        GtkWidget *hbox_subscription;
+       GtkWidget *vbox;
        GtkWidget *contact_widget;
        GList     *l;
        gchar     *filename;
@@ -119,16 +121,37 @@ empathy_subscription_dialog_show (EmpathyContact *contact,
        g_free (filename);
        g_object_unref (gui);
 
+       vbox = gtk_vbox_new (FALSE, 6);
+
+       gtk_box_pack_end (GTK_BOX (hbox_subscription), vbox,
+                         TRUE, TRUE, 0);
+
        /* Contact info widget */
        contact_widget = empathy_contact_widget_new (contact,
                                                     EMPATHY_CONTACT_WIDGET_NO_SET_ALIAS |
                                                     EMPATHY_CONTACT_WIDGET_EDIT_ALIAS |
                                                     EMPATHY_CONTACT_WIDGET_EDIT_GROUPS);
-       gtk_box_pack_end (GTK_BOX (hbox_subscription),
+       gtk_box_pack_start (GTK_BOX (vbox),
                          contact_widget,
                          TRUE, TRUE,
                          0);
+
+       if (!tp_str_empty (message)) {
+               GtkWidget *label;
+               gchar *tmp;
+
+               label = gtk_label_new ("");
+               tmp = g_strdup_printf ("<i>%s</i>", message);
+
+               gtk_label_set_markup (GTK_LABEL (label), tmp);
+               g_free (tmp);
+               gtk_widget_show (label);
+
+               gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+       }
+
        gtk_widget_show (contact_widget);
+       gtk_widget_show (vbox);
 
        g_object_set_data (G_OBJECT (dialog), "contact_widget", contact_widget);
        subscription_dialogs = g_list_prepend (subscription_dialogs, dialog);
index 21aa5ce732df4fca1a4f294787790a2f73c3e801..8c3ffc6c19cc9e097cecf7e90310f1eb25083e71 100644 (file)
@@ -29,6 +29,7 @@
 G_BEGIN_DECLS
 
 void empathy_subscription_dialog_show        (EmpathyContact *contact,
+                                             const gchar *message,
                                              GtkWindow      *parent);
 void empathy_contact_information_dialog_show (EmpathyContact *contact,
                                              GtkWindow      *parent);
index 1145d1b65363fff4ab43edb23f4e0f654ae347a8..afd9432d929410bff53c2f8fdd133e60995de3df 100644 (file)
@@ -976,7 +976,7 @@ out:
 static void
 event_pending_subscribe_func (EventPriv *event)
 {
-  empathy_subscription_dialog_show (event->public.contact, NULL);
+  empathy_subscription_dialog_show (event->public.contact, NULL, NULL);
   event_remove (event);
 }