Hide the request message entry if it can't be used

https://bugzilla.gnome.org/show_bug.cgi?id=656934
parent 82600285
......@@ -74,6 +74,8 @@ struct _EmpathyContactSearchDialogPrivate
GtkWidget *search_entry;
/* GtkWidget *server_entry; */
GtkWidget *message;
GtkWidget *message_window;
GtkWidget *message_label;
};
static void
......@@ -335,6 +337,21 @@ on_selection_changed (GtkTreeSelection *selection,
gtk_widget_set_sensitive (priv->add_button, sel);
}
static void
check_request_message_available (EmpathyContactSearchDialog *self,
TpConnection *conn)
{
EmpathyContactSearchDialogPrivate *priv = GET_PRIVATE (self);
EmpathyContactManager *manager = empathy_contact_manager_dup_singleton ();
EmpathyContactListFlags flags;
flags = empathy_contact_manager_get_flags_for_connection (manager, conn);
gtk_widget_set_visible (priv->message_window,
flags & EMPATHY_CONTACT_LIST_MESSAGE_ADD);
gtk_widget_set_visible (priv->message_label,
flags & EMPATHY_CONTACT_LIST_MESSAGE_ADD);
}
static void
_account_chooser_changed (EmpathyAccountChooser *chooser,
......@@ -363,6 +380,9 @@ _account_chooser_changed (EmpathyAccountChooser *chooser,
NULL, /* gtk_entry_get_text (GTK_ENTRY (priv->server_entry)), */
0,
on_searcher_created, self);
/* Make the request message textview sensitive if it can be used */
check_request_message_available (self, conn);
}
static void
......@@ -603,8 +623,9 @@ empathy_contact_search_dialog_init (EmpathyContactSearchDialog *self)
gtk_box_pack_start (GTK_BOX (vbox), priv->notebook, TRUE, TRUE, 3);
/* Request message textview */
label = gtk_label_new (_("Your message introducing yourself:"));
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
priv->message_label = gtk_label_new (
_("Your message introducing yourself:"));
gtk_misc_set_alignment (GTK_MISC (priv->message_label), 0, 0.5);
priv->message = gtk_text_view_new ();
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (priv->message),
......@@ -613,16 +634,17 @@ empathy_contact_search_dialog_init (EmpathyContactSearchDialog *self)
gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->message)),
_("Please let me see when you're online. Thanks!"), -1);
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
priv->message_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (
GTK_SCROLLED_WINDOW (priv->message_window),
GTK_SHADOW_ETCHED_IN);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->message_window),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_container_add (GTK_CONTAINER (scrolled_window), priv->message);
gtk_container_add (GTK_CONTAINER (priv->message_window), priv->message);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 3);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, FALSE, TRUE, 3);
gtk_box_pack_start (GTK_BOX (vbox), priv->message_label, FALSE, TRUE, 3);
gtk_box_pack_start (GTK_BOX (vbox), priv->message_window, FALSE, TRUE, 3);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (
GTK_DIALOG (self))), vbox, TRUE, TRUE, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment