@@ -781,14 +781,18 @@ gnc_prefs_sort_pages (GtkNotebook *notebook)
781
781
/*******************************/
782
782
783
783
static void
784
- gnc_prefs_split_widget_name (const gchar * name , gchar * * group , gchar * * pref )
784
+ gnc_prefs_split_widget_name (const gchar * name , gchar * * group , gchar * * pref , gchar * * value )
785
785
{
786
786
const gchar * group_with_pref = name + PREF_PREFIX_LEN ;
787
787
gchar * * splits = g_strsplit (group_with_pref , "/" , 0 );
788
+ gchar * * value_splits = g_strsplit (splits [1 ], "=" , 0 );
788
789
789
790
* group = g_strdup (splits [0 ]);
790
- * pref = g_strdup (splits [1 ]);
791
+ * pref = g_strdup (value_splits [0 ]);
792
+ if (value )
793
+ * value = g_strdup (value_splits [1 ]); /* may be NULL */
791
794
g_strfreev (splits );
795
+ g_strfreev (value_splits );
792
796
}
793
797
794
798
/****************************************************************************/
@@ -806,8 +810,8 @@ gnc_prefs_connect_font_button (GtkFontButton *fb)
806
810
807
811
g_return_if_fail (GTK_IS_FONT_BUTTON (fb ));
808
812
809
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (fb )), & group , & pref );
810
- gnc_prefs_bind (group , pref , G_OBJECT (fb ), "font-name" );
813
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (fb )), & group , & pref , NULL );
814
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (fb ), "font-name" );
811
815
812
816
g_free (group );
813
817
g_free (pref );
@@ -873,9 +877,9 @@ gnc_prefs_connect_file_chooser_button (GtkFileChooserButton *fcb, const gchar *b
873
877
g_return_if_fail (GTK_FILE_CHOOSER_BUTTON (fcb ));
874
878
875
879
if (boxname == NULL )
876
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (fcb )), & group , & pref );
880
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (fcb )), & group , & pref , NULL );
877
881
else
878
- gnc_prefs_split_widget_name (boxname , & group , & pref );
882
+ gnc_prefs_split_widget_name (boxname , & group , & pref , NULL );
879
883
880
884
uri = gnc_prefs_get_string (group , pref );
881
885
@@ -990,16 +994,17 @@ file_chooser_clear_cb (GtkButton *button, gpointer user_data)
990
994
static void
991
995
gnc_prefs_connect_radio_button (GtkRadioButton * button )
992
996
{
993
- gchar * group , * pref ;
997
+ gchar * group , * pref , * value ;
994
998
995
999
g_return_if_fail (GTK_IS_RADIO_BUTTON (button ));
996
1000
997
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (button )), & group , & pref );
1001
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (button )), & group , & pref , & value );
998
1002
999
- gnc_prefs_bind (group , pref , G_OBJECT (button ), "active" );
1003
+ gnc_prefs_bind (group , pref , value , G_OBJECT (button ), "active" );
1000
1004
1001
1005
g_free (group );
1002
1006
g_free (pref );
1007
+ g_free (value );
1003
1008
}
1004
1009
1005
1010
/****************************************************************************/
@@ -1014,16 +1019,17 @@ gnc_prefs_connect_radio_button (GtkRadioButton *button)
1014
1019
static void
1015
1020
gnc_prefs_connect_check_button (GtkCheckButton * button )
1016
1021
{
1017
- gchar * group , * pref ;
1022
+ gchar * group , * pref , * value ;
1018
1023
1019
1024
g_return_if_fail (GTK_IS_CHECK_BUTTON (button ));
1020
1025
1021
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (button )), & group , & pref );
1026
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (button )), & group , & pref , & value );
1022
1027
1023
- gnc_prefs_bind (group , pref , G_OBJECT (button ), "active" );
1028
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (button ), "active" );
1024
1029
1025
1030
g_free (group );
1026
1031
g_free (pref );
1032
+ g_free (value );
1027
1033
}
1028
1034
1029
1035
/****************************************************************************/
@@ -1042,9 +1048,9 @@ gnc_prefs_connect_spin_button (GtkSpinButton *spin)
1042
1048
1043
1049
g_return_if_fail (GTK_IS_SPIN_BUTTON (spin ));
1044
1050
1045
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (spin )), & group , & pref );
1051
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (spin )), & group , & pref , NULL );
1046
1052
1047
- gnc_prefs_bind (group , pref , G_OBJECT (spin ), "value" );
1053
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (spin ), "value" );
1048
1054
1049
1055
g_free (group );
1050
1056
g_free (pref );
@@ -1065,9 +1071,9 @@ gnc_prefs_connect_combo_box (GtkComboBox *box)
1065
1071
1066
1072
g_return_if_fail (GTK_IS_COMBO_BOX (box ));
1067
1073
1068
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (box )), & group , & pref );
1074
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (box )), & group , & pref , NULL );
1069
1075
1070
- gnc_prefs_bind (group , pref , G_OBJECT (box ), "active" );
1076
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (box ), "active" );
1071
1077
1072
1078
g_free (group );
1073
1079
g_free (pref );
@@ -1088,9 +1094,9 @@ gnc_prefs_connect_currency_edit (GNCCurrencyEdit *gce, const gchar *boxname )
1088
1094
1089
1095
g_return_if_fail (GNC_IS_CURRENCY_EDIT (gce ));
1090
1096
1091
- gnc_prefs_split_widget_name (boxname , & group , & pref );
1097
+ gnc_prefs_split_widget_name (boxname , & group , & pref , NULL );
1092
1098
1093
- gnc_prefs_bind (group , pref , G_OBJECT (gce ), "mnemonic" );
1099
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (gce ), "mnemonic" );
1094
1100
1095
1101
g_free (group );
1096
1102
g_free (pref );
@@ -1113,9 +1119,9 @@ gnc_prefs_connect_entry (GtkEntry *entry)
1113
1119
1114
1120
g_return_if_fail (GTK_IS_ENTRY (entry ));
1115
1121
1116
- gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (entry )), & group , & pref );
1122
+ gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE (entry )), & group , & pref , NULL );
1117
1123
1118
- gnc_prefs_bind (group , pref , G_OBJECT (entry ), "text" );
1124
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (entry ), "text" );
1119
1125
1120
1126
g_free (group );
1121
1127
g_free (pref );
@@ -1136,9 +1142,9 @@ gnc_prefs_connect_period_select (GncPeriodSelect *period, const gchar *boxname )
1136
1142
1137
1143
g_return_if_fail (GNC_IS_PERIOD_SELECT (period ));
1138
1144
1139
- gnc_prefs_split_widget_name (boxname , & group , & pref );
1145
+ gnc_prefs_split_widget_name (boxname , & group , & pref , NULL );
1140
1146
1141
- gnc_prefs_bind (group , pref , G_OBJECT (period ), "active" );
1147
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (period ), "active" );
1142
1148
1143
1149
g_free (group );
1144
1150
g_free (pref );
@@ -1159,9 +1165,9 @@ gnc_prefs_connect_date_edit (GNCDateEdit *gde , const gchar *boxname )
1159
1165
1160
1166
g_return_if_fail (GNC_IS_DATE_EDIT (gde ));
1161
1167
1162
- gnc_prefs_split_widget_name (boxname , & group , & pref );
1168
+ gnc_prefs_split_widget_name (boxname , & group , & pref , NULL );
1163
1169
1164
- gnc_prefs_bind (group , pref , G_OBJECT (gde ), "time" );
1170
+ gnc_prefs_bind (group , pref , NULL , G_OBJECT (gde ), "time" );
1165
1171
1166
1172
g_free (group );
1167
1173
g_free (pref );
0 commit comments