diff options
author | Bastien Nocera <hadess@hadess.net> | 2015-08-25 14:46:28 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2015-08-25 14:51:28 +0200 |
commit | 917ff3e5340fe6687624adf59c92d34117513b45 (patch) | |
tree | 610b5433be99ec4200e45b809d09f6a6685c8780 | |
parent | 3367d1fd8f163e2416535623bc4daf935a595cba (diff) | |
download | totem-917ff3e5340fe6687624adf59c92d34117513b45.tar.gz |
skipto: Connect to signals by hand
For some reason, GtkBuilder can't find the signals to connect to,
despite the correct linker flags being used. Don't fight it, and connect
to them by hand instead.
-rw-r--r-- | src/plugins/skipto/skipto.ui | 2 | ||||
-rw-r--r-- | src/plugins/skipto/totem-skipto.c | 31 |
2 files changed, 19 insertions, 14 deletions
diff --git a/src/plugins/skipto/skipto.ui b/src/plugins/skipto/skipto.ui index a632b6085..19633615d 100644 --- a/src/plugins/skipto/skipto.ui +++ b/src/plugins/skipto/skipto.ui @@ -54,12 +54,10 @@ <property name="page-increment">10</property> <property name="page-size">0</property> <property name="value">0</property> - <signal name="value-changed" handler="tstw_adjustment_value_changed_cb"/> </object> <object class="TotemTimeEntry" id="tstw_skip_time_entry"> <property name="climb_rate">1</property> <property name="adjustment">tstw_skip_adjustment</property> - <signal name="activate" handler="time_entry_activate_cb"/> </object> <packing> <property name="padding">0</property> diff --git a/src/plugins/skipto/totem-skipto.c b/src/plugins/skipto/totem-skipto.c index faeccbd09..b79ee8b60 100644 --- a/src/plugins/skipto/totem-skipto.c +++ b/src/plugins/skipto/totem-skipto.c @@ -45,14 +45,11 @@ static void totem_skipto_dispose (GObject *object); -/* Callback functions for GtkBuilder */ -G_MODULE_EXPORT void time_entry_activate_cb (GtkEntry *entry, TotemSkipto *skipto); -G_MODULE_EXPORT void tstw_adjustment_value_changed_cb (GtkAdjustment *adjustment, TotemSkipto *skipto); - struct TotemSkiptoPrivate { GtkBuilder *xml; GtkWidget *time_entry; GtkLabel *seconds_label; + GtkAdjustment *adj; gint64 time; Totem *totem; gpointer class_ref; @@ -61,6 +58,8 @@ struct TotemSkiptoPrivate { G_DEFINE_TYPE (TotemSkipto, totem_skipto, GTK_TYPE_DIALOG) #define TOTEM_SKIPTO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TOTEM_TYPE_SKIPTO, TotemSkiptoPrivate)) +#define WID(x) (gtk_builder_get_object (skipto->priv->xml, x)) + static void totem_skipto_class_init (TotemSkiptoClass *klass) { @@ -98,6 +97,9 @@ totem_skipto_dispose (GObject *object) skipto = TOTEM_SKIPTO (object); if (skipto->priv) { g_clear_object (&skipto->priv->xml); + skipto->priv->adj = NULL; + skipto->priv->time_entry = NULL; + skipto->priv->seconds_label = NULL; if (skipto->priv->class_ref != NULL) { g_type_class_unref (skipto->priv->class_ref); @@ -151,13 +153,13 @@ totem_skipto_set_current (TotemSkipto *skipto, gint64 _time) (gdouble) (_time / 1000)); } -void +static void time_entry_activate_cb (GtkEntry *entry, TotemSkipto *skipto) { gtk_dialog_response (GTK_DIALOG (skipto), GTK_RESPONSE_OK); } -void +static void tstw_adjustment_value_changed_cb (GtkAdjustment *adjustment, TotemSkipto *skipto) { /* Update the "seconds" label so that it always has the correct singular/plural form */ @@ -184,10 +186,16 @@ totem_skipto_new (TotemObject *totem) g_object_unref (skipto); return NULL; } - skipto->priv->time_entry = GTK_WIDGET (gtk_builder_get_object - (skipto->priv->xml, "tstw_skip_time_entry")); - skipto->priv->seconds_label = GTK_LABEL (gtk_builder_get_object - (skipto->priv->xml, "tstw_seconds_label")); + + skipto->priv->adj = GTK_ADJUSTMENT (WID("tstw_skip_adjustment")); + g_signal_connect (skipto->priv->adj, "value-changed", + G_CALLBACK (tstw_adjustment_value_changed_cb), skipto); + + skipto->priv->time_entry = GTK_WIDGET (WID ("tstw_skip_time_entry")); + g_signal_connect (G_OBJECT (skipto->priv->time_entry), "activate", + G_CALLBACK (time_entry_activate_cb), skipto); + + skipto->priv->seconds_label = GTK_LABEL (WID ("tstw_seconds_label")); /* Fix the label width at the maximum necessary for the plural labels, to prevent it changing size when we change the spinner value */ /* Translators: you should translate this string to a number (written in digits) which corresponds to the longer character length of the @@ -197,8 +205,7 @@ totem_skipto_new (TotemObject *totem) gtk_label_set_width_chars (skipto->priv->seconds_label, label_length); /* Set the initial "seconds" label */ - tstw_adjustment_value_changed_cb (GTK_ADJUSTMENT (gtk_builder_get_object - (skipto->priv->xml, "tstw_skip_adjustment")), skipto); + tstw_adjustment_value_changed_cb (skipto->priv->adj, skipto); gtk_window_set_title (GTK_WINDOW (skipto), _("Skip To")); gtk_dialog_add_buttons (GTK_DIALOG (skipto), |