summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2015-08-25 14:46:28 +0200
committerBastien Nocera <hadess@hadess.net>2015-08-25 14:51:28 +0200
commit917ff3e5340fe6687624adf59c92d34117513b45 (patch)
tree610b5433be99ec4200e45b809d09f6a6685c8780
parent3367d1fd8f163e2416535623bc4daf935a595cba (diff)
downloadtotem-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.ui2
-rw-r--r--src/plugins/skipto/totem-skipto.c31
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),