* Martyn Russell <martyn@imendio.com>
* Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
* Jonathan Tellier <jonathan.tellier@gmail.com>
+ * Danielle Madeley <danielle.madeley@collabora.co.uk>
*/
#include <config.h>
HANDLE_APPLY,
ACCOUNT_CREATED,
CANCELLED,
+ CLOSE,
LAST_SIGNAL
};
EmpathyAccountWidget *self)
{
g_signal_emit (self, signals[CANCELLED], 0);
+ g_signal_emit (self, signals[CLOSE], 0, GTK_RESPONSE_CANCEL);
}
static void
tp_account_set_enabled_async (account, TRUE,
account_widget_account_enabled_cb, widget);
g_signal_emit (widget, signals[ACCOUNT_CREATED], 0, account);
+ // FIXME: should we emit a signal here?
}
else
{
priv->contains_pending_changes = FALSE;
+ /* announce the widget can be closed */
+ g_signal_emit (widget, signals[CLOSE], 0, GTK_RESPONSE_APPLY);
+
/* unref the widget - part of the workaround */
g_object_unref (widget);
}
G_TYPE_NONE,
0);
+ signals[CLOSE] =
+ g_signal_new ("close", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+ g_cclosure_marshal_VOID__INT,
+ G_TYPE_NONE,
+ 1, G_TYPE_INT);
+
g_type_class_add_private (klass, sizeof (EmpathyAccountWidgetPriv));
}
* Xavier Claessens <xclaesse@gmail.com>
* Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
* Jonathan Tellier <jonathan.tellier@gmail.com>
+ * Danielle Madeley <danielle.madeley@collabora.co.uk>
*/
#include <config.h>
priv->setting_widget_object =
empathy_account_widget_new_for_protocol (settings, FALSE);
+ // FIXME: why doesn't this work for cancel, but does for apply?
g_object_add_weak_pointer (G_OBJECT (priv->setting_widget_object),
(gpointer *) &priv->setting_widget_object);
g_signal_connect (priv->setting_widget_object, "cancelled",
G_CALLBACK (empathy_account_dialog_widget_cancelled_cb), dialog);
- /* FIXME: need to hook up apply button, where to buttons belong? */
- /* FIXME: yes? */
- g_signal_connect_swapped (priv->setting_widget_object, "account-created",
- G_CALLBACK (gtk_widget_destroy), subdialog);
- g_signal_connect_swapped (priv->setting_widget_object, "cancelled",
+ g_signal_connect_swapped (priv->setting_widget_object, "close",
G_CALLBACK (gtk_widget_destroy), subdialog);
gtk_container_add (
if (gtk_tree_selection_get_selected (selection, &model, &iter))
gtk_tree_model_get (model, &iter, COL_ACCOUNT, account, -1);
+ // FIXME: this is called before @setting_widget_object is cleared
return priv->setting_widget_object != NULL
&& empathy_account_widget_contains_pending_changes (
priv->setting_widget_object);