[gnumeric] xlsx: import radio button's state.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] xlsx: import radio button's state.
- Date: Wed, 25 Feb 2015 17:56:19 +0000 (UTC)
commit 78a31ceb23e4ab57071880db1ab222af91849888
Author: Morten Welinder <terra gnome org>
Date: Wed Feb 25 12:55:59 2015 -0500
xlsx: import radio button's state.
plugins/excel/xlsx-read-drawing.c | 5 +--
src/sheet-object-widget.c | 62 +++++++++++++++++++------------------
2 files changed, 34 insertions(+), 33 deletions(-)
---
diff --git a/plugins/excel/xlsx-read-drawing.c b/plugins/excel/xlsx-read-drawing.c
index b48e951..fa95a19 100644
--- a/plugins/excel/xlsx-read-drawing.c
+++ b/plugins/excel/xlsx-read-drawing.c
@@ -3678,10 +3678,9 @@ xlsx_vml_checked (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
const char *s = xin->content->str;
gboolean checked = strtol (s, NULL, 10) > 0;
- if (GNM_IS_SOW_CHECKBOX (state->so)) {
+ if (GNM_IS_SOW_CHECKBOX (state->so) ||
+ GNM_IS_SOW_RADIO_BUTTON (state->so)) {
g_object_set (state->so, "active", checked, NULL);
- } else if (GNM_IS_SOW_RADIO_BUTTON (state->so)) {
- /* FIXME */
}
}
diff --git a/src/sheet-object-widget.c b/src/sheet-object-widget.c
index f41a2d6..11c6037 100644
--- a/src/sheet-object-widget.c
+++ b/src/sheet-object-widget.c
@@ -2808,13 +2808,31 @@ enum {
SOR_PROP_VALUE
};
-static GnmValue *
-so_parse_value (SheetObject *so, const char *s)
+static void
+sheet_widget_radio_button_set_active (SheetWidgetRadioButton *swrb,
+ gboolean active)
{
- Sheet *sheet = so->sheet;
- return format_match (s, NULL, workbook_date_conv (sheet->workbook));
+ GList *ptr;
+
+ if (swrb->active == active)
+ return;
+ swrb->active = active;
+
+ swrb->being_updated = TRUE;
+
+ for (ptr = swrb->sow.so.realized_list; ptr != NULL ; ptr = ptr->next) {
+ SheetObjectView *view = ptr->data;
+ GocWidget *item = get_goc_widget (view);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (item->widget),
+ active);
+ }
+
+ g_object_notify (G_OBJECT (swrb), "active");
+
+ swrb->being_updated = FALSE;
}
+
static void
sheet_widget_radio_button_get_property (GObject *obj, guint param_id,
GValue *value, GParamSpec *pspec)
@@ -2848,7 +2866,8 @@ sheet_widget_radio_button_set_property (GObject *obj, guint param_id,
switch (param_id) {
case SOR_PROP_ACTIVE:
- g_assert_not_reached ();
+ sheet_widget_radio_button_set_active (swrb,
+ g_value_get_boolean (value));
break;
case SOR_PROP_TEXT:
sheet_widget_radio_button_set_label (SHEET_OBJECT (swrb),
@@ -2891,30 +2910,6 @@ sheet_widget_radio_button_set_value (SheetObject *so, GnmValue const *val)
}
static void
-sheet_widget_radio_button_set_active (SheetWidgetRadioButton *swrb,
- gboolean active)
-{
- GList *ptr;
-
- if (swrb->active == active)
- return;
- swrb->active = active;
-
- swrb->being_updated = TRUE;
-
- for (ptr = swrb->sow.so.realized_list; ptr != NULL ; ptr = ptr->next) {
- SheetObjectView *view = ptr->data;
- GocWidget *item = get_goc_widget (view);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (item->widget),
- active);
- }
-
- g_object_notify (G_OBJECT (swrb), "active");
-
- swrb->being_updated = FALSE;
-}
-
-static void
radio_button_eval (GnmDependent *dep)
{
GnmValue *v;
@@ -3203,6 +3198,13 @@ cb_radio_button_config_destroy (RadioButtonConfigState *state)
g_free (state);
}
+static GnmValue *
+so_parse_value (SheetObject *so, const char *s)
+{
+ Sheet *sheet = so->sheet;
+ return format_match (s, NULL, workbook_date_conv (sheet->workbook));
+}
+
static void
cb_radio_button_config_ok_clicked (G_GNUC_UNUSED GtkWidget *button, RadioButtonConfigState *state)
{
@@ -3404,7 +3406,7 @@ SOW_MAKE_TYPE (radio_button, RadioButton,
(object_class, SOR_PROP_ACTIVE,
g_param_spec_boolean ("active", NULL, NULL,
FALSE,
- GSF_PARAM_STATIC | G_PARAM_READABLE));
+ GSF_PARAM_STATIC | G_PARAM_READWRITE));
g_object_class_install_property
(object_class, SOR_PROP_TEXT,
g_param_spec_string ("text", NULL, NULL, NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]