diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-12-04 09:21:56 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-12-04 09:21:56 +0000 |
commit | b9c6c177ab0f97bde488546aa84365bbf359ba38 (patch) | |
tree | 88f71132daae38de1b3b90d98e5677909eba85de | |
parent | 637399d6cf3744155bb7ad2cda7c70f5b3011a0e (diff) | |
download | gnunet-gtk-b9c6c177ab0f97bde488546aa84365bbf359ba38.tar.gz gnunet-gtk-b9c6c177ab0f97bde488546aa84365bbf359ba38.zip |
-adding sane defaults for exp times
-rw-r--r-- | src/setup/gnunet-setup-gns-edit.c | 116 |
1 files changed, 61 insertions, 55 deletions
diff --git a/src/setup/gnunet-setup-gns-edit.c b/src/setup/gnunet-setup-gns-edit.c index c5d5bb3e..f790572b 100644 --- a/src/setup/gnunet-setup-gns-edit.c +++ b/src/setup/gnunet-setup-gns-edit.c | |||
@@ -195,6 +195,11 @@ edit_dialog_setup_common_elements (struct EditDialogContext *edc) | |||
195 | GtkListStore *ls; | 195 | GtkListStore *ls; |
196 | GtkTreeIter iter; | 196 | GtkTreeIter iter; |
197 | gchar *opt; | 197 | gchar *opt; |
198 | struct GNUNET_TIME_Absolute at; | ||
199 | struct GNUNET_TIME_Relative rt; | ||
200 | time_t tp; | ||
201 | struct tm *ymd; | ||
202 | GtkCalendar *cal; | ||
198 | 203 | ||
199 | if (GNUNET_YES != | 204 | if (GNUNET_YES != |
200 | edc->old_record_in_namestore) | 205 | edc->old_record_in_namestore) |
@@ -224,64 +229,65 @@ edit_dialog_setup_common_elements (struct EditDialogContext *edc) | |||
224 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, | 229 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, |
225 | "edit_dialog_expiration_relative_combobox"))); | 230 | "edit_dialog_expiration_relative_combobox"))); |
226 | } | 231 | } |
232 | if ( (edc->n_is_relative) && | ||
233 | (GNUNET_TIME_UNIT_FOREVER_REL.rel_value != edc->n_exp_time) ) | ||
234 | { | ||
235 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder, | ||
236 | "edit_dialog_expiration_relative_radiobutton")), | ||
237 | TRUE); | ||
238 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, | ||
239 | "edit_dialog_expiration_absolute_calendar"))); | ||
240 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, | ||
241 | "edit_dialog_expiration_absolute_hbox"))); | ||
242 | rt.rel_value = edc->n_exp_time; | ||
243 | } | ||
227 | else | 244 | else |
228 | { | 245 | { |
229 | if (edc->n_is_relative) | 246 | /* select a sane default */ |
230 | { | 247 | rt = GNUNET_TIME_UNIT_DAYS; |
231 | struct GNUNET_TIME_Relative rt; | 248 | } |
232 | 249 | cb = GTK_COMBO_BOX (gtk_builder_get_object (edc->builder, | |
233 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder, | 250 | "edit_dialog_expiration_relative_combobox")); |
234 | "edit_dialog_expiration_relative_radiobutton")), | 251 | ls = GTK_LIST_STORE (gtk_combo_box_get_model (cb)); |
235 | TRUE); | 252 | gtk_list_store_insert_with_values (ls, &iter, |
236 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, | 253 | -1 /* position: append */, |
237 | "edit_dialog_expiration_absolute_calendar"))); | 254 | 0, GNUNET_STRINGS_relative_time_to_string (rt, GNUNET_NO), |
238 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, | 255 | -1); |
239 | "edit_dialog_expiration_absolute_hbox"))); | 256 | gtk_combo_box_set_active_iter (cb, &iter); |
240 | rt.rel_value = edc->n_exp_time; | 257 | if ( (! edc->n_is_relative) && |
241 | 258 | (GNUNET_TIME_UNIT_FOREVER_ABS.abs_value != edc->n_exp_time) ) | |
242 | cb = GTK_COMBO_BOX (gtk_builder_get_object (edc->builder, | 259 | { |
243 | "edit_dialog_expiration_relative_combobox")); | 260 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder, |
244 | ls = GTK_LIST_STORE (gtk_combo_box_get_model (cb)); | 261 | "edit_dialog_expiration_absolute_radiobutton")), |
245 | gtk_list_store_insert_with_values (ls, &iter, | 262 | TRUE); |
246 | -1 /* position: append */, | 263 | |
247 | 0, GNUNET_STRINGS_relative_time_to_string (rt, GNUNET_NO), | 264 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, |
248 | -1); | 265 | "edit_dialog_expiration_relative_combobox"))); |
249 | gtk_combo_box_set_active_iter (cb, &iter); | 266 | at.abs_value = edc->n_exp_time; |
250 | } | 267 | } |
251 | else | 268 | else |
252 | { | 269 | { |
253 | struct GNUNET_TIME_Absolute at; | 270 | /* select a sane default: right now */ |
254 | time_t tp; | 271 | at = GNUNET_TIME_absolute_get (); |
255 | struct tm *ymd; | ||
256 | GtkCalendar *cal; | ||
257 | |||
258 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder, | ||
259 | "edit_dialog_expiration_absolute_radiobutton")), | ||
260 | TRUE); | ||
261 | |||
262 | gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder, | ||
263 | "edit_dialog_expiration_relative_combobox"))); | ||
264 | at.abs_value = edc->n_exp_time; | ||
265 | tp = (time_t) (at.abs_value / 1000LL); /* convert to seconds */ | ||
266 | ymd = gmtime (&tp); | ||
267 | cal = GTK_CALENDAR (gtk_builder_get_object (edc->builder, | ||
268 | "edit_dialog_expiration_absolute_calendar")); | ||
269 | gtk_calendar_select_month (cal, | ||
270 | ymd->tm_mon, | ||
271 | ymd->tm_year + 1900); | ||
272 | gtk_calendar_mark_day (cal, | ||
273 | ymd->tm_mday); | ||
274 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder, | ||
275 | "edit_dialog_expiration_absolute_hours_spinbutton")), | ||
276 | (double) ymd->tm_hour); | ||
277 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder, | ||
278 | "edit_dialog_expiration_absolute_minutes_spinbutton")), | ||
279 | (double) ymd->tm_min); | ||
280 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder, | ||
281 | "edit_dialog_expiration_absolute_seconds_spinbutton")), | ||
282 | (double) ymd->tm_sec); | ||
283 | } | ||
284 | } | 272 | } |
273 | tp = (time_t) (at.abs_value / 1000LL); /* convert to seconds */ | ||
274 | ymd = gmtime (&tp); | ||
275 | cal = GTK_CALENDAR (gtk_builder_get_object (edc->builder, | ||
276 | "edit_dialog_expiration_absolute_calendar")); | ||
277 | gtk_calendar_select_month (cal, | ||
278 | ymd->tm_mon, | ||
279 | ymd->tm_year + 1900); | ||
280 | gtk_calendar_mark_day (cal, | ||
281 | ymd->tm_mday); | ||
282 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder, | ||
283 | "edit_dialog_expiration_absolute_hours_spinbutton")), | ||
284 | (double) ymd->tm_hour); | ||
285 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder, | ||
286 | "edit_dialog_expiration_absolute_minutes_spinbutton")), | ||
287 | (double) ymd->tm_min); | ||
288 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder, | ||
289 | "edit_dialog_expiration_absolute_seconds_spinbutton")), | ||
290 | (double) ymd->tm_sec); | ||
285 | 291 | ||
286 | /* set source zone! */ | 292 | /* set source zone! */ |
287 | cb = GTK_COMBO_BOX (gtk_builder_get_object (edc->builder, | 293 | cb = GTK_COMBO_BOX (gtk_builder_get_object (edc->builder, |