[gnumeric] SheetWidgetRadioButton: code cleanup.



commit 491b71927e9e0f1954628220f08d1bde695823d1
Author: Morten Welinder <terra gnome org>
Date:   Mon Feb 23 09:36:06 2015 -0500

    SheetWidgetRadioButton: code cleanup.

 ChangeLog                             |    5 +++++
 plugins/excel/xlsx-write-drawing.c    |   10 +++-------
 plugins/openoffice/openoffice-write.c |    4 ++--
 src/sheet-object-widget.c             |   11 +++++++++++
 src/sheet-object-widget.h             |    1 +
 5 files changed, 22 insertions(+), 9 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index b3d69da..50900ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-23  Morten Welinder  <terra gnome org>
+
+       * src/sheet-object-widget.c (sheet_widget_radio_button_get_value):
+       New function.
+
 2015-02-21  Morten Welinder  <terra gnome org>
 
        * src/commands.c (cmd_so_set_adjustment_adj): horizontal is a
diff --git a/plugins/excel/xlsx-write-drawing.c b/plugins/excel/xlsx-write-drawing.c
index 1ff5f7b..db142a2 100644
--- a/plugins/excel/xlsx-write-drawing.c
+++ b/plugins/excel/xlsx-write-drawing.c
@@ -1359,11 +1359,8 @@ xlsx_write_drawing_objects (XLSXWriteState *state, GsfOutput *sheet_part,
 static int
 cb_radio_value_cmp (void const *ptr_a, void const *ptr_b)
 {
-       SheetObject *a = (gpointer)ptr_a;
-       SheetObject *b = (gpointer)ptr_b;
-       GnmValue *va, *vb;
-       g_object_get (a, "value", &va, NULL);
-       g_object_get (b, "value", &vb, NULL);
+       GnmValue *va = sheet_widget_radio_button_get_value ((SheetObject *)ptr_a);
+       GnmValue *vb = sheet_widget_radio_button_get_value ((SheetObject *)ptr_a);
        return value_cmp (&va, &vb);
 }
 
@@ -1413,8 +1410,7 @@ xlsx_preprocess_radio (XLSXWriteState *state, GSList *objects)
 
                for (i = 1; sos; sos = sos->next, i++) {
                        SheetObject *so = sos->data;
-                       GnmValue const *v;
-                       g_object_get (so, "value", &v, NULL);
+                       GnmValue const *v = sheet_widget_radio_button_get_value (so);
                        if (!v || !VALUE_IS_FLOAT (v) || value_get_as_float (v) != i) {
                                char *etxt = gnm_expr_top_as_string (hkey, &pp0, state->sheet->convs);
                                g_printerr ("One or more radio buttons linked to %s has non-sequential 
values, first one %s\n",
diff --git a/plugins/openoffice/openoffice-write.c b/plugins/openoffice/openoffice-write.c
index 03643b8..1e4d841 100644
--- a/plugins/openoffice/openoffice-write.c
+++ b/plugins/openoffice/openoffice-write.c
@@ -4137,10 +4137,10 @@ static void
 odf_write_sheet_control_radio_button (GnmOOExport *state, SheetObject *so)
 {
        GnmExprTop const *texpr = sheet_widget_radio_button_get_link (so);
+       GnmValue const *val = sheet_widget_radio_button_get_value (so);
        char *label = NULL;
-       GnmValue *val = NULL;
 
-       g_object_get (G_OBJECT (so), "text", &label, "value", &val, NULL);
+       g_object_get (G_OBJECT (so), "text", &label, NULL);
 
        odf_sheet_control_start_element (state, so, FORM "radio");
 
diff --git a/src/sheet-object-widget.c b/src/sheet-object-widget.c
index 7cebb68..8bcffc8 100644
--- a/src/sheet-object-widget.c
+++ b/src/sheet-object-widget.c
@@ -2875,6 +2875,17 @@ sheet_widget_radio_button_set_property (GObject *obj, guint param_id,
        }
 }
 
+GnmValue const *
+sheet_widget_radio_button_get_value (SheetObject *so)
+{
+       SheetWidgetRadioButton *swrb;
+
+       g_return_val_if_fail (GNM_IS_SOW_RADIO_BUTTON (so), NULL);
+
+       swrb = GNM_SOW_RADIO_BUTTON (so);
+       return swrb->value;
+}
+
 void
 sheet_widget_radio_button_set_value (SheetObject *so, GnmValue const *val)
 {
diff --git a/src/sheet-object-widget.h b/src/sheet-object-widget.h
index 39a923f..3b25df8 100644
--- a/src/sheet-object-widget.h
+++ b/src/sheet-object-widget.h
@@ -81,6 +81,7 @@ void sheet_widget_radio_button_set_link        (SheetObject *so,
                                          GnmExprTop const *result_link);
 void sheet_widget_radio_button_set_label (SheetObject *so, char const *str);
 void sheet_widget_radio_button_set_value (SheetObject *so, GnmValue const *val);
+GnmValue const *sheet_widget_radio_button_get_value (SheetObject *so);
 GnmExprTop const *sheet_widget_button_get_link (SheetObject *so);
 void sheet_widget_button_set_link       (SheetObject *so,
                                          GnmExprTop const *result_link);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]