GtkListStore *store;
GtkTreeModel *store_filter;
GtkWidget *view;
+ GtkWidget *scrolled_win;
+ GtkWidget *not_supported_label;
+ gboolean view_visible;
/* Connection */
TpDBusDaemon *dbus;
tp_g_value_slice_free (val);
}
+static void
+debug_dialog_set_toolbar_sensitivity (EmpathyDebugDialog *debug_dialog,
+ gboolean sensitive)
+{
+ EmpathyDebugDialogPriv *priv = GET_PRIV (debug_dialog);
+ GtkWidget *vbox = GTK_DIALOG (debug_dialog)->vbox;
+
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->save_button), sensitive);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->copy_button), sensitive);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->clear_button), sensitive);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->pause_button), sensitive);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->level_label), sensitive);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->level_filter), sensitive);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->view), sensitive);
+
+ if (sensitive && !priv->view_visible)
+ {
+ /* Add view and remove label */
+ gtk_container_remove (GTK_CONTAINER (vbox), priv->not_supported_label);
+ gtk_box_pack_start (GTK_BOX (vbox), priv->scrolled_win, TRUE, TRUE, 0);
+ priv->view_visible = TRUE;
+ }
+ else if (!sensitive && priv->view_visible)
+ {
+ /* Add label and remove view */
+ gtk_container_remove (GTK_CONTAINER (vbox), priv->scrolled_win);
+ gtk_box_pack_start (GTK_BOX (vbox), priv->not_supported_label,
+ TRUE, TRUE, 0);
+ priv->view_visible = FALSE;
+ }
+}
+
static void
debug_dialog_get_messages_cb (TpProxy *proxy,
const GPtrArray *messages,
if (error != NULL)
{
DEBUG ("GetMessages failed: %s", error->message);
+ debug_dialog_set_toolbar_sensitivity (debug_dialog, FALSE);
return;
}
+ debug_dialog_set_toolbar_sensitivity (debug_dialog, TRUE);
+
for (i = 0; i < messages->len; i++)
{
GValueArray *values = g_ptr_array_index (messages, i);
COL_CM_NAME, data->cm_name,
COL_CM_UNIQUE_NAME, out,
-1);
-
- gtk_combo_box_set_active (GTK_COMBO_BOX (priv->cm_chooser), 0);
}
OUT:
if (error2 != NULL)
{
DEBUG ("Failed to dup TpDBusDaemon.");
+ g_error_free (error2);
return;
}
{
EmpathyDebugDialogPriv *priv = GET_PRIV (debug_dialog);
GError *error = NULL;
+ GtkTreeIter iter;
priv->dbus = tp_dbus_daemon_dup (&error);
return;
}
+ /* Add empathy */
+ gtk_list_store_append (priv->cms, &iter);
+ gtk_list_store_set (priv->cms, &iter,
+ COL_CM_NAME, "empathy",
+ COL_CM_UNIQUE_NAME, "org.gnome.Empathy",
+ -1);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->cm_chooser), 0);
+
+ /* Add CMs to list */
tp_list_connection_names (priv->dbus, debug_dialog_list_connection_names_cb,
debug_dialog, NULL, NULL);
GtkWidget *label;
GtkToolItem *item;
GtkCellRenderer *renderer;
- GtkWidget *scrolled_win;
GtkListStore *level_store;
GtkTreeIter iter;
gtk_widget_show (GTK_WIDGET (item));
gtk_container_add (GTK_CONTAINER (item), priv->cm_chooser);
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
- debug_dialog_fill_cm_chooser (EMPATHY_DEBUG_DIALOG (object));
g_signal_connect (priv->cm_chooser, "changed",
G_CALLBACK (debug_dialog_cm_chooser_changed_cb), object);
gtk_widget_show (GTK_WIDGET (priv->cm_chooser));
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->view), priv->store_filter);
/* Scrolled window */
- scrolled_win = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+ priv->scrolled_win = g_object_ref (gtk_scrolled_window_new (NULL, NULL));
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_widget_show (priv->view);
- gtk_container_add (GTK_CONTAINER (scrolled_win), priv->view);
+ gtk_container_add (GTK_CONTAINER (priv->scrolled_win), priv->view);
+
+ gtk_widget_show (priv->scrolled_win);
- gtk_widget_show (scrolled_win);
- gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
+ /* Not supported label */
+ priv->not_supported_label = g_object_ref (gtk_label_new (
+ _("The selected connection manager does not support the remote "
+ "debugging extension.")));
+ gtk_widget_show (priv->not_supported_label);
+ gtk_box_pack_start (GTK_BOX (vbox), priv->not_supported_label, TRUE, TRUE, 0);
+ priv->view_visible = FALSE;
+
+ debug_dialog_set_toolbar_sensitivity (EMPATHY_DEBUG_DIALOG (object), FALSE);
+ debug_dialog_fill_cm_chooser (EMPATHY_DEBUG_DIALOG (object));
gtk_widget_show (GTK_WIDGET (object));
return object;